[lkml]   [2007]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 9/11] Panic delay fix
Alan wrote:
>> We'd have to audit and figure out what udelays are for hardware and
>> which are not, but the evidence is that the vast majority of them are
>> for hardware and not needed for virtualization.
> Which is irrelevant since the hardware drivers won't be used in a
> virtualised environment with any kind of performance optimisation.

Which is why an audit is irrelevant for the most part. Note on the
performance below.

>> Changing udelay to "hardware_udelay" or something all over the kernel
>> would have delayed the paravirt_ops merge by an infinite amount 8)
> paravirt_ops has no business fiddling with udelay. Not only does it
> create more code bloat and stalls in relatively fast paths but its
> optimising the wrong thing anyway.

??? I fail to see the code bloat and also the fast paths. Which fast
paths use udelay?

> My performance sucks -> optimise out udelay is the wrong approach. My
> performance sucks, switch to the virtual block driver is the right
> approach, and a virtual block driver won't be using udelay anyway

This is not to stop performance from sucking. It doesn't. This is not
an "approach". Sure, a virtual block driver won't be using udelay.
Everyone else who writes hypervisors writes virtual block drivers
because they don't have optimized I/O emulation for real hardware.
Their performance sucks without it because they have to go switch to
some other context and run a device emulator. Our doesn't. We have
optimized almost every I/O device we emulate. But sitting around
spinning in udelay is wasting everybody's time. There is an overhead
cost to trapping out on I/O instructions. Removing the udelays that
typically happen around I/O instructions causes the emulation to break even.

And that is a good thing. It's certainly not required, nor is it a
significant win while the kernel is running. It does cut the boot time
by a lot, and you will notice an obvious difference with a much faster
kernel boot simply because a lot of the hardware setup has very
conservative udelays which take a lot of time during device
initialization. Since boot time * number of reboots has a direct impact
on the number of 9's you can claim for uptime, this is actually a large
win for reliability.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2007-02-14 21:07    [W:0.090 / U:3.652 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site