Wednesday, June 07, 2006
Performance in action
Yesterday I've written the first combat plugin for performance.gauntlet called PfLatencyPlugin. It finds the longest interval between local APIC timer's interrupts on CPU 0 and draws a horizontal green line covering that interval. The most natural test was to try to determine the cause of the worst latency case that I know to date which is latency introduced by nVidia's graphics driver. And an instant success followed! I've prepared a screen composition to illustrate the process. The cause of the delay is x86's wbinvd instruction.
There's a recent discussion on the topic here: http://www.nvnews.net/vbulletin/showthread.php?t=67430
I'm going to try to overcome this in a way similar to the one proposed by Bernhard: to prefill the cache with a necessary lot of data to make it synchronized with the main memory so that wbinvd would not take long to complete.