5.0.4 Performance Issue (Similar to D3 Beta)

(Locked)

90 Undead Mage
7690
Thread 7 on mine may be different, is that possible? How can I tell in gdb which thread is the one that is eating up the cpu, and to suspend it?
90 Undead Mage
7690
Holy hell. Growltigers instructions, if followed properly, WORK! CONFIRMED.
Edited by Upgrade on 8/30/2012 12:42 AM PDT
- Technical Support
90 Human Priest
6220
The ps uM pid# command lists threads in their numerical order. Count down from the first listed thread until you get to the thread at 100% CPU. In my case it was thread #7 from the first listed thread.

For gdb you'd type:

gdb -p pid# (where pid# is WoW's PID) and hit enter.

Then you'd immediately type:

thread suspend problemThread# (in my case it was 7) and hit enter

then type (quickly) "cont" or "quit". If choosing quit, follow that with a yes answer QUICKLY. Attempt to login.

Only thing is, the moment I use either "cont" or "quit + Y" WoW immediately jumps back to 260% CPU (about 45% across each core). This version of the client has brought my expansion bay to 45°C, where it never even got to 40°C prior to this patch. My Mac Pro's outer chassis is incredibly hot to the touch and my first RAM module is sitting at 70°C, which is rather hot.

Suffice it to say, this client version is drastically heating up all computers, not just MBPs or iMacs. Keep in mind that for my Mac Pro I have my fans set to 1000 RPM across the board to keep temperatures lower when gaming, but even with that my expansion bay temps shot up 10°C with this client, meaning the hardware itself is seeing a substantially larger heat increase than that.

This does need to be fixed ASAP, as it is likely to fry laptops and some iMacs in short order.
100 Worgen Druid
13925
"info threads" will show all of them.

I get:

(gdb) info threads
22 0x9651d0ee in __workq_kernreturn ()
21 0x9651a80e in semaphore_wait_trap ()
20 0x9651a80e in semaphore_wait_trap ()
19 0x9651cbe6 in select$DARWIN_EXTSN ()
18 0x9651c8e2 in __psynch_cvwait ()
17 0x9651a8e6 in mach_wait_until ()
16 "com.apple.audio.IOThread.clien" 0x9651a7d2 in mach_msg_trap ()
15 0x9651c8e2 in __psynch_cvwait ()
14 "BlizzardCore Thread" 0x9651cc72 in __semwait_signal ()
13 0x9651c8e2 in __psynch_cvwait ()
12 0x9651c8e2 in __psynch_cvwait ()
11 "BlizzardCore Thread" 0x9651df42 in sem_wait$UNIX2003 ()
10 "BlizzardCore Thread" 0x9651df42 in sem_wait$UNIX2003 ()
9 "com.apple.CFSocket.private" 0x9651cbe6 in select$DARWIN_EXTSN ()
8 "com.apple.NSURLConnectionLoade" 0x9651a7d2 in mach_msg_trap ()
7 0x93512aff in __mtx_droplock ()
6 "Fatal Exception Handler" 0x9651a7d2 in mach_msg_trap ()
5 "Async Signal Handler" 0x9651cc72 in __semwait_signal ()
4 "Exception Handler" 0x9651a7d2 in mach_msg_trap ()
3 "GLWorker Thread" 0x9651c8e2 in __psynch_cvwait ()
2 "com.apple.libdispatch-manager" 0x9651d9ae in kevent ()
* 1 "com.apple.main-thread" 0x9651cc72 in __semwait_signal ()

(the specifics of where each one was interrupted isn't important, though all the threads except the problem one will probably be the same as the threads above). It's likely that the threads are created at the beginning of the process in a specific order, so it will probably match.

If you're on the login screen, do

info thread t#

I got:

(gdb) info thread 7
Thread 7 has current state "WAITING"
Mach port #0x6f03 (gdb port #0x1903)
frame 0: 0x93327efc in _CFRunLoopFinished ()
pthread ID: 0xb0491048
system-wide unique thread id: 0x211a8
total user time: 18446744072557339096
total system time: 587085000
scaled cpu usage percentage: 0
scheduling policy in effect: 0x1
run state: 0x3 (WAITING)
flags: 0x1 (SWAPPED)
number of seconds that thread has slept: 0
current priority: 46
max priority: 63
suspend count: 0.

Look at "total user time" - if it's a very large number like that, compared to another thread (e.g. thread 8 had:

total user time: 5364000
total system time: 3056000

)

then that's the thread that's using a lot of CPU time.

You could also run the command:

thread apply all info thread

to dump the info on all the threads, then look through them, might be easier to do that.

Another way of verifying which thread is the right one is:

thread t#
where

Which will show something like this:

#0 0x98616266 in -[NSAutoreleasePool init] ()
#1 0x00024f4f in GetBattlenetAllocator ()
#2 0x00088558 in GetBattlenetAllocator ()
#3 0x98655318 in -[NSThread main] ()
#4 0x9865529b in __NSThread__main__ ()
#5 0x9350d557 in _pthread_start ()
#6 0x934f7cee in thread_start ()

If it shows GetBattlenetAllocator in the 5th line from the bottom, it's the right thread.

BTW, I'm not suggesting this as a workaround, other than to verify that it reduces your CPU usage and heat issues. I have no idea what else that thread might be doing, and it's totally possible that at some point your process would hang up because the thread is no longer responding to something.

It's also a fair bit of work to download Xcode, then install the command line tools, though at least it's free...

Oh, if it asks for a "developer" user name, just use your admin user/password.
Edited by Growltiger on 8/29/2012 9:51 PM PDT
90 Undead Mage
7690
Do you think we could get in to trouble for playing the game after that thread has been suspended? It seems to work for me although I can't close termial at all or the entire wow app crashes, no matter how quickly I hit "cont".

However it seems to run stable and exactly as it did before...

But I really don't mind leaving terminal running. I'm just worried having it "attached" to the process could be seen as cheating or a ToS violation or something.
Edited by Upgrade on 8/29/2012 9:39 PM PDT
100 Worgen Druid
13925
If you type "quit" instead of "cont", then answer yes, you'll detach from WoW and can then close the terminal window. If you already typed "cont", press control-C (which will suspend all of WoW again), then type "quit".

If you're on the login screen, you shouldn't have to type anything really quickly, it's unlikely to time out and you're not suspending your character in-game or anything like that.

You're not modifying nor looking at game or character data in any way, nor are you doing it to gain an unfair advantage, but who knows. That's one reason why I'm not suggesting it as a workaround, since it's certainly getting close to being a violation.

Verify that it fixes the problem for you, then wait for Blizzard to fix it for real, would be my suggestion.
Edited by Growltiger on 8/29/2012 9:49 PM PDT
85 Draenei Mage
13370
They need to hire you or give you lifetime suscription if this is the whole issue. Seriously.
- Technical Support
90 Human Priest
6220
I wish this would work for me, heh. Idle, my system is 27°C in the expansion (PCI-E) bay. With WoW running it's 45°C.

Hardware Monitor shows WoW uzing 100% (yes 100%) of the GPU upon login and at the character select screen. In the game world in IF (minimally populated) it is using 60-80% varying for the GPU, with the GPU using 50-70w of power (PCI-E 12v and 12v boost line combined).

Edit: Yep, no matter what I do, following the instructions to the letter, WoW jumps back to 260% CPU and heavy GPU the moment I use "cont" or detatch gdb via the "quit" command and remains there until I quit WoW.

So this isn't going to work for everyone. :(
Edited by Tiapriestess on 8/29/2012 9:57 PM PDT
- Technical Support
90 Human Priest
6220
OK I got it working like you did Growltiger - had to use the "thread apply all info thread" command to verify the proper thread. Once done I'm down to 150% CPU in-game.

I've never seen the client cause such heat related issues before, and D3 never did for me even at launch. I'm glad to have a semi-workaround though. But most users aren't comfortable with Terminal, let alone savvy enough to be able to read/understand its output, so this is only going to be of use to those of us capable of interpreting such information. :(

Edit: According to Hardware Monitor, my GPU % use got cut literally in half the moment I entered the command to suspend the overzealous thread, so that thread has something to do with the GPU.
Edited by Tiapriestess on 8/29/2012 10:09 PM PDT
85 Draenei Shaman
2840
Same problem.

Anyone else notice that the screen recording options were grayed out under Mac Options? Not that I ever use that function, but I don't believe I've ever seen it grayed out. Possibly related?

Also, GPU reset seemed to have no affect. (opt-command-eject) That was one fix that often cured issues prior to 5.0.4.

15in Early 2008 MBP OSX 10.8.1 (yeah, I know, I'm pushing it)
- Technical Support
90 Human Priest
6220
08/29/2012 10:08 PMPosted by Misscreant
Also, GPU reset seemed to have no affect. (opt-command-eject) That was one fix that often cured issues prior to 5.0.4.


CMD-OPT-Eject (F12) puts the computer to sleep. There is no GPU reset in OS X.
100 Orc Shaman
10805
Well at least we found the problem thread. But it's sounding more and more like something battle.net related as opposed to WoW itself seeing as how it has common roots with D3.

If this is indeed the case, and Blizzard is actually frying people's computers because of a bug in some crappy DRM battle.net scheme, I am going to be writing a letter to the CEO and tell him his money grabbing plots are having a real world negative effect on people's computers.

If I'm wrong though, and I hope I am, let's hope this still gets a fix. I was trying to play tonight and didn't dare because with my laptop elevated, fans running, with a big portable fan blowing on my laptop in a 55ºF room with the window open, my CPU temps were near 200ºF.
Edited by Stormtides on 8/29/2012 10:14 PM PDT
85 Draenei Shaman
2840
Sorry, was thinking ctrl-shift-eject... which resets the display (and also doesn't help)...
- Technical Support
90 Human Priest
6220
Well at least we found the problem thread. But it's sounding more and more like something battle.net related as opposed to WoW itself seeing as how it has common roots with D3.

If this is indeed the case, and Blizzard is actually frying people's computers because of a bug in some crappy DRM battle.net scheme, I am going to be writing a letter to the CEO and tell him his money grabbing plots are having a real world negative affect on people's computers.

If I'm wrong though, and I hope I am, let's hope this still gets a fix. I was trying to play tonight and didn't dare because with my laptop elevated, fans running, with a big portable fan blowing on my laptop in a 55ºF room with the window ope, my CPU temps were near 200ºF.


Just because D3 had this in common with WoW does not necessarily indicate DRM, or even a battle.net relation. Login authentication doesn't take 100% extra CPU and 50% extra GPU, and as indicated by Hardware Monitor, that thread is causing the GPU to work at 100% until logged in, and then at 80% thereafter. Kill the thread and that extra GPU use takes a nosedive to normal values.
100 Orc Shaman
10805
Well at least we found the problem thread. But it's sounding more and more like something battle.net related as opposed to WoW itself seeing as how it has common roots with D3.

If this is indeed the case, and Blizzard is actually frying people's computers because of a bug in some crappy DRM battle.net scheme, I am going to be writing a letter to the CEO and tell him his money grabbing plots are having a real world negative effect on people's computers.

If I'm wrong though, and I hope I am, let's hope this still gets a fix. I was trying to play tonight and didn't dare because with my laptop elevated, fans running, with a big portable fan blowing on my laptop in a 55ºF room with the window open, my CPU temps were near 200ºF.


Just because D3 had this in common with WoW does not necessarily indicate DRM, or even a battle.net relation. Login authentication doesn't take 100% extra CPU and 50% extra GPU, and as indicated by Hardware Monitor, that thread is causing the GPU to work at 100% until logged in, and then at 80% thereafter. Kill the thread and that extra GPU use takes a nosedive to normal values.


I know, but I've had a gut feeling it's some kind of monitoring process. And my gut on this stuff is usually right.
- Technical Support
90 Human Priest
6220
Monitoring processes usually don't involve heavy GPU time. This thread does.
90 Undead Mage
7690
Just ran an End Time, no issues whatsover, running smooth and looking awesome at 60c.

Unbelievable!
90 Undead Warlock
6270
I have the same performance issues on my macbook. Just wanted to post to add to the number of people. Thanks Growltiger for all the detailed info and also thanks to Upgrade for being so persistant.

I would give details of my computer, delete folders, reinstall, etc and try all sorts of whacky stuff but i have learned to walk away from this game when something like this happens. Come back when an update is available and magically it is fixed.
100 Worgen Druid
13925
For all I know, now that Blizzard might have a clue as to what the problem is (and I'm sure they're monitoring this thread), there might be some config or console setting that temporarily fixes this (more safely and easily than using gdb).

Tiapriestess, put the output from "info threads" here; also enter:

thread 7
where

and copy the output here (if you've already determined it's a different thread, use that instead of 7).

Do this on the login screen. Then turn FPS and graphics level all the way down, put it in a window, make that window as small as possible, and report the CPU usage for that process (as reported by Activity Monitor, for instance). You could also copy the output of "ps uM pid#" here (Activity Monitor is another way to find the pid# as well).

So what you should be doing is, with WoW on the login page, and pid# being the WoW process ID as found in Activity Monitor:

ps uM pid#
gdb -p pid#
info threads
thread 7
where
suspend 7
quit
yes

and report the results from the ps, info threads, and where commands.
- Technical Support
90 Human Priest
6220
If I better knew how to use Shark, I'd get a sample of the thread in question, as that most definitely would be of use to S4d1k.
This topic is locked.

Please report any Code of Conduct violations, including:

Threats of violence. We take these seriously and will alert the proper authorities.

Posts containing personal information about other players. This includes physical addresses, e-mail addresses, phone numbers, and inappropriate photos and/or videos.

Harassing or discriminatory language. This will not be tolerated.

Forums Code of Conduct

Report Post # written by

Reason
Explain (256 characters max)

Reported!

[Close]