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 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.