All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@redhat.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: David Airlie <airlied@linux.ie>,
	Tony Krowiak <akrowiak@linux.ibm.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Cornelia Huck <cohuck@redhat.com>,
	Jonathan Corbet <corbet@lwn.net>, Daniel Vetter <daniel@ffwll.ch>,
	Diana Craciun <diana.craciun@oss.nxp.com>,
	dri-devel@lists.freedesktop.org,
	Eric Auger <eric.auger@redhat.com>,
	Eric Farman <farman@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	intel-gfx@lists.freedesktop.org,
	intel-gvt-dev@lists.freedesktop.org,
	Jani Nikula <jani.nikula@linux.intel.com>,
	Jason Herne <jjherne@linux.ibm.com>,
	Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
	kvm@vger.kernel.org, Kirti Wankhede <kwankhede@nvidia.com>,
	linux-doc@vger.kernel.org, linux-s390@vger.kernel.org,
	Matthew Rosato <mjrosato@linux.ibm.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Zhenyu Wang <zhenyuw@linux.intel.com>,
	Zhi Wang <zhi.a.wang@intel.com>,
	"Raj, Ashok" <ashok.raj@intel.com>,
	Christoph Hellwig <hch@lst.de>,
	Leon Romanovsky <leonro@nvidia.com>,
	Max Gurtovoy <mgurtovoy@nvidia.com>,
	Yishai Hadas <yishaih@nvidia.com>
Subject: Re: [PATCH 09/13] vfio/pci: Reorganize VFIO_DEVICE_PCI_HOT_RESET to use the device set
Date: Thu, 15 Jul 2021 15:00:55 -0600	[thread overview]
Message-ID: <20210715150055.474f535f.alex.williamson@redhat.com> (raw)
In-Reply-To: <9-v1-eaf3ccbba33c+1add0-vfio_reflck_jgg@nvidia.com>

On Wed, 14 Jul 2021 21:20:38 -0300
Jason Gunthorpe <jgg@nvidia.com> wrote:
> +/*
> + * We need to get memory_lock for each device, but devices can share mmap_lock,
> + * therefore we need to zap and hold the vma_lock for each device, and only then
> + * get each memory_lock.
> + */
> +static int vfio_hot_reset_device_set(struct vfio_pci_device *vdev,
> +				     struct vfio_pci_group_info *groups)
> +{
> +	struct vfio_device_set *dev_set = vdev->vdev.dev_set;
> +	struct vfio_pci_device *cur_mem =
> +		list_first_entry(&dev_set->device_list, struct vfio_pci_device,
> +				 vdev.dev_set_list);

We shouldn't be looking at the list outside of the lock, if the first
entry got removed we'd break our unwind code.

> +	struct vfio_pci_device *cur_vma;
> +	struct vfio_pci_device *cur;
> +	bool is_mem = true;
> +	int ret;
>  
> -	if (pci_dev_driver(pdev) != &vfio_pci_driver) {
> -		vfio_device_put(device);
> -		return -EBUSY;
> +	mutex_lock(&dev_set->lock);
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^

> +
> +	/* All devices in the group to be reset need VFIO devices */
> +	if (vfio_pci_for_each_slot_or_bus(
> +		    vdev->pdev, vfio_pci_check_all_devices_bound, dev_set,
> +		    !pci_probe_reset_slot(vdev->pdev->slot))) {
> +		ret = -EINVAL;
> +		goto err_unlock;
>  	}
>  
> -	vdev = container_of(device, struct vfio_pci_device, vdev);
> +	list_for_each_entry(cur_vma, &dev_set->device_list, vdev.dev_set_list) {
> +		/*
> +		 * Test whether all the affected devices are contained by the
> +		 * set of groups provided by the user.
> +		 */
> +		if (!vfio_dev_in_groups(cur_vma, groups)) {
> +			ret = -EINVAL;
> +			goto err_undo;
> +		}
>  
> -	/*
> -	 * Locking multiple devices is prone to deadlock, runaway and
> -	 * unwind if we hit contention.
> -	 */
> -	if (!vfio_pci_zap_and_vma_lock(vdev, true)) {
> -		vfio_device_put(device);
> -		return -EBUSY;
> +		/*
> +		 * Locking multiple devices is prone to deadlock, runaway and
> +		 * unwind if we hit contention.
> +		 */
> +		if (!vfio_pci_zap_and_vma_lock(cur_vma, true)) {
> +			ret = -EBUSY;
> +			goto err_undo;
> +		}
>  	}
>  
> -	devs->devices[devs->cur_index++] = vdev;
> -	return 0;
> +	list_for_each_entry(cur_mem, &dev_set->device_list, vdev.dev_set_list) {
> +		if (!down_write_trylock(&cur_mem->memory_lock)) {
> +			ret = -EBUSY;
> +			goto err_undo;
> +		}
> +		mutex_unlock(&cur_mem->vma_lock);
> +	}
> +
> +	ret = pci_reset_bus(vdev->pdev);
> +


> +	list_for_each_entry(cur, &dev_set->device_list, vdev.dev_set_list)
> +		up_write(&cur->memory_lock);
> +	mutex_unlock(&dev_set->lock);
> +
> +	return ret;


Isn't the above section actually redundant to below, ie. we could just
fall through after the pci_reset_bus()?  Thanks,

Alex

> +
> +err_undo:
> +	list_for_each_entry(cur, &dev_set->device_list, vdev.dev_set_list) {
> +		if (cur == cur_mem)
> +			is_mem = false;
> +		if (cur == cur_vma)
> +			break;
> +		if (is_mem)
> +			up_write(&cur->memory_lock);
> +		else
> +			mutex_unlock(&cur->vma_lock);
> +	}
> +err_unlock:
> +	mutex_unlock(&dev_set->lock);
> +	return ret;
>  }
>  
>  /*


WARNING: multiple messages have this Message-ID (diff)
From: Alex Williamson <alex.williamson@redhat.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: kvm@vger.kernel.org, linux-doc@vger.kernel.org,
	David Airlie <airlied@linux.ie>,
	dri-devel@lists.freedesktop.org,
	Kirti Wankhede <kwankhede@nvidia.com>,
	Max Gurtovoy <mgurtovoy@nvidia.com>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Diana Craciun <diana.craciun@oss.nxp.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Christoph Hellwig <hch@lst.de>,
	linux-s390@vger.kernel.org,
	Matthew Rosato <mjrosato@linux.ibm.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Halil Pasic <pasic@linux.ibm.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	intel-gfx@lists.freedesktop.org, Zhi Wang <zhi.a.wang@intel.com>,
	Jason Herne <jjherne@linux.ibm.com>,
	Eric Farman <farman@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Eric Auger <eric.auger@redhat.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	intel-gvt-dev@lists.freedesktop.org, "Raj,
	Ashok" <ashok.raj@intel.com>,
	Tony Krowiak <akrowiak@linux.ibm.com>,
	Yishai Hadas <yishaih@nvidia.com>,
	Cornelia Huck <cohuck@redhat.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>
Subject: Re: [PATCH 09/13] vfio/pci: Reorganize VFIO_DEVICE_PCI_HOT_RESET to use the device set
Date: Thu, 15 Jul 2021 15:00:55 -0600	[thread overview]
Message-ID: <20210715150055.474f535f.alex.williamson@redhat.com> (raw)
In-Reply-To: <9-v1-eaf3ccbba33c+1add0-vfio_reflck_jgg@nvidia.com>

On Wed, 14 Jul 2021 21:20:38 -0300
Jason Gunthorpe <jgg@nvidia.com> wrote:
> +/*
> + * We need to get memory_lock for each device, but devices can share mmap_lock,
> + * therefore we need to zap and hold the vma_lock for each device, and only then
> + * get each memory_lock.
> + */
> +static int vfio_hot_reset_device_set(struct vfio_pci_device *vdev,
> +				     struct vfio_pci_group_info *groups)
> +{
> +	struct vfio_device_set *dev_set = vdev->vdev.dev_set;
> +	struct vfio_pci_device *cur_mem =
> +		list_first_entry(&dev_set->device_list, struct vfio_pci_device,
> +				 vdev.dev_set_list);

We shouldn't be looking at the list outside of the lock, if the first
entry got removed we'd break our unwind code.

> +	struct vfio_pci_device *cur_vma;
> +	struct vfio_pci_device *cur;
> +	bool is_mem = true;
> +	int ret;
>  
> -	if (pci_dev_driver(pdev) != &vfio_pci_driver) {
> -		vfio_device_put(device);
> -		return -EBUSY;
> +	mutex_lock(&dev_set->lock);
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^

> +
> +	/* All devices in the group to be reset need VFIO devices */
> +	if (vfio_pci_for_each_slot_or_bus(
> +		    vdev->pdev, vfio_pci_check_all_devices_bound, dev_set,
> +		    !pci_probe_reset_slot(vdev->pdev->slot))) {
> +		ret = -EINVAL;
> +		goto err_unlock;
>  	}
>  
> -	vdev = container_of(device, struct vfio_pci_device, vdev);
> +	list_for_each_entry(cur_vma, &dev_set->device_list, vdev.dev_set_list) {
> +		/*
> +		 * Test whether all the affected devices are contained by the
> +		 * set of groups provided by the user.
> +		 */
> +		if (!vfio_dev_in_groups(cur_vma, groups)) {
> +			ret = -EINVAL;
> +			goto err_undo;
> +		}
>  
> -	/*
> -	 * Locking multiple devices is prone to deadlock, runaway and
> -	 * unwind if we hit contention.
> -	 */
> -	if (!vfio_pci_zap_and_vma_lock(vdev, true)) {
> -		vfio_device_put(device);
> -		return -EBUSY;
> +		/*
> +		 * Locking multiple devices is prone to deadlock, runaway and
> +		 * unwind if we hit contention.
> +		 */
> +		if (!vfio_pci_zap_and_vma_lock(cur_vma, true)) {
> +			ret = -EBUSY;
> +			goto err_undo;
> +		}
>  	}
>  
> -	devs->devices[devs->cur_index++] = vdev;
> -	return 0;
> +	list_for_each_entry(cur_mem, &dev_set->device_list, vdev.dev_set_list) {
> +		if (!down_write_trylock(&cur_mem->memory_lock)) {
> +			ret = -EBUSY;
> +			goto err_undo;
> +		}
> +		mutex_unlock(&cur_mem->vma_lock);
> +	}
> +
> +	ret = pci_reset_bus(vdev->pdev);
> +


> +	list_for_each_entry(cur, &dev_set->device_list, vdev.dev_set_list)
> +		up_write(&cur->memory_lock);
> +	mutex_unlock(&dev_set->lock);
> +
> +	return ret;


Isn't the above section actually redundant to below, ie. we could just
fall through after the pci_reset_bus()?  Thanks,

Alex

> +
> +err_undo:
> +	list_for_each_entry(cur, &dev_set->device_list, vdev.dev_set_list) {
> +		if (cur == cur_mem)
> +			is_mem = false;
> +		if (cur == cur_vma)
> +			break;
> +		if (is_mem)
> +			up_write(&cur->memory_lock);
> +		else
> +			mutex_unlock(&cur->vma_lock);
> +	}
> +err_unlock:
> +	mutex_unlock(&dev_set->lock);
> +	return ret;
>  }
>  
>  /*


WARNING: multiple messages have this Message-ID (diff)
From: Alex Williamson <alex.williamson@redhat.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: kvm@vger.kernel.org, linux-doc@vger.kernel.org,
	David Airlie <airlied@linux.ie>,
	dri-devel@lists.freedesktop.org,
	Kirti Wankhede <kwankhede@nvidia.com>,
	Max Gurtovoy <mgurtovoy@nvidia.com>,
	Vineeth Vijayan <vneethv@linux.ibm.com>,
	Diana Craciun <diana.craciun@oss.nxp.com>,
	Leon Romanovsky <leonro@nvidia.com>,
	Christoph Hellwig <hch@lst.de>,
	linux-s390@vger.kernel.org,
	Matthew Rosato <mjrosato@linux.ibm.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Halil Pasic <pasic@linux.ibm.com>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	intel-gfx@lists.freedesktop.org,
	Jason Herne <jjherne@linux.ibm.com>,
	Eric Farman <farman@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Eric Auger <eric.auger@redhat.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	intel-gvt-dev@lists.freedesktop.org, "Raj,
	Ashok" <ashok.raj@intel.com>,
	Tony Krowiak <akrowiak@linux.ibm.com>,
	Yishai Hadas <yishaih@nvidia.com>,
	Cornelia Huck <cohuck@redhat.com>,
	Peter Oberparleiter <oberpar@linux.ibm.com>
Subject: Re: [Intel-gfx] [PATCH 09/13] vfio/pci: Reorganize VFIO_DEVICE_PCI_HOT_RESET to use the device set
Date: Thu, 15 Jul 2021 15:00:55 -0600	[thread overview]
Message-ID: <20210715150055.474f535f.alex.williamson@redhat.com> (raw)
In-Reply-To: <9-v1-eaf3ccbba33c+1add0-vfio_reflck_jgg@nvidia.com>

On Wed, 14 Jul 2021 21:20:38 -0300
Jason Gunthorpe <jgg@nvidia.com> wrote:
> +/*
> + * We need to get memory_lock for each device, but devices can share mmap_lock,
> + * therefore we need to zap and hold the vma_lock for each device, and only then
> + * get each memory_lock.
> + */
> +static int vfio_hot_reset_device_set(struct vfio_pci_device *vdev,
> +				     struct vfio_pci_group_info *groups)
> +{
> +	struct vfio_device_set *dev_set = vdev->vdev.dev_set;
> +	struct vfio_pci_device *cur_mem =
> +		list_first_entry(&dev_set->device_list, struct vfio_pci_device,
> +				 vdev.dev_set_list);

We shouldn't be looking at the list outside of the lock, if the first
entry got removed we'd break our unwind code.

> +	struct vfio_pci_device *cur_vma;
> +	struct vfio_pci_device *cur;
> +	bool is_mem = true;
> +	int ret;
>  
> -	if (pci_dev_driver(pdev) != &vfio_pci_driver) {
> -		vfio_device_put(device);
> -		return -EBUSY;
> +	mutex_lock(&dev_set->lock);
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^

> +
> +	/* All devices in the group to be reset need VFIO devices */
> +	if (vfio_pci_for_each_slot_or_bus(
> +		    vdev->pdev, vfio_pci_check_all_devices_bound, dev_set,
> +		    !pci_probe_reset_slot(vdev->pdev->slot))) {
> +		ret = -EINVAL;
> +		goto err_unlock;
>  	}
>  
> -	vdev = container_of(device, struct vfio_pci_device, vdev);
> +	list_for_each_entry(cur_vma, &dev_set->device_list, vdev.dev_set_list) {
> +		/*
> +		 * Test whether all the affected devices are contained by the
> +		 * set of groups provided by the user.
> +		 */
> +		if (!vfio_dev_in_groups(cur_vma, groups)) {
> +			ret = -EINVAL;
> +			goto err_undo;
> +		}
>  
> -	/*
> -	 * Locking multiple devices is prone to deadlock, runaway and
> -	 * unwind if we hit contention.
> -	 */
> -	if (!vfio_pci_zap_and_vma_lock(vdev, true)) {
> -		vfio_device_put(device);
> -		return -EBUSY;
> +		/*
> +		 * Locking multiple devices is prone to deadlock, runaway and
> +		 * unwind if we hit contention.
> +		 */
> +		if (!vfio_pci_zap_and_vma_lock(cur_vma, true)) {
> +			ret = -EBUSY;
> +			goto err_undo;
> +		}
>  	}
>  
> -	devs->devices[devs->cur_index++] = vdev;
> -	return 0;
> +	list_for_each_entry(cur_mem, &dev_set->device_list, vdev.dev_set_list) {
> +		if (!down_write_trylock(&cur_mem->memory_lock)) {
> +			ret = -EBUSY;
> +			goto err_undo;
> +		}
> +		mutex_unlock(&cur_mem->vma_lock);
> +	}
> +
> +	ret = pci_reset_bus(vdev->pdev);
> +


> +	list_for_each_entry(cur, &dev_set->device_list, vdev.dev_set_list)
> +		up_write(&cur->memory_lock);
> +	mutex_unlock(&dev_set->lock);
> +
> +	return ret;


Isn't the above section actually redundant to below, ie. we could just
fall through after the pci_reset_bus()?  Thanks,

Alex

> +
> +err_undo:
> +	list_for_each_entry(cur, &dev_set->device_list, vdev.dev_set_list) {
> +		if (cur == cur_mem)
> +			is_mem = false;
> +		if (cur == cur_vma)
> +			break;
> +		if (is_mem)
> +			up_write(&cur->memory_lock);
> +		else
> +			mutex_unlock(&cur->vma_lock);
> +	}
> +err_unlock:
> +	mutex_unlock(&dev_set->lock);
> +	return ret;
>  }
>  
>  /*

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2021-07-15 21:01 UTC|newest]

Thread overview: 115+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-15  0:20 [PATCH 00/13] Provide core infrastructure for managing open/release Jason Gunthorpe
2021-07-15  0:20 ` [Intel-gfx] " Jason Gunthorpe
2021-07-15  0:20 ` Jason Gunthorpe
2021-07-15  0:20 ` [PATCH 01/13] vfio/samples: Remove module get/put Jason Gunthorpe
2021-07-15  0:20   ` [Intel-gfx] " Jason Gunthorpe
2021-07-15  0:20   ` Jason Gunthorpe
2021-07-19 11:42   ` Cornelia Huck
2021-07-19 11:42     ` [Intel-gfx] " Cornelia Huck
2021-07-19 11:42     ` Cornelia Huck
2021-07-15  0:20 ` [PATCH 02/13] vfio: Introduce a vfio_uninit_group_dev() API call Jason Gunthorpe
2021-07-15  0:20   ` [Intel-gfx] " Jason Gunthorpe
2021-07-15  0:20   ` Jason Gunthorpe
2021-07-15  3:49   ` Leon Romanovsky
2021-07-15  3:49     ` [Intel-gfx] " Leon Romanovsky
2021-07-15  3:49     ` Leon Romanovsky
2021-07-15 12:45     ` Jason Gunthorpe
2021-07-15 12:45       ` [Intel-gfx] " Jason Gunthorpe
2021-07-15 12:45       ` Jason Gunthorpe
2021-07-19 12:11   ` Cornelia Huck
2021-07-19 12:11     ` [Intel-gfx] " Cornelia Huck
2021-07-19 12:11     ` Cornelia Huck
2021-07-19 12:17     ` Jason Gunthorpe
2021-07-19 12:17       ` [Intel-gfx] " Jason Gunthorpe
2021-07-19 12:17       ` Jason Gunthorpe
2021-07-19 12:43       ` Cornelia Huck
2021-07-19 12:43         ` [Intel-gfx] " Cornelia Huck
2021-07-19 12:43         ` Cornelia Huck
2021-07-15  0:20 ` [PATCH 03/13] vfio: Provide better generic support for open/release vfio_device_ops Jason Gunthorpe
2021-07-15  0:20   ` [Intel-gfx] " Jason Gunthorpe
2021-07-15  0:20   ` Jason Gunthorpe
2021-07-19 12:58   ` Cornelia Huck
2021-07-19 12:58     ` [Intel-gfx] " Cornelia Huck
2021-07-19 12:58     ` Cornelia Huck
2021-07-19 13:01     ` Jason Gunthorpe
2021-07-19 13:01       ` [Intel-gfx] " Jason Gunthorpe
2021-07-19 13:01       ` Jason Gunthorpe
2021-07-19 13:03       ` Jason Gunthorpe
2021-07-19 13:03         ` [Intel-gfx] " Jason Gunthorpe
2021-07-19 13:03         ` Jason Gunthorpe
2021-07-15  0:20 ` [PATCH 04/13] vfio/samples: Delete useless open/close Jason Gunthorpe
2021-07-15  0:20   ` [Intel-gfx] " Jason Gunthorpe
2021-07-15  0:20   ` Jason Gunthorpe
2021-07-19 13:01   ` Cornelia Huck
2021-07-19 13:01     ` [Intel-gfx] " Cornelia Huck
2021-07-19 13:01     ` Cornelia Huck
2021-07-15  0:20 ` [PATCH 05/13] vfio/fsl: Move to the device set infrastructure Jason Gunthorpe
2021-07-15  0:20   ` [Intel-gfx] " Jason Gunthorpe
2021-07-15  0:20   ` Jason Gunthorpe
2021-07-20 16:12   ` Diana Craciun OSS
2021-07-20 16:12     ` [Intel-gfx] " Diana Craciun OSS
2021-07-20 16:12     ` Diana Craciun OSS
2021-07-20 16:17     ` Jason Gunthorpe
2021-07-20 16:17       ` [Intel-gfx] " Jason Gunthorpe
2021-07-20 16:17       ` Jason Gunthorpe
2021-07-20 16:23       ` Diana Craciun OSS
2021-07-20 16:23         ` [Intel-gfx] " Diana Craciun OSS
2021-07-20 16:23         ` Diana Craciun OSS
2021-07-20 16:25         ` Jason Gunthorpe
2021-07-20 16:25           ` [Intel-gfx] " Jason Gunthorpe
2021-07-20 16:25           ` Jason Gunthorpe
2021-07-15  0:20 ` [PATCH 06/13] vfio/platform: Use open_device() instead of open coding a refcnt scheme Jason Gunthorpe
2021-07-15  0:20   ` [Intel-gfx] " Jason Gunthorpe
2021-07-15  0:20   ` Jason Gunthorpe
2021-07-15  0:20 ` [PATCH 07/13] vfio/pci: Move to the device set infrastructure Jason Gunthorpe
2021-07-15  0:20   ` [Intel-gfx] " Jason Gunthorpe
2021-07-15  0:20   ` Jason Gunthorpe
2021-07-15  0:20 ` [PATCH 08/13] vfio/pci: Change vfio_pci_try_bus_reset() to use the dev_set Jason Gunthorpe
2021-07-15  0:20   ` [Intel-gfx] " Jason Gunthorpe
2021-07-15  0:20   ` Jason Gunthorpe
2021-07-15  0:20 ` [PATCH 09/13] vfio/pci: Reorganize VFIO_DEVICE_PCI_HOT_RESET to use the device set Jason Gunthorpe
2021-07-15  0:20   ` [Intel-gfx] " Jason Gunthorpe
2021-07-15  0:20   ` Jason Gunthorpe
2021-07-15 21:00   ` Alex Williamson [this message]
2021-07-15 21:00     ` [Intel-gfx] " Alex Williamson
2021-07-15 21:00     ` Alex Williamson
2021-07-15 22:11     ` Jason Gunthorpe
2021-07-15 22:11       ` [Intel-gfx] " Jason Gunthorpe
2021-07-15 22:11       ` Jason Gunthorpe
2021-07-15 22:27       ` Alex Williamson
2021-07-15 22:27         ` [Intel-gfx] " Alex Williamson
2021-07-15 22:27         ` Alex Williamson
2021-07-15  0:20 ` [PATCH 10/13] vfio/mbochs: Fix close when multiple device FDs are open Jason Gunthorpe
2021-07-15  0:20   ` [Intel-gfx] " Jason Gunthorpe
2021-07-15  0:20   ` Jason Gunthorpe
2021-07-19 14:45   ` Cornelia Huck
2021-07-19 14:45     ` [Intel-gfx] " Cornelia Huck
2021-07-19 14:45     ` Cornelia Huck
2021-07-15  0:20 ` [PATCH 11/13] vfio/ap,ccw: Fix open/close " Jason Gunthorpe
2021-07-15  0:20   ` [Intel-gfx] [PATCH 11/13] vfio/ap, ccw: " Jason Gunthorpe
2021-07-15  0:20   ` Jason Gunthorpe
2021-07-19 14:40   ` [PATCH 11/13] vfio/ap,ccw: " Cornelia Huck
2021-07-19 14:40     ` [Intel-gfx] [PATCH 11/13] vfio/ap, ccw: " Cornelia Huck
2021-07-19 14:40     ` [PATCH 11/13] vfio/ap,ccw: " Cornelia Huck
2021-07-15  0:20 ` [PATCH 12/13] vfio/gvt: " Jason Gunthorpe
2021-07-15  0:20   ` [Intel-gfx] " Jason Gunthorpe
2021-07-15  0:20   ` Jason Gunthorpe
2021-07-16  6:50   ` Zhenyu Wang
2021-07-16  6:50     ` [Intel-gfx] " Zhenyu Wang
2021-07-16  6:50     ` Zhenyu Wang
2021-07-19 14:47   ` Cornelia Huck
2021-07-19 14:47     ` [Intel-gfx] " Cornelia Huck
2021-07-19 14:47     ` Cornelia Huck
2021-07-15  0:20 ` [PATCH 13/13] vfio: Remove struct vfio_device_ops open/release Jason Gunthorpe
2021-07-15  0:20   ` [Intel-gfx] " Jason Gunthorpe
2021-07-15  0:20   ` Jason Gunthorpe
2021-07-15 13:28 ` [PATCH 00/13] Provide core infrastructure for managing open/release Kirti Wankhede
2021-07-15 13:28   ` [Intel-gfx] " Kirti Wankhede
2021-07-15 13:28   ` Kirti Wankhede
2021-07-15 14:55   ` Jason Gunthorpe
2021-07-15 14:55     ` [Intel-gfx] " Jason Gunthorpe
2021-07-15 14:55     ` Jason Gunthorpe
2021-07-16 16:49 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Provide core infrastructure for managing open/release (rev2) Patchwork
2021-07-16 17:18 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-07-16 22:10 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2021-07-20 17:19 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for Provide core infrastructure for managing open/release (rev3) Patchwork

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=20210715150055.474f535f.alex.williamson@redhat.com \
    --to=alex.williamson@redhat.com \
    --cc=airlied@linux.ie \
    --cc=akrowiak@linux.ibm.com \
    --cc=ashok.raj@intel.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=corbet@lwn.net \
    --cc=daniel@ffwll.ch \
    --cc=diana.craciun@oss.nxp.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=eric.auger@redhat.com \
    --cc=farman@linux.ibm.com \
    --cc=freude@linux.ibm.com \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=hch@lst.de \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-gvt-dev@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.com \
    --cc=jgg@nvidia.com \
    --cc=jjherne@linux.ibm.com \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwankhede@nvidia.com \
    --cc=leonro@nvidia.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=mgurtovoy@nvidia.com \
    --cc=mjrosato@linux.ibm.com \
    --cc=oberpar@linux.ibm.com \
    --cc=pasic@linux.ibm.com \
    --cc=rodrigo.vivi@intel.com \
    --cc=vneethv@linux.ibm.com \
    --cc=yishaih@nvidia.com \
    --cc=zhenyuw@linux.intel.com \
    --cc=zhi.a.wang@intel.com \
    /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 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.