From: Zachary Amsden <zach@vmware.com>
To: Pavel Machek <pavel@ucw.cz>
Cc: Rusty Russell <rusty@rustcorp.com.au>, 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 11:47:08 -0800 [thread overview]
Message-ID: <45D3673C.1070205@vmware.com> (raw)
In-Reply-To: <20070214122645.GE22008@elf.ucw.cz>
Pavel Machek wrote:
> On Thu 2007-02-08 07:36:12, Rusty Russell wrote:
>
>> On Wed, 2007-02-07 at 12:35 +0000, Pavel Machek wrote:
>>
>>> Ugh, it sounds like paravirt is more b0rken then I thought. It should
>>> always to the proper delay, then replace those udelays that are not
>>> needed on virtualized hardware with something else.
>>>
>>> Just magically defining udelay into nop is broken.
>>>
>> 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.
>>
>
> You did not time to do the full audit, so you just did #define.
>
Yes, of course. Since 99% of the drivers are completely irrelevant for
paravirt, and 99% of the udelays are in drivers, there isn't much point
to auditing a bunch of code we're not even going to be affected by. The
default case for udelay is it is not needed.
>> Changing udelay to "hardware_udelay" or something all over the kernel
>> would have delayed the paravirt_ops merge by an infinite amount 8)
>>
>
> And here you claim you could not do the right thing, because people
> would notice you are doing huge search/replace without audit, and
> would stop you. So you simply hidden it from them :-(.
>
What ludicrousness is this? Hidden what? That the default case for
udelay is that it is not needed?
> Plus... udelay() should just work under virtualization, right? You get
> slightly slower kernel, but still working, so the "full audit" is not
> as hard as you are telling me.
>
Save the time of doing a useless full audit and making sure we didn't
accidentally redefine or misspell some symbol on a bunch of
architectures we aren't even set up to compile for.
> Just replace udelay() with hardware_udelay() on places that matter in
> your workload...
>
That's inconsistent. We would be doing 2 SCSI drivers, part of the IDE
code, some i386 arch code, some random places in the kernel... and now
nobody else knows whether to use udelay or hardware_udelay and the code
gets jumbled to the point that it is useless because there is no clear
distinction between the two. It is non-trivial to come up with a list
of source files that we have to actually do this to. One C-file calls a
shared routine in a library, and now you've got a hidden udelay that you
have absolutely no way of detecting. The right thing to do if you want
to do it on a line by line basis is exactly the opposite. Remove udelay
and find out what breaks. Bugs are easier to find and fix than hidden
code. If I were to do it on a line by line basis, I would chose to
replace udelay() with real_time_udelay() for those places that actually
need it.
Zach
next prev parent reply other threads:[~2007-02-14 19:47 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 [this message]
2007-02-14 12:52 ` Alan
2007-02-14 20:04 ` Zachary Amsden
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=45D3673C.1070205@vmware.com \
--to=zach@vmware.com \
--cc=ak@muc.de \
--cc=akpm@osdl.org \
--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.