Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-30 Thread Stewart Hildebrand
On 1/25/24 07:33, Roger Pau Monné wrote: > On Thu, Jan 25, 2024 at 12:23:05PM +0100, Jan Beulich wrote: >> On 25.01.2024 10:05, Roger Pau Monné wrote: >>> On Thu, Jan 25, 2024 at 08:43:05AM +0100, Jan Beulich wrote: On 24.01.2024 18:51, Roger Pau Monné wrote: > On Wed, Jan 24, 2024 at

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-30 Thread Stewart Hildebrand
On 1/24/24 00:00, Stewart Hildebrand wrote: > On 1/23/24 10:07, Roger Pau Monné wrote: >> On Tue, Jan 23, 2024 at 03:32:12PM +0100, Jan Beulich wrote: >>> On 15.01.2024 20:43, Stewart Hildebrand wrote: @@ -2888,6 +2888,8 @@ int allocate_and_map_msi_pirq(struct domain *d, int index, int

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-25 Thread Roger Pau Monné
On Thu, Jan 25, 2024 at 12:23:05PM +0100, Jan Beulich wrote: > On 25.01.2024 10:05, Roger Pau Monné wrote: > > On Thu, Jan 25, 2024 at 08:43:05AM +0100, Jan Beulich wrote: > >> On 24.01.2024 18:51, Roger Pau Monné wrote: > >>> On Wed, Jan 24, 2024 at 12:34:10PM +0100, Jan Beulich wrote: > On

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-25 Thread Jan Beulich
On 25.01.2024 10:05, Roger Pau Monné wrote: > On Thu, Jan 25, 2024 at 08:43:05AM +0100, Jan Beulich wrote: >> On 24.01.2024 18:51, Roger Pau Monné wrote: >>> On Wed, Jan 24, 2024 at 12:34:10PM +0100, Jan Beulich wrote: On 24.01.2024 10:24, Roger Pau Monné wrote: > On Wed, Jan 24, 2024 at

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-25 Thread Roger Pau Monné
On Thu, Jan 25, 2024 at 08:43:05AM +0100, Jan Beulich wrote: > On 24.01.2024 18:51, Roger Pau Monné wrote: > > On Wed, Jan 24, 2024 at 12:34:10PM +0100, Jan Beulich wrote: > >> On 24.01.2024 10:24, Roger Pau Monné wrote: > >>> On Wed, Jan 24, 2024 at 09:48:35AM +0100, Jan Beulich wrote: > On

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-24 Thread Jan Beulich
On 24.01.2024 18:51, Roger Pau Monné wrote: > On Wed, Jan 24, 2024 at 12:34:10PM +0100, Jan Beulich wrote: >> On 24.01.2024 10:24, Roger Pau Monné wrote: >>> On Wed, Jan 24, 2024 at 09:48:35AM +0100, Jan Beulich wrote: On 23.01.2024 16:07, Roger Pau Monné wrote: > On Tue, Jan 23, 2024 at

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-24 Thread Stewart Hildebrand
On 1/24/24 03:21, Roger Pau Monné wrote: > On Wed, Jan 24, 2024 at 12:07:28AM -0500, Stewart Hildebrand wrote: >> On 1/23/24 09:29, Jan Beulich wrote: >>> On 15.01.2024 20:43, Stewart Hildebrand wrote: @@ -1043,11 +1043,11 @@ static int __pci_enable_msix(struct pci_dev *pdev, struct

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-24 Thread Roger Pau Monné
On Wed, Jan 24, 2024 at 12:34:10PM +0100, Jan Beulich wrote: > On 24.01.2024 10:24, Roger Pau Monné wrote: > > On Wed, Jan 24, 2024 at 09:48:35AM +0100, Jan Beulich wrote: > >> On 23.01.2024 16:07, Roger Pau Monné wrote: > >>> On Tue, Jan 23, 2024 at 03:32:12PM +0100, Jan Beulich wrote: > On

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-24 Thread Jan Beulich
On 24.01.2024 10:24, Roger Pau Monné wrote: > On Wed, Jan 24, 2024 at 09:48:35AM +0100, Jan Beulich wrote: >> On 23.01.2024 16:07, Roger Pau Monné wrote: >>> On Tue, Jan 23, 2024 at 03:32:12PM +0100, Jan Beulich wrote: On 15.01.2024 20:43, Stewart Hildebrand wrote: > @@ -2888,6 +2888,8 @@

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-24 Thread Roger Pau Monné
On Wed, Jan 24, 2024 at 09:56:42AM +0100, Jan Beulich wrote: > On 23.01.2024 16:23, Roger Pau Monné wrote: > > On Tue, Jan 23, 2024 at 03:26:26PM +0100, Jan Beulich wrote: > >> On 15.01.2024 20:43, Stewart Hildebrand wrote: > >>> --- a/xen/arch/x86/hvm/vmsi.c > >>> +++ b/xen/arch/x86/hvm/vmsi.c >

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-24 Thread Roger Pau Monné
On Wed, Jan 24, 2024 at 09:48:35AM +0100, Jan Beulich wrote: > On 23.01.2024 16:07, Roger Pau Monné wrote: > > On Tue, Jan 23, 2024 at 03:32:12PM +0100, Jan Beulich wrote: > >> On 15.01.2024 20:43, Stewart Hildebrand wrote: > >>> @@ -2888,6 +2888,8 @@ int allocate_and_map_msi_pirq(struct domain

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-24 Thread Jan Beulich
On 23.01.2024 16:23, Roger Pau Monné wrote: > On Tue, Jan 23, 2024 at 03:26:26PM +0100, Jan Beulich wrote: >> On 15.01.2024 20:43, Stewart Hildebrand wrote: >>> --- a/xen/arch/x86/hvm/vmsi.c >>> +++ b/xen/arch/x86/hvm/vmsi.c >>> @@ -468,7 +468,7 @@ int msixtbl_pt_register(struct domain *d, struct

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-24 Thread Jan Beulich
On 24.01.2024 06:07, Stewart Hildebrand wrote: > On 1/23/24 09:29, Jan Beulich wrote: >> On 15.01.2024 20:43, Stewart Hildebrand wrote: >>> @@ -1043,11 +1043,11 @@ static int __pci_enable_msix(struct pci_dev *pdev, >>> struct msi_info *msi, >>> { >>> struct msi_desc *old_desc; >>> >>> -

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-24 Thread Jan Beulich
On 23.01.2024 16:07, Roger Pau Monné wrote: > On Tue, Jan 23, 2024 at 03:32:12PM +0100, Jan Beulich wrote: >> On 15.01.2024 20:43, Stewart Hildebrand wrote: >>> @@ -2888,6 +2888,8 @@ int allocate_and_map_msi_pirq(struct domain *d, int >>> index, int *pirq_p, >>> { >>> int irq, pirq, ret;

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-24 Thread Roger Pau Monné
On Wed, Jan 24, 2024 at 12:07:28AM -0500, Stewart Hildebrand wrote: > On 1/23/24 09:29, Jan Beulich wrote: > > On 15.01.2024 20:43, Stewart Hildebrand wrote: > >> @@ -1043,11 +1043,11 @@ static int __pci_enable_msix(struct pci_dev *pdev, > >> struct msi_info *msi, > >> { > >> struct

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-23 Thread Stewart Hildebrand
On 1/23/24 09:29, Jan Beulich wrote: > On 15.01.2024 20:43, Stewart Hildebrand wrote: >> @@ -1043,11 +1043,11 @@ static int __pci_enable_msix(struct pci_dev *pdev, >> struct msi_info *msi, >> { >> struct msi_desc *old_desc; >> >> -ASSERT(pcidevs_locked()); >> - >> if ( !pdev ||

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-23 Thread Stewart Hildebrand
On 1/23/24 10:07, Roger Pau Monné wrote: > On Tue, Jan 23, 2024 at 03:32:12PM +0100, Jan Beulich wrote: >> On 15.01.2024 20:43, Stewart Hildebrand wrote: >>> @@ -2888,6 +2888,8 @@ int allocate_and_map_msi_pirq(struct domain *d, int >>> index, int *pirq_p, >>> { >>> int irq, pirq, ret; >>>

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-23 Thread Roger Pau Monné
On Tue, Jan 23, 2024 at 03:26:26PM +0100, Jan Beulich wrote: > On 15.01.2024 20:43, Stewart Hildebrand wrote: > > --- a/xen/arch/x86/hvm/vmsi.c > > +++ b/xen/arch/x86/hvm/vmsi.c > > @@ -468,7 +468,7 @@ int msixtbl_pt_register(struct domain *d, struct pirq > > *pirq, uint64_t gtable) > >

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-23 Thread Roger Pau Monné
On Tue, Jan 23, 2024 at 03:32:12PM +0100, Jan Beulich wrote: > On 15.01.2024 20:43, Stewart Hildebrand wrote: > > @@ -2888,6 +2888,8 @@ int allocate_and_map_msi_pirq(struct domain *d, int > > index, int *pirq_p, > > { > > int irq, pirq, ret; > > > > +ASSERT(pcidevs_locked() ||

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-23 Thread Jan Beulich
On 15.01.2024 20:43, Stewart Hildebrand wrote: > @@ -2888,6 +2888,8 @@ int allocate_and_map_msi_pirq(struct domain *d, int > index, int *pirq_p, > { > int irq, pirq, ret; > > +ASSERT(pcidevs_locked() || rw_is_locked(>pci_lock)); If either lock is sufficient to hold here, ... > ---

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-23 Thread Jan Beulich
On 15.01.2024 20:43, Stewart Hildebrand wrote: > @@ -1043,11 +1043,11 @@ static int __pci_enable_msix(struct pci_dev *pdev, > struct msi_info *msi, > { > struct msi_desc *old_desc; > > -ASSERT(pcidevs_locked()); > - > if ( !pdev || !pdev->msix ) > return -ENODEV; > > +

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-23 Thread Jan Beulich
On 15.01.2024 20:43, Stewart Hildebrand wrote: > --- a/xen/arch/x86/hvm/vmsi.c > +++ b/xen/arch/x86/hvm/vmsi.c > @@ -468,7 +468,7 @@ int msixtbl_pt_register(struct domain *d, struct pirq > *pirq, uint64_t gtable) > struct msixtbl_entry *entry, *new_entry; > int r = -EINVAL; > > -

Re: [PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-19 Thread Roger Pau Monné
On Mon, Jan 15, 2024 at 02:43:08PM -0500, Stewart Hildebrand wrote: > From: Oleksandr Andrushchenko > > Use the per-domain PCI read/write lock to protect the presence of the > pci device vpci field. This lock can be used (and in a few cases is used > right away) so that vpci removal can be

[PATCH v12.2 01/15] vpci: use per-domain PCI lock to protect vpci structure

2024-01-15 Thread Stewart Hildebrand
From: Oleksandr Andrushchenko Use the per-domain PCI read/write lock to protect the presence of the pci device vpci field. This lock can be used (and in a few cases is used right away) so that vpci removal can be performed while holding the lock in write mode. Previously such removal could race