New client loader for test server

xipies
Posts: 119
Joined: Thu Aug 02, 2012 11:29 pm

Re: New client loader for test server

Post by xipies » Wed Jul 10, 2013 12:17 am

Another small update:
I was able to trigger high cpu ~50% (laggy) from a single instance (only).

Conditions:
July 8 update not applied
ffxi-boot v3 (not beta)
Current stable Ashita (not RC5 for July 8 update)

I'm updating now, so I don't know if that was a fluke.

bluekirby0
Developer
Posts: 707
Joined: Sun Jul 22, 2012 12:11 am

Re: New client loader for test server

Post by bluekirby0 » Wed Jul 10, 2013 12:58 am

It would be helpful to know as well how many cores you have. For example on my hex-core CPU something taking up 17% is a lot more worrisome than 50% on a single-core CPU.

xipies
Posts: 119
Joined: Thu Aug 02, 2012 11:29 pm

Re: New client loader for test server

Post by xipies » Wed Jul 10, 2013 10:16 pm

Three core. I also tried setting affinity.

When running one instance:
If I set pol to a single core and it bugs, it becomes unplayable. If I leave it to run on all cores when bugged, it's still mostly playable, but is slightly "jerky" with intermittent short pauses, rather than dropping to a lower, but consistent framerate.

Edit:
Just triggered bug alt-tabbing from firefox to ffxi. No idea why that would do it.

Going to try with desktop composition turned off (Win7 aero), so if it could be gfx related.

Edit 2:
Nvm, still bugged after about 45 min with desktop composition off. Did notice one thing, though. This time only 2 out of 3 instances bugged at the same time. The first one that I logged in on did not bug.

bluekirby0
Developer
Posts: 707
Joined: Sun Jul 22, 2012 12:11 am

Re: New client loader for test server

Post by bluekirby0 » Thu Jul 11, 2013 6:29 am

Updated internal boot client to ffxi-boot_mod 3.2

This update fixes the signature for hairpinning by replacing the static offsets with a scanner so that future game updates shouldn't cause the hack to stop working. atom0s did all the work again :D

Tom_Neverwinter
Posts: 61
Joined: Mon Dec 24, 2012 3:47 pm

Re: New client loader for test server

Post by Tom_Neverwinter » Thu Jul 11, 2013 1:01 pm

That is Wonderful News!!!!
Good job you guys!!!

User avatar
kjLotus
Special Guest
Posts: 1813
Joined: Sun Jul 22, 2012 2:16 pm

Re: New client loader for test server

Post by kjLotus » Thu Jul 11, 2013 1:14 pm

bluekirby0 wrote:Updated internal boot client to ffxi-boot_mod 3.2

This update fixes the signature for hairpinning by replacing the static offsets with a scanner so that future game updates shouldn't cause the hack to stop working. atom0s did all the work again :D
hurray, i can get drops again

xipies
Posts: 119
Joined: Thu Aug 02, 2012 11:29 pm

Re: New client loader for test server

Post by xipies » Sat Jul 13, 2013 12:34 pm

I may be off base, but could something like this help troubleshoot threads racing?

https://code.google.com/p/thread-sanitizer/

bluekirby0
Developer
Posts: 707
Joined: Sun Jul 22, 2012 12:11 am

Re: New client loader for test server

Post by bluekirby0 » Sat Jul 13, 2013 8:11 pm

Race conditions aren't the problem here. If they were it would more likely just be crashing outright.

xipies
Posts: 119
Joined: Thu Aug 02, 2012 11:29 pm

Re: New client loader for test server

Post by xipies » Sun Jul 14, 2013 12:52 am

Thread info from ProcExp.

Here are stack traces from what looks like the two main ffxi-boot mod threads. It looks like MigrateWinsockConfiguration is spinning (spin lock) and never completing.

Attached is a screenshot of the thread list. The ones at the end are all FFXiMain.dll threads (constantly created/freed).

Boot: ffxi-boot mod 3.2
OS: Win7 x64

Edit:
As an aside:
I noticed I can suspend the spinning thread (pol.exe+0x2ae0), CPU usage goes back to normal, and I can still play. I've only tried zoning a couple times, though.


Spinning thread (pol.exe+0x2ae0):

Code: Select all

ntoskrnl.exe!KeWaitForMultipleObjects+0xc0a
ntoskrnl.exe!KeAcquireSpinLockAtDpcLevel+0x732
ntoskrnl.exe!KeWaitForMutexObject+0x19f
ntoskrnl.exe!PoStartNextPowerIrp+0xba4
ntoskrnl.exe!PoStartNextPowerIrp+0x1821
ntoskrnl.exe!KiCheckForKernelApcDelivery+0x25
ntoskrnl.exe!MmProbeAndLockPages+0xbc6
afd.sys+0x60d7a
afd.sys+0x5e6b4
ntoskrnl.exe!NtMapViewOfSection+0x15a7
ntoskrnl.exe!NtDeviceIoControlFile+0x56
ntoskrnl.exe!KeSynchronizeExecution+0x3a23
wow64cpu.dll!TurboDispatchJumpAddressEnd+0x6c0
wow64cpu.dll!TurboDispatchJumpAddressEnd+0x1fb
wow64.dll!Wow64SystemServiceEx+0x1ce
wow64.dll!Wow64LdrpInitialize+0x429
ntdll.dll!RtlIsDosDeviceName_U+0x24c87
ntdll.dll!LdrInitializeThunk+0xe
ntdll.dll!ZwDeviceIoControlFile+0x15
mswsock.dll!MigrateWinsockConfiguration+0x53e1
pol.exe+0x2b79
Normal thread (pol.exe+0x6783):

Code: Select all

wow64win.dll+0x4164a
wow64win.dll+0x27c41
wow64.dll!Wow64SystemServiceEx+0xd7
wow64cpu.dll!TurboDispatchJumpAddressEnd+0x2d
wow64.dll!Wow64SystemServiceEx+0x1ce
wow64.dll!Wow64LdrpInitialize+0x429
ntdll.dll!RtlIsDosDeviceName_U+0x24c87
ntdll.dll!LdrInitializeThunk+0xe
GDI32.dll!D3DKMTRender+0x15
nvd3dum.dll!QueryOglResource+0xfd08
nvd3dum.dll!QueryOglResource+0xbd3a
nvd3dum.dll!QueryOglResource+0xf293
nvd3dum.dll!QueryOglResource+0x1b947
nvd3dum.dll!QueryOglResource+0x1bc47
nvd3dum.dll+0x2ed34c
nvd3dum.dll+0x2ed8f1
MSVCR110.dll!__crtFlsGetValue+0x15
FFXiMain.dll+0x32cb
FFXiMain.dll!DllUnregisterServer+0x2b22
FFXiMain.dll!DllUnregisterServer+0x2aecbf
FFXiMain.dll!DllUnregisterServer+0xd6771
ntdll.dll!KiUserCallbackDispatcher+0x2e
Attachments
threads.png

bluekirby0
Developer
Posts: 707
Joined: Sun Jul 22, 2012 12:11 am

Re: New client loader for test server

Post by bluekirby0 » Sun Jul 14, 2013 4:28 am

Good info, but MigrateWinsockConfiguration is an undocumented function so I'll need to figure out what higher-level function is calling it in order to fix the issue.

Post Reply