ULE/sched issues on stable/9 - why isn't preemption occuring?
John Baldwin
jhb at freebsd.org
Thu May 31 15:25:06 UTC 2012
On Wednesday, May 30, 2012 6:02:15 pm Adrian Chadd wrote:
> Hi,
>
> I've re-run the test with powerd and sleep state stuff disabled - lo
> and behold, UDP tests are now up around 240-250MBit, what I'd expect
> for this 2 stream 11n device.
>
> So why is it that I lose roughly 80MBit of throughput with powerd and
> C2/C3 enabled, when there's plenty of CPU going around? The NIC
> certainly isn't going to sleep (I've not even added that code.)
Why do you not expect that? I would try, btw, just disabling powerd for now
and leaving C2/C3 enabled to see if that makes a difference.
As to my first question, with powerd enabled and an otherwise idle machine,
powerd may very well be running your CPU at some rediculously low speed (like
100 Mhz) pretty much all the time. Do you really think you could push more
than 80 MBit with a 100 MHz CPU?
Secondly, just having a lot of CPU isn't enough if you don't have it quickly.
Latency matters, too. Take a look at your C2/C3 info like so:
dev.cpu.0.cx_supported: C1/3 C2/59 C3/93
IIRC, the last number is the number of microseconds the CPU takes to resume
from an interrupt. So, on this box (a Core i5), it can take 93 us after an
interrupt occurs during C3 before the CPU will get around to executing the
first instruction. It might be worse on your machine.
--
John Baldwin
More information about the freebsd-hackers
mailing list