From: Greg KH <greg@kroah.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: "Huang, Ying" <ying.huang@intel.com>,
akpm@linux-foundation.org, Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Andi Kleen <ak@suse.de>,
"Eric W. Biederman" <ebiederm@xmission.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH -mm -v2] x86 boot : export boot_params via sysfs
Date: Wed, 12 Dec 2007 14:21:46 -0800 [thread overview]
Message-ID: <20071212222146.GC16474@kroah.com> (raw)
In-Reply-To: <47603109.6080909@zytor.com>
On Wed, Dec 12, 2007 at 11:05:45AM -0800, H. Peter Anvin wrote:
> Greg KH wrote:
>>> This is a binary structure defined by protocol;
>> What protocol? Is this a "standard" documented somewhere?
>
> Yes, see Documentation/i386/* (although some of it is documented by
> reference to include/asm-x86/boot_params.h).
Ah, so the structure has changed over the years, making this not so much
a "firmware" field as originally thought :)
>>> in that way it's not significantly different from something passed
>>> from the firmware (in fact, it might very well *be* passed from the
>>> firmware.) We have in the past found platform bugs by looking at the
>>> contents of the whole structure, e.g. to find that part of it has
>>> been inappropriately clobbered.
>> For debugging things, then just export it through debugfs.
>
> Fair enough, however...
>
>>> It is also in the form needed by e.g. kexec to operate.
>> Does kexec need this today to work properly? Or is this something new?
>
> I believe kexec currently tries to reconstitute it from what data is
> available to it. This is incomplete, though, and has been flagged as a
> problem for kexec.
Can't kexec get this from within the kernel itself when it is running?
It doesn't need to get this from userspace, does it?
>> What userspace program is going to know the exact data format of this
>> blob, and where is it going to know that format from? The kernel header
>> files in sanitized form? Or something else?
>
> It can pick it up from <asm/boot_params.h> (which is now userspace-safe);
> or it can decode it itself. Programs like kexec can pass through most of
> the data without examining it, this is the main reason for having it as a
> blob.
I just don't want kernel structures exported in binary fashions in
sysfs. If there are specific portions that kexec currently can't figure
out, why not just export those fields?
And, by exporting the different fields (yeah, lots of files, no big
deal), you can handle the change in the structure over time much easier
than trying to "know" the layout of the binary blob.
thanks,
greg k-h
next prev parent reply other threads:[~2007-12-12 22:31 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-12 8:59 [PATCH -mm -v2] x86 boot : export boot_params via sysfs Huang, Ying
2007-12-12 17:46 ` Greg KH
2007-12-12 17:54 ` H. Peter Anvin
2007-12-12 18:59 ` Greg KH
2007-12-12 19:05 ` H. Peter Anvin
2007-12-12 22:21 ` Greg KH [this message]
2007-12-12 22:37 ` H. Peter Anvin
2007-12-12 22:43 ` Randy Dunlap
2007-12-12 23:08 ` Eric W. Biederman
2007-12-12 22:52 ` Eric W. Biederman
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=20071212222146.GC16474@kroah.com \
--to=greg@kroah.com \
--cc=ak@suse.de \
--cc=akpm@linux-foundation.org \
--cc=ebiederm@xmission.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=ying.huang@intel.com \
/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