Spaces switching becomes extremely choppy (~10 FPS) in 10.9.2
| Originator: | ben | ||
| Number: | rdar://16213774 | Date Originated: | |
| Status: | Closed | Resolved: | Duplicate of 16163395 |
| Product: | OS X | Product Version: | 10.9.2 |
| Classification: | Performance | Reproducible: | Sometimes |
Summary: I've noticed that sometimes switching between spaces, dragging windows, and other simple graphical operations have become ridiculously bad (i.e. animating at around 10 FPS) after I upgraded to 10.9.2. This doesn't happen all the time, but often enough that it's quite annoying. I use my MBP with various display configs regularly: in extended desktop with an external monitor, with the MBP in clamshell mode (internal display off, external display on), and without any external monitor at all. This behavior seems to be related to switching between these types of display configs but I can't really be sure. I've taken a combined time profile and system trace of space switching both without the issue (NoFlickeringSpacesSwitching.trace) and when the issue occurs (FlickeringSpacesSwitching.trace). Hopefully by examining these traces, you can figure out the difference between the scenarios and fix whatever issue is occurring. I also dtrace'd on all syscalls made by WindowServer during a spaces switching operation (see the *.log files). The biggest difference that I see is that when things go bad, we block on a ton of semwait_signal syscalls (>4000 of these), whereas when things are normal, we don't block on any of those syscalls. From looking at the systrace, this syscall seems to perhaps be associated with blocking on an update from another display: 0 libsystem_kernel.dylib __semwait_signal 1 libsystem_c.dylib usleep 2 CoreGraphics begin_deferred_update_cycle 3 CoreGraphics CGXUpdateDisplay 4 CoreGraphics CGXReenableUpdateForConnection 5 CoreGraphics _CGXReenableUpdateForConnection 6 CoreGraphics _XReenableUpdateForConnection 7 CoreGraphics CGXServices_server 8 CoreGraphics __connectionHandler_block_invoke 9 CoreGraphics CGXHandleMessage 10 CoreGraphics connectionHandler 11 CoreGraphics post_port_data 12 CoreGraphics CGXRunOneServicesPass 13 CoreGraphics CGXServer 14 WindowServer main 15 libdyld.dylib tlv_get_addr Steps to Reproduce: 1. Switch spaces. 2. Sometimes it's ridiculously choppy. Expected Results: Switching spaces should never be ridiculously choppy. Actual Results: Switching spaces is sometimes ridiculously choppy. Version: 10.9.2 13C64 Notes: Configuration: See attached config file Attachments: 'config.spx' and 'FlickeringSpaces.zip' were successfully uploaded.
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!