From: Zachary Amsden <zach@vmware.com>
To: Andi Kleen <ak@suse.de>
Cc: caglar@pardus.org.tr, Gerd Hoffmann <kraxel@suse.de>,
john stultz <johnstul@us.ibm.com>,
lkml <linux-kernel@vger.kernel.org>
Subject: Re: [RFC] Avoid PIT SMP lockups
Date: Mon, 16 Oct 2006 16:25:36 -0700 [thread overview]
Message-ID: <453414F0.8020502@vmware.com> (raw)
In-Reply-To: <200610170040.49502.ak@suse.de>
Andi Kleen wrote:
>> It might only happen with SMP because the difficulty of getting good
>> enough TSC / timer IRQ synchronization during boot increases
>> exponentially with SMP configurations. And it might pass 10% of the time
>> because you were lucky enough not to fire off another timer interrupt yet.
>>
>
> We have the same problem with NMI watchdog events unfortunately.
> Need to call something in the nmi watchdog code to make sure it is
> not renewed and then reenabled.
> Or maybe it's better to figure out a way that yields atomic patches.
>
> I think the best way is to make sure all alternative() patches
> are always done before the code can be ever executed - this
> means doing it very early for the main kernel. The only exception
> would be the LOCK prefix patching, which should be atomic
Yes, this solves the problem in most cases. Lock patching is fine no
matter when you do it. I think the problem with alternative patching in
check_bugs() is that it happens way too late; the patching really has
nothing at all to do with check_bugs(), and should be a separate step,
probably part of setup_arch.
The paravirt-ops stuff also has some patching code. Fortunately, there,
we can probably skirt the NMI issue by simply disallowing NMIs, but the
issue pops up again in stop_machine_run - what happens if you take NMIs
during stop_machine_run? Debug traps? Module unload is fine, but code
patching done using stop_machine_run is not safe.
Zach
next prev parent reply other threads:[~2006-10-16 23:25 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-06 21:38 [RFC] Avoid PIT SMP lockups john stultz
2006-10-07 15:50 ` S.Çağlar Onur
2006-10-10 9:11 ` S.Çağlar Onur
2006-10-10 18:27 ` john stultz
2006-10-11 10:49 ` S.Çağlar Onur
2006-10-11 17:59 ` john stultz
2006-10-11 18:37 ` S.Çağlar Onur
2006-10-11 18:43 ` john stultz
2006-10-11 19:09 ` S.Çağlar Onur
2006-10-11 19:26 ` john stultz
2006-10-11 19:31 ` S.Çağlar Onur
2006-10-12 7:28 ` Gerd Hoffmann
2006-10-12 7:45 ` S.Çağlar Onur
2006-10-16 22:17 ` Zachary Amsden
2006-10-16 22:21 ` S.Çağlar Onur
2006-10-17 12:05 ` S.Çağlar Onur
2006-10-17 12:16 ` Andi Kleen
2006-10-19 8:00 ` [PATCH] Fix potential interrupts during alternative patching [was Re: [RFC] Avoid PIT SMP lockups] Zachary Amsden
2006-10-19 8:49 ` Jeremy Fitzhardinge
2006-10-19 9:00 ` Zachary Amsden
2006-10-20 10:36 ` S.Çağlar Onur
2006-10-20 5:25 ` Greg KH
2006-10-16 22:40 ` [RFC] Avoid PIT SMP lockups Andi Kleen
2006-10-16 23:25 ` Zachary Amsden [this message]
2006-10-16 16:08 ` Gerd Hoffmann
2006-10-16 16:22 ` Vmware problems was " Andi Kleen
2006-10-16 22:16 ` Petr Vandrovec
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=453414F0.8020502@vmware.com \
--to=zach@vmware.com \
--cc=ak@suse.de \
--cc=caglar@pardus.org.tr \
--cc=johnstul@us.ibm.com \
--cc=kraxel@suse.de \
--cc=linux-kernel@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox