All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zachary Amsden <zach@vmware.com>
To: Alan <alan@lxorguk.ukuu.org.uk>
Cc: Rusty Russell <rusty@rustcorp.com.au>,
	Pavel Machek <pavel@ucw.cz>, Andi Kleen <ak@muc.de>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@osdl.org>,
	Jeremy Fitzhardinge <jeremy@goop.org>,
	Chris Wright <chrisw@sous-sol.org>
Subject: Re: [PATCH 9/11] Panic delay fix
Date: Wed, 14 Feb 2007 12:04:25 -0800	[thread overview]
Message-ID: <45D36B49.5090109@vmware.com> (raw)
In-Reply-To: <20070214125216.2befda78@localhost.localdomain>

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.

Zach

  reply	other threads:[~2007-02-14 20:04 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-06  3:53 [PATCH 9/11] Panic delay fix Zachary Amsden
2007-02-06 12:27 ` Andi Kleen
2007-02-06 21:59   ` Zachary Amsden
2007-02-07 12:35     ` Pavel Machek
2007-02-07 20:36       ` Rusty Russell
2007-02-07 22:23         ` Zachary Amsden
2007-02-08 14:43         ` Dmitry Torokhov
2007-02-08 21:26           ` Zachary Amsden
2007-02-08 21:37             ` Dmitry Torokhov
2007-02-14 12:26         ` Pavel Machek
2007-02-14 19:47           ` Zachary Amsden
2007-02-14 12:52         ` Alan
2007-02-14 20:04           ` Zachary Amsden [this message]
2007-02-14 21:34             ` Alan
2007-02-14 21:53               ` Zachary Amsden
2007-02-15  0:33                 ` Alan
2007-02-15 10:17             ` Pavel Machek
2007-02-15 23:42               ` Zachary Amsden
2007-02-15 23:49                 ` Pavel Machek
2007-02-15 23:50                 ` Jeremy Fitzhardinge
2007-02-16  3:22                 ` Rusty Russell
2007-02-07 14:58     ` Dmitry Torokhov
2007-02-07 22:31       ` Zachary Amsden
2007-02-08  8:24         ` Andi Kleen
2007-02-08  9:08           ` Zachary Amsden
2007-02-08 13:33             ` Andi Kleen
2007-02-08 14:41               ` Dmitry Torokhov
2007-02-14 12:49             ` Alan
2007-02-14 22:51 ` Rusty Russell
2007-02-15  0:28   ` Alan
2007-02-15 13:35   ` Dmitry Torokhov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=45D36B49.5090109@vmware.com \
    --to=zach@vmware.com \
    --cc=ak@muc.de \
    --cc=akpm@osdl.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=chrisw@sous-sol.org \
    --cc=jeremy@goop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=rusty@rustcorp.com.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.