From: Fernando Luis Vazquez Cao <fernando@intellilink.co.jp>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Andi Kleen <ak@suse.de>,
fastboot@lists.osdl.org, linux-kernel@vger.kernel.org
Subject: Re: [Fastboot] Re: [PATCH 1/4] stack overflow safe kdump (i386) - safe_smp_processor_id
Date: Wed, 30 Nov 2005 16:32:46 +0900 [thread overview]
Message-ID: <1133335966.2412.32.camel@localhost.localdomain> (raw)
In-Reply-To: <m1d5kkf5rf.fsf@ebiederm.dsl.xmission.com>
On Mon, 2005-11-28 at 21:16 -0700, Eric W. Biederman wrote:
> Andi Kleen <ak@suse.de> writes:
>
> > Fernando Luis Vazquez Cao <fernando@intellilink.co.jp> writes:
> >>
> >> To circumvent this problem I suggest implementing
> >> "safe_smp_processor_id()" (it already exists on x86_64) for i386 and
> >> IA64 and use it as a replacement to smp_processor_id in the reboot path
> >> to the dump capture kernel. This is a possible implementation for i386.
> >
> > It's not fully safe, because a SMP kernel might run on a 32bit
> > system without APIC. Then hard_smp_processor_id() would fault.
> > (this cannot happen on x86-64)
> >
> > You probably need to check one of the globals set by apic.c
> > when its disabled.
>
> Right. An SMP kernel on a uniprocessor, without apics.
>
> To my knowledge all SMP systems that linux supports have
> apics.
Thank you for the comments. I have modified safe_smp_processor_id so
that it now checks whether APICs are enabled before using
hard_smp_processor_id. Would this check suffice?
int safe_smp_processor_id(void) {
int apicid, cpuid;
if (!boot_cpu_has(X86_FEATURE_APIC))
return 0;
apicid = hard_smp_processor_id();
if (apicid == BAD_APICID)
return 0;
cpuid = convert_apicid_to_cpu(apicid);
return cpuid >= 0 ? cpuid : 0;
}
I will be resending the stack overflow patches reflecting this change.
They should apply cleanly against kernel 2.6.15-rc3. I will send the nmi
handler-related patches separately once I have tested the code properly.
Regards,
Fernando
prev parent reply other threads:[~2005-11-30 7:37 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-28 18:00 [PATCH 1/4] stack overflow safe kdump (i386) - safe_smp_processor_id Fernando Luis Vazquez Cao
2005-11-28 23:07 ` Andi Kleen
2005-11-29 4:16 ` [Fastboot] " Eric W. Biederman
2005-11-30 7:32 ` Fernando Luis Vazquez Cao [this message]
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=1133335966.2412.32.camel@localhost.localdomain \
--to=fernando@intellilink.co.jp \
--cc=ak@suse.de \
--cc=ebiederm@xmission.com \
--cc=fastboot@lists.osdl.org \
--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.