Re: [Patch v2] Make PCI extended config space (MMCONFIG) a driver opt-in

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Linus Torvalds <torvalds@...>, Arjan van de Ven <arjan@...>
Cc: Tony Camuso <tcamuso@...>, Matthew Wilcox <matthew@...>, Greg KH <greg@...>, Adrian Bunk <bunk@...>, Benjamin Herrenschmidt <benh@...>, Ivan Kokshaysky <ink@...>, Greg KH <gregkh@...>, <linux-kernel@...>, Jeff Garzik <jeff@...>, <linux-pci@...>, Martin Mares <mj@...>
Date: Tuesday, January 15, 2008 - 6:12 pm

On 1/15/2008 2:38 PM, Linus Torvalds wrote:




But is there a ACPI-compliant/architecture that only offers mmconfig for 
configuration-space access and no other fallback method (i.e. no conf1, 
no bios,...)?

2.6.24 supports mmconfig for:
 - ACPI-system with  MCFG
 - a couple chipset discovered by conf1


If a system has no conf1, but does not have e820+ACPI+MCFG, or does have 
some other method than mmconfig, it was already irrelevant in the 
discussion of Ivan's initial patch in december (because that system was 
either never supported or not impacted, and we were trying to fix bugs, 
not introduce support for new class of systems).


Maybe Arjan could share his knowledge, and tell us what system he was 
thinking about (and whether it needed to be supported by 2.6.24) when 
saying:
  "When (and I'm saying "when" not "if") systems arrive that only have 
MMCONFIG for some of the devices."


Anyway Ivan's patch + Matthew's extensions are handling that non-PC 
arch. That combination is advocated by at least:
Ivan Kokshaysky
Matthew Wilcox
Tony Camuso
Loic Prylli
even Arjan's said that while he prefers his patch (saying it's more 
conservative), he does not see a existing problem with the Ivan/Matthew 
combination.

[ simpler, less ambitious fixes can be forgotten if nothing can be done 
for 2.6.24, I can understand that choice ]


The list of problems I see with Arjan's patch are:
- no word on whether the existing Linux driver/pci/pcie/aer code should 
be converted to opt-in?
- mmconfig still needs to be revisited to sort-out the mix of 
mmconfig+conf1+third-method access.
- you cannot test if ext-conf-space is available without taking risks: 
when pci_enable_ext_config() is called, even legacy-conf-space is 
switched to the new method.  So some administrator action (lspci -v 
+maybe-other-flag) or some driver action (that can optionally use 
ext-conf-space but does not *rely* on it) could cause some devices to 
totally disappear (if some pci hierarchy is handled by mmconfig as a 
0xffffffff section as seen on many amd machines). Matthew/Ivan will 
simply in the worst case detect that ext-conf-space is not available in 
pci_cfg_space_size()), legacy-conf-space will still work (and that 
0xffffffff section is perfectly *safe* to query, tell me if you need 
more details of why).
- introduce a new user-api, and a new kernel API, while in practice 
there is no evidence that brings any benefits compared to Ivan/Matthew.


IMHO, making  "pci=nommconf" the default behaviour is better than 
Arjan's patch: for the exaggerated 99.99% users he claims don't need 
ext-conf-space, that's obviously as good. And many of the others would 
benefit from the ability to test and optionally use ext-conf-space is 
available without taking the risk of crashing something, so something 
else is better for them.


With Arjan's patch, in 10 years, we might still have to use an extra 
option (or some other action) when using lspci to display extended caps, 
and we would still run the risk of crashing some old machine when doing 
so (unless maybe a blacklist of some sort will be added, making the 
newly introduced API completely useless soon, or unless we keep the 
painful bitmaps in mmconfig potentially ending-up with 3 set of pci-ops).


Loic

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [Patch v2] Make PCI extended config space (MMCONFIG) a d..., Arjan van de Ven, (Thu Dec 27, 10:09 am)
Re: [Patch v2] Make PCI extended config space (MMCONFIG) a d..., Øyvind Vågen Jægtnes, (Tue Jan 15, 8:58 am)
Re: [Patch v2] Make PCI extended config space (MMCONFIG) a d..., Arjan van de Ven, (Sun Jan 13, 12:42 am)
Re: [Patch v2] Make PCI extended config space (MMCONFIG) a d..., Arjan van de Ven, (Mon Jan 14, 10:46 am)
Re: [Patch v2] Make PCI extended config space (MMCONFIG) a d..., Arjan van de Ven, (Mon Jan 14, 12:01 pm)
Re: [Patch v2] Make PCI extended config space (MMCONFIG) a d..., Arjan van de Ven, (Sat Jan 12, 11:46 am)
Re: [Patch v2] Make PCI extended config space (MMCONFIG) a d..., Benjamin Herrenschmidt, (Sun Jan 13, 3:08 am)
Re: [Patch v2] Make PCI extended config space (MMCONFIG) a d..., Arjan van de Ven, (Mon Jan 28, 11:05 pm)
Re: [Patch v2] Make PCI extended config space (MMCONFIG) a d..., Arjan van de Ven, (Wed Jan 30, 11:42 am)
Re: [Patch v2] Make PCI extended config space (MMCONFIG) a d..., Arjan van de Ven, (Tue Jan 29, 10:47 am)
Re: [Patch v2] Make PCI extended config space (MMCONFIG) a d..., Arjan van de Ven, (Tue Jan 29, 11:29 am)
[PATCH] Change pci_raw_ops to pci_raw_read/write, Matthew Wilcox, (Mon Jan 28, 11:03 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Tony Camuso, (Thu Feb 7, 11:54 am)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Matthew Wilcox, (Sat Feb 9, 8:41 am)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Yinghai Lu, (Sun Feb 10, 2:25 am)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Matthew Wilcox, (Sun Feb 10, 10:51 am)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Yinghai Lu, (Sun Feb 10, 4:16 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Linus Torvalds, (Sun Feb 10, 4:24 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Matthew Wilcox, (Sun Feb 10, 4:45 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Yinghai Lu, (Sun Feb 10, 9:49 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Andrew Morton, (Mon Feb 11, 6:10 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Ingo Molnar, (Mon Feb 11, 6:38 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Robert Hancock, (Sun Feb 10, 10:53 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Yinghai Lu, (Mon Feb 11, 1:59 am)
raw_pci_read in quirk_intel_irqbalance, Matthew Wilcox, (Sun Feb 10, 7:02 pm)
Re: raw_pci_read in quirk_intel_irqbalance, Matthew Wilcox, (Mon Feb 11, 1:04 am)
Re: raw_pci_read in quirk_intel_irqbalance, Grant Grundler, (Mon Feb 11, 3:49 am)
Re: raw_pci_read in quirk_intel_irqbalance, Matthew Wilcox, (Mon Feb 11, 12:15 pm)
Re: raw_pci_read in quirk_intel_irqbalance, Linus Torvalds, (Mon Feb 11, 1:18 pm)
Re: raw_pci_read in quirk_intel_irqbalance, Grant Grundler, (Mon Feb 11, 3:38 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Matthew Wilcox, (Sun Feb 10, 4:19 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Yinghai Lu, (Sun Feb 10, 4:25 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Matthew Wilcox, (Sun Feb 10, 4:32 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Yinghai Lu, (Sun Feb 10, 4:47 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Grant Grundler, (Sun Feb 10, 3:13 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Matthew Wilcox, (Sun Feb 10, 3:37 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Arjan van de Ven, (Thu Feb 7, 12:28 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Tony Camuso, (Thu Feb 7, 12:36 pm)
Re: [PATCH] Change pci_raw_ops to pci_raw_read/write, Grant Grundler, (Thu Feb 7, 10:28 pm)
Re: [Patch v2] Make PCI extended config space (MMCONFIG) a d..., Loic Prylli, (Tue Jan 15, 6:12 pm)