linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCHv3 0/4] Driver for new VMD device
@ 2015-10-27 17:34 Keith Busch
  2015-10-27 17:34 ` [RFC PATCHv3 1/4] pci: skip child bus with conflicting resources Keith Busch
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Keith Busch @ 2015-10-27 17:34 UTC (permalink / raw)
  To: LKML, x86, linux-pci
  Cc: Jiang Liu, Thomas Gleixner, Dan Williams, Bjorn Helgaas,
	Bryan Veal, Ingo Molnar, H. Peter Anvin, Martin Mares,
	Jon Derrick, Keith Busch

Here's version 3 for the VMD device driver, and overview of what changed
from v2:

>From review discussions, we discovered potential clashes in domain
numbering (thanks, Bjorn). This new version avoids that clash by using
domain numbers outside the ACPI defined _SEG range. Domains are purely
a software concept, so there is no need to constrain domains to the
possible segment range.

Since this lets domain numbers exceed 16 bit domains, PATCH 4/4 updates
pciutils to understand this so 'lspci' and 'setpci' will work as
expected with these types of domains. This is not a kernel patch, but
wasn't sure if it needs to be sent separately or to a different list,
so it's included here.

After testing configurations with constrained resources, we discovered
pci probe made the previously and perfectly reasonable assumption that
a pci domain provides 256 buses, but that's not always the case with
these domains. PATCH 1/4 addresses the reduced resource conflicts that
may occur during the initial scan.

PATCH 2/4 provides a generic interface to allow pci domains to define
DMA operations specific to their domain. This seemed better than tying
the feature to this new VMD device. An alternative suggestion for future
consideration was to use host_bridge specific operations when those are
provided when that option is implemented.

The main VMD patch in 3/4 is updated to address reviewer comments and
a bug fixes discovered during testing. Specific fixes and updates include:

  Lockdep inversion detection with irq flow handler and msi activation;
  replaced irq flow handler's locking with rcu list.

  Out of range configuration access from constrained CFGBAR.

  Improved description in changelog and Kconfig describing the additional
  bus resource benefit this device provides.

  Proper use of 'pci_add_resource()'.

  Removed unnecessary NULL checking.

  Simplified domain enumeration and removal by calling pci-core API's
  for scan and root bus removal.

  Use "module_pci_driver()" rather than "module_init()"

  Subscribe to the "new" domain specific operations rather than defining
  this as a PCI FIXUP.

  Fixed memory leak if irq_domain creation failed.

Keith Busch (4):
  pci: skip child bus with conflicting resources
  x86/pci: allow pci domain specific dma ops
  x86/pci: Initial commit for new VMD device driver
  pciutils: Allow 32-bit domains

 arch/x86/Kconfig              |   17 ++
 arch/x86/include/asm/device.h |   10 +
 arch/x86/include/asm/vmd.h    |   10 +
 arch/x86/kernel/apic/msi.c    |   38 +++
 arch/x86/pci/Makefile         |    2 +
 arch/x86/pci/common.c         |   38 +++
 arch/x86/pci/vmd.c            |  619 +++++++++++++++++++++++++++++++++++++++++
 drivers/pci/probe.c           |   10 +-
 kernel/irq/chip.c             |    1 +
 kernel/irq/irqdomain.c        |    3 +
 10 files changed, 746 insertions(+), 2 deletions(-)
 create mode 100644 arch/x86/include/asm/vmd.h
 create mode 100644 arch/x86/pci/vmd.c

-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2015-11-05 14:51 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-27 17:34 [RFC PATCHv3 0/4] Driver for new VMD device Keith Busch
2015-10-27 17:34 ` [RFC PATCHv3 1/4] pci: skip child bus with conflicting resources Keith Busch
2015-10-27 17:34 ` [RFC PATCHv3 2/4] x86-pci: allow pci domain specific dma ops Keith Busch
2015-10-27 17:34 ` [RFC PATCHv3 3/4] x86/pci: Initial commit for new VMD device driver Keith Busch
2015-11-02 18:35   ` Thomas Gleixner
2015-11-03  0:15     ` Keith Busch
2015-11-03 11:42       ` Thomas Gleixner
2015-11-04 14:49         ` Keith Busch
2015-11-04 15:14           ` Thomas Gleixner
2015-11-05  6:35             ` Jiang Liu
2015-11-05 14:51               ` Keith Busch
2015-10-27 17:34 ` [RFC PATCHv3 4/4] pciutils: Allow 32-bit domains Keith Busch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).