public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Matthew Garrett <mjg59@srcf.ucam.org>
To: Len Brown <lenb@kernel.org>
Cc: sfi-devel@simplefirmware.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC/PATCH 2.6.32] Simple Firmware Interface (SFI): initial support
Date: Tue, 23 Jun 2009 23:56:51 +0100	[thread overview]
Message-ID: <20090623225651.GA18736@srcf.ucam.org> (raw)
In-Reply-To: <alpine.LFD.2.00.0906231734170.32098@localhost.localdomain>

On Tue, Jun 23, 2009 at 06:20:11PM -0400, Len Brown wrote:
> On Tue, 23 Jun 2009, Matthew Garrett wrote:
> 
> > I think I've got a clearer understanding of my objections to this now. 
> > The first is that SFI is designed to support the subset of information 
> > that's in ACPI and which can't be intuited by the OS. However, that 
> > subset is predicated on the system looking like Moorestown. A system 
> > that wants to provide any information beyond that subset can't use SFI 
> > unless it defines additional tables.
> 
> Correct.
> 
> Per my previous message...
> 
> Should a platform require them, any and all of the ACPI
> defined/reserved tables can be accessed on an SFI system
> if needed.  Today, the PCI MCFG is the only ACPI table implemented
> in the known universe of SFI systems.

Right. But you've already got a potential conflict when it comes to 
wrapping the MADT - if someone wants a greater set of APIC information 
than you can provide via the SFI APIC table they're going to hit 
interesting problems.

> WRT to native SFI table names...
> 
> int sfi_table_parse(char *signature, char *oem_id, char *oem_table_id,
>                         uint flag, sfi_table_handler handler);
> 
> While the invocations in the tree today have NULL oem_id
> and NULL oem_table_id, it is possible for a vendor to
> stick their own name in there with their own table_id
> and get the OS or a driver to find their home-brewed table
> without reserving a table signature to the SFI spec.

Ok, that looks plausible. Can this be added to the spec as a best 
practice?

> However, should overwhemling demand for table signatures materialize,
> I'm sure that a process can be put in place to manage collisions...

Given the potential for vendors to ship customised Linux kernels, I 
think it'd be beneficial to have that in place before any hardware's 
shipped. The moment we have a collision we have a support nightmare.

> > And that brings me onto my second issue. ACPI is sufficiently 
> > generalised that there's little need for vendors to add additional 
> > tables. SFI isn't, and so vendor adoption is going to require 
> > vendor-specific tables. This potentially results in SFI bloating out to 
> > cover much of the functionality of ACPI, while at the same time turning 
> > into a namespacing nightmare. Without a formal process for adding new 
> > tables and without any kind of certification requirements before 
> > claiming SFI compatibility, we're looking at a real risk of collisions.
> 
> The SFI table signatures are totally independent of the ACPI table
> signatures -- they can not collide.  The only overlap is the XSDT
> itself, which exists in SFI explicitly to separate the ACPI namespace
> from the SFI namespace.

My concern is collisions within the SFI namespace, not collisions 
between ACPI and SFI.

> > SFI appears to be presented as a generic firmware interface, but in 
> > reality it's currently tightly wed to Moorestown and I don't see any way 
> > that that can be fixed without reinventing chunks of ACPI. I'm certainly 
> > not enthusiastic about seeing this presented as a fait accompli in 
> > generic driver code, rather than under arch/x86/moorestown.
> 
> SFI was invented with the goal to help a somewhat generic 
> distro-supported kernel to boot and run optimally
> on the Moorestown platform.  If SFI helps enable Moorestown
> to participate in even just a small part of the vibrant
> x86 open source development community, than it has been successful.
> 
> Yes, SFI is written to be "generic enough" so that it can be
> used by more than Moorestown.  It is not trying to displace ACPI
> on systems that are willing and able to support ACPI, but it
> is freely available for those platforms that can't.

If SFI's intended to support non-Moorestown platforms then I think we 
need to spend some more time determining what a non-Moorestown SFI 
implementation would look like, what changes would be required in the 
kernel to support that and how to ensure that vendors do this in a 
manner that doesn't make it likely that we'll have incompatible 
impleentations. If it's not then I think the Kconfig and documentation 
need to make that clearer.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

  reply	other threads:[~2009-06-23 22:57 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-23  7:13 [RFC/PATCH 2.6.32] Simple Firmware Interface (SFI): initial support Len Brown
2009-06-23  7:13 ` [PATCH 1/8] SFI: Simple Firmware Interface - new Linux sub-system Len Brown
2009-06-23  7:14   ` [PATCH 2/8] SFI: include/linux/sfi.h Len Brown
2009-06-23  7:28     ` Ingo Molnar
2009-06-23  7:47       ` Feng Tang
2009-06-23  8:00         ` Ingo Molnar
2009-06-23  8:02           ` Feng Tang
2009-06-23  8:09             ` Ingo Molnar
2009-06-23 15:14               ` H. Peter Anvin
2009-06-30 21:57       ` Andrew Morton
2009-06-30 21:59         ` Ingo Molnar
2009-06-23  9:06     ` Sam Ravnborg
2009-06-23 15:52       ` Feng Tang
2009-06-23 19:26         ` Sam Ravnborg
2009-06-23  7:14   ` [PATCH 3/8] SFI: core support Len Brown
2009-06-23  7:56     ` Ingo Molnar
2009-06-23  8:32       ` Feng Tang
2009-06-23  9:03         ` Ingo Molnar
2009-06-23  9:15           ` Feng Tang
2009-06-23 17:20       ` Len Brown
2009-06-23 19:20         ` Ingo Molnar
2009-06-23 12:32     ` Andi Kleen
2009-06-23 16:57       ` Len Brown
2009-06-24  3:34       ` Feng Tang
2009-06-24  7:12         ` Andi Kleen
2009-06-24  7:40           ` Feng Tang
2009-06-24  7:55             ` Andi Kleen
2009-06-23  7:14   ` [PATCH 4/8] SFI: Hook boot-time initialization Len Brown
2009-06-23  7:14   ` [PATCH 5/8] SFI: Hook e820 memory map initialization Len Brown
2009-06-23  7:14   ` [PATCH 6/8] SFI: add ACPI extensions Len Brown
2009-06-23 12:18     ` Andi Kleen
2009-06-23 16:51       ` Len Brown
2009-06-23  7:14   ` [PATCH 7/8] SFI, PCI: Hook MMCONFIG Len Brown
2009-06-23  7:14   ` [PATCH 8/8] SFI: expose IO-APIC routines to SFI, not just ACPI Len Brown
2009-06-23  7:58     ` Ingo Molnar
2009-06-23  7:23   ` [PATCH 1/8] SFI: Simple Firmware Interface - new Linux sub-system Ingo Molnar
2009-06-23 18:31 ` [RFC/PATCH 2.6.32] Simple Firmware Interface (SFI): initial support Matthew Garrett
2009-06-23 18:41   ` Len Brown
2009-06-22 19:43     ` Pavel Machek
2009-06-24 21:13       ` Len Brown
2009-07-11 22:02         ` Pavel Machek
2009-07-13  3:25           ` [SFI-devel] " Peter Stuge
2009-06-23 18:51     ` Matthew Garrett
2009-06-23 20:00       ` Len Brown
2009-06-23 20:23         ` Matthew Garrett
2009-06-23 20:45           ` Matthew Garrett
2009-06-23 21:23             ` Alan Cox
2009-06-23 22:34               ` Len Brown
2009-06-23 22:20             ` Len Brown
2009-06-23 22:56               ` Matthew Garrett [this message]
2009-06-23 23:00               ` [SFI-devel] " Justen, Jordan L
2009-06-24  0:35                 ` Len Brown
2009-06-23 21:33           ` Len Brown

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=20090623225651.GA18736@srcf.ucam.org \
    --to=mjg59@srcf.ucam.org \
    --cc=lenb@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sfi-devel@simplefirmware.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