All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8 00/13] PCI devices passthrough on Arm, part 3
@ 2023-07-20  0:32 Volodymyr Babchuk
  2023-07-20  0:32 ` [PATCH v8 04/13] vpci: add hooks for PCI device assign/de-assign Volodymyr Babchuk
                   ` (13 more replies)
  0 siblings, 14 replies; 73+ messages in thread
From: Volodymyr Babchuk @ 2023-07-20  0:32 UTC (permalink / raw)
  To: xen-devel@lists.xenproject.org; +Cc: Volodymyr Babchuk

Hello,

This is next version of vPCI rework. Aim of this series is to prepare
ground for introducing PCI support on ARM platform.

The biggest change from previous, mistakenly named, v7 series is how
locking is implemented. Instead of d->vpci_rwlock we introduce
d->pci_lock which has broader scope, as it protects not only domain's
vpci state, but domain's list of PCI devices as well.

As we discussed in IRC with Roger, it is not feasible to rework all
the existing code to use the new lock right away. It was agreed that
any write access to d->pdev_list will be protected by **both**
d->pci_lock in write mode and pcidevs_lock(). Read access on other
hand should be protected by either d->pci_lock in read mode or
pcidevs_lock(). It is expected that existing code will use
pcidevs_lock() and new users will use new rw lock. Of course, this
does not mean that new users shall not use pcidevs_lock() when it is
appropriate.

Apart from locking scheme rework, there are less major fixes in some
patches, based on the review comments.

Oleksandr Andrushchenko (12):
  vpci: use per-domain PCI lock to protect vpci structure
  vpci: restrict unhandled read/write operations for guests
  vpci: add hooks for PCI device assign/de-assign
  vpci/header: implement guest BAR register handlers
  rangeset: add RANGESETF_no_print flag
  vpci/header: handle p2m range sets per BAR
  vpci/header: program p2m with guest BAR view
  vpci/header: emulate PCI_COMMAND register for guests
  vpci/header: reset the command register when adding devices
  vpci: add initial support for virtual PCI bus topology
  xen/arm: translate virtual PCI bus topology for guests
  xen/arm: account IO handlers for emulated PCI MSI-X

Volodymyr Babchuk (1):
  pci: introduce per-domain PCI rwlock

 xen/arch/arm/vpci.c                         |  61 ++-
 xen/arch/x86/hvm/vmsi.c                     |   4 +
 xen/common/domain.c                         |   1 +
 xen/common/rangeset.c                       |   5 +-
 xen/drivers/Kconfig                         |   4 +
 xen/drivers/passthrough/amd/pci_amd_iommu.c |   9 +-
 xen/drivers/passthrough/pci.c               |  96 ++++-
 xen/drivers/passthrough/vtd/iommu.c         |   9 +-
 xen/drivers/vpci/header.c                   | 453 ++++++++++++++++----
 xen/drivers/vpci/msi.c                      |  18 +-
 xen/drivers/vpci/msix.c                     |  56 ++-
 xen/drivers/vpci/vpci.c                     | 176 +++++++-
 xen/include/xen/pci.h                       |   1 +
 xen/include/xen/rangeset.h                  |   5 +-
 xen/include/xen/sched.h                     |   9 +
 xen/include/xen/vpci.h                      |  42 +-
 16 files changed, 828 insertions(+), 121 deletions(-)

-- 
2.41.0

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

end of thread, other threads:[~2023-07-28 13:56 UTC | newest]

Thread overview: 73+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-20  0:32 [PATCH v8 00/13] PCI devices passthrough on Arm, part 3 Volodymyr Babchuk
2023-07-20  0:32 ` [PATCH v8 04/13] vpci: add hooks for PCI device assign/de-assign Volodymyr Babchuk
2023-07-20 12:36   ` Roger Pau Monné
2023-07-26  1:38     ` Volodymyr Babchuk
2023-07-26  8:42       ` Roger Pau Monné
2023-07-24  9:41   ` Jan Beulich
2023-07-20  0:32 ` [PATCH v8 01/13] pci: introduce per-domain PCI rwlock Volodymyr Babchuk
2023-07-20  9:45   ` Roger Pau Monné
2023-07-20 22:57     ` Volodymyr Babchuk
2023-07-20 15:40   ` Jan Beulich
2023-07-20 23:37     ` Volodymyr Babchuk
2023-07-20  0:32 ` [PATCH v8 03/13] vpci: restrict unhandled read/write operations for guests Volodymyr Babchuk
2023-07-20 11:32   ` Roger Pau Monné
2023-07-20  0:32 ` [PATCH v8 02/13] vpci: use per-domain PCI lock to protect vpci structure Volodymyr Babchuk
2023-07-20 11:20   ` Roger Pau Monné
2023-07-20 13:27     ` Jan Beulich
2023-07-20 13:50       ` Roger Pau Monné
2023-07-24  0:07         ` Volodymyr Babchuk
2023-07-24  7:59           ` Roger Pau Monné
2023-07-20 15:53     ` Jan Beulich
2023-07-26  1:17     ` Volodymyr Babchuk
2023-07-26  6:39       ` Jan Beulich
2023-07-26  9:35       ` Roger Pau Monné
2023-07-27  0:56         ` Volodymyr Babchuk
2023-07-27  7:41           ` Jan Beulich
2023-07-27 10:31             ` Volodymyr Babchuk
2023-07-27 11:37               ` Jan Beulich
2023-07-27 15:13                 ` Volodymyr Babchuk
2023-07-27 12:42           ` Roger Pau Monné
2023-07-27 12:56             ` Jan Beulich
2023-07-27 14:43               ` Roger Pau Monné
2023-07-28  0:21             ` Volodymyr Babchuk
2023-07-28 13:55               ` Roger Pau Monné
2023-07-20 16:03   ` Jan Beulich
2023-07-20 16:14     ` Roger Pau Monné
2023-07-21  6:02       ` Jan Beulich
2023-07-21  7:43         ` Roger Pau Monné
2023-07-21  8:48           ` Jan Beulich
2023-07-20 16:09   ` Jan Beulich
2023-07-20  0:32 ` [PATCH v8 05/13] vpci/header: implement guest BAR register handlers Volodymyr Babchuk
2023-07-20 16:01   ` Roger Pau Monné
2023-07-21 10:36   ` Rahul Singh
2023-07-21 10:50     ` Jan Beulich
2023-07-21 11:52       ` Roger Pau Monné
2023-07-20  0:32 ` [PATCH v8 06/13] rangeset: add RANGESETF_no_print flag Volodymyr Babchuk
2023-07-20  0:32 ` [PATCH v8 07/13] vpci/header: handle p2m range sets per BAR Volodymyr Babchuk
2023-07-21 11:49   ` Roger Pau Monné
2023-07-20  0:32 ` [PATCH v8 09/13] vpci/header: emulate PCI_COMMAND register for guests Volodymyr Babchuk
2023-07-21 13:32   ` Roger Pau Monné
2023-07-21 13:40     ` Roger Pau Monné
2023-07-24 11:06     ` Jan Beulich
2023-07-24 11:03   ` Jan Beulich
2023-07-20  0:32 ` [PATCH v8 10/13] vpci/header: reset the command register when adding devices Volodymyr Babchuk
2023-07-21 13:37   ` Roger Pau Monné
2023-07-20  0:32 ` [PATCH v8 11/13] vpci: add initial support for virtual PCI bus topology Volodymyr Babchuk
2023-07-20  6:50   ` Jan Beulich
2023-07-21  0:43     ` Volodymyr Babchuk
2023-07-21 13:53   ` Roger Pau Monné
2023-07-21 14:00   ` Roger Pau Monné
2023-07-26 21:35   ` Stewart Hildebrand
2023-07-20  0:32 ` [PATCH v8 08/13] vpci/header: program p2m with guest BAR view Volodymyr Babchuk
2023-07-21 13:05   ` Roger Pau Monné
2023-07-24 10:30     ` Jan Beulich
2023-07-24 10:43   ` Jan Beulich
2023-07-24 13:16     ` Roger Pau Monné
2023-07-24 13:31       ` Jan Beulich
2023-07-24 13:42         ` Roger Pau Monné
2023-07-20  0:32 ` [PATCH v8 12/13] xen/arm: translate virtual PCI bus topology for guests Volodymyr Babchuk
2023-07-20  6:54   ` Jan Beulich
2023-07-21 14:09   ` Roger Pau Monné
2023-07-24  8:02   ` Roger Pau Monné
2023-07-20  0:32 ` [PATCH v8 13/13] xen/arm: account IO handlers for emulated PCI MSI-X Volodymyr Babchuk
2023-07-20  0:41 ` [PATCH v8 00/13] PCI devices passthrough on Arm, part 3 Volodymyr Babchuk

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.