Jakub Sitnicki
2023-Oct-25 14:53 UTC
[PATCH v2] virtio_pci: Switch away from deprecated irq_set_affinity_hint
Since commit 65c7cdedeb30 ("genirq: Provide new interfaces for affinity hints") irq_set_affinity_hint is being phased out. Switch to new interfaces for setting and applying irq affinity hints. Signed-off-by: Jakub Sitnicki <jakub at cloudflare.com> --- v2: - Leave cpumask_copy as is. We can't pass pointer to stack memory as hint. Proposed a change to IRQ affinity interface to address this limitation: https://lore.kernel.org/r/20231025141517.375378-1-jakub at cloudflare.com v1: https://lore.kernel.org/r/20231019101625.412936-2-jakub at cloudflare.com --- drivers/virtio/virtio_pci_common.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c index c2524a7207cf..7a5593997e0e 100644 --- a/drivers/virtio/virtio_pci_common.c +++ b/drivers/virtio/virtio_pci_common.c @@ -242,7 +242,7 @@ void vp_del_vqs(struct virtio_device *vdev) if (v != VIRTIO_MSI_NO_VECTOR) { int irq = pci_irq_vector(vp_dev->pci_dev, v); - irq_set_affinity_hint(irq, NULL); + irq_update_affinity_hint(irq, NULL); free_irq(irq, vq); } } @@ -443,10 +443,10 @@ int vp_set_vq_affinity(struct virtqueue *vq, const struct cpumask *cpu_mask) mask = vp_dev->msix_affinity_masks[info->msix_vector]; irq = pci_irq_vector(vp_dev->pci_dev, info->msix_vector); if (!cpu_mask) - irq_set_affinity_hint(irq, NULL); + irq_update_affinity_hint(irq, NULL); else { cpumask_copy(mask, cpu_mask); - irq_set_affinity_hint(irq, mask); + irq_set_affinity_and_hint(irq, mask); } } return 0; -- 2.41.0
Xuan Zhuo
2023-Oct-26 03:36 UTC
[PATCH v2] virtio_pci: Switch away from deprecated irq_set_affinity_hint
On Wed, 25 Oct 2023 16:53:19 +0200, Jakub Sitnicki <jakub at cloudflare.com> wrote:> Since commit 65c7cdedeb30 ("genirq: Provide new interfaces for affinity > hints") irq_set_affinity_hint is being phased out. > > Switch to new interfaces for setting and applying irq affinity hints. > > Signed-off-by: Jakub Sitnicki <jakub at cloudflare.com>Reviewed-by: Xuan Zhuo <xuanzhuo at linux.alibaba.com> Thanks.> --- > v2: > - Leave cpumask_copy as is. We can't pass pointer to stack memory as hint. > Proposed a change to IRQ affinity interface to address this limitation: > https://lore.kernel.org/r/20231025141517.375378-1-jakub at cloudflare.com > > v1: https://lore.kernel.org/r/20231019101625.412936-2-jakub at cloudflare.com > --- > drivers/virtio/virtio_pci_common.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c > index c2524a7207cf..7a5593997e0e 100644 > --- a/drivers/virtio/virtio_pci_common.c > +++ b/drivers/virtio/virtio_pci_common.c > @@ -242,7 +242,7 @@ void vp_del_vqs(struct virtio_device *vdev) > if (v != VIRTIO_MSI_NO_VECTOR) { > int irq = pci_irq_vector(vp_dev->pci_dev, v); > > - irq_set_affinity_hint(irq, NULL); > + irq_update_affinity_hint(irq, NULL); > free_irq(irq, vq); > } > } > @@ -443,10 +443,10 @@ int vp_set_vq_affinity(struct virtqueue *vq, const struct cpumask *cpu_mask) > mask = vp_dev->msix_affinity_masks[info->msix_vector]; > irq = pci_irq_vector(vp_dev->pci_dev, info->msix_vector); > if (!cpu_mask) > - irq_set_affinity_hint(irq, NULL); > + irq_update_affinity_hint(irq, NULL); > else { > cpumask_copy(mask, cpu_mask); > - irq_set_affinity_hint(irq, mask); > + irq_set_affinity_and_hint(irq, mask); > } > } > return 0; > -- > 2.41.0 >
Jakub Sitnicki
2023-Oct-26 16:25 UTC
[PATCH v2] virtio_pci: Switch away from deprecated irq_set_affinity_hint
On Wed, Oct 25, 2023 at 04:53 PM +02, Jakub Sitnicki wrote:> Since commit 65c7cdedeb30 ("genirq: Provide new interfaces for affinity > hints") irq_set_affinity_hint is being phased out. > > Switch to new interfaces for setting and applying irq affinity hints. > > Signed-off-by: Jakub Sitnicki <jakub at cloudflare.com> > --- > v2: > - Leave cpumask_copy as is. We can't pass pointer to stack memory as hint. > Proposed a change to IRQ affinity interface to address this limitation: > https://lore.kernel.org/r/20231025141517.375378-1-jakub at cloudflare.comJust a note to the ^ - if we wanted to get rid of msix_affinity_masks, we could call irq_set_affinity directly, instead of calling it through irq_set_affinity[_and]_hint. The hint wouldn't be available any more in /proc/irq/N/affinity_hint, but the same information can be gathered from /proc/irq/N/smp_affinity. [...]