Messages in this thread | | | From | Yongji Xie <> | Date | Mon, 19 Dec 2022 13:04:43 +0800 | Subject | Re: [PATCH v2 05/11] vduse: Introduce bound workqueue for irq injection |
| |
On Fri, Dec 16, 2022 at 12:02 PM Jason Wang <jasowang@redhat.com> wrote: > > On Mon, Dec 5, 2022 at 4:44 PM Xie Yongji <xieyongji@bytedance.com> wrote: > > > > This introduces a bound workqueue to support running > > irq callback in a specified cpu. > > > > Signed-off-by: Xie Yongji <xieyongji@bytedance.com> > > --- > > drivers/vdpa/vdpa_user/vduse_dev.c | 29 ++++++++++++++++++++++------- > > 1 file changed, 22 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c > > index 37809bfcb7ef..d126f3e32a20 100644 > > --- a/drivers/vdpa/vdpa_user/vduse_dev.c > > +++ b/drivers/vdpa/vdpa_user/vduse_dev.c > > @@ -57,6 +57,7 @@ struct vduse_virtqueue { > > struct vdpa_callback cb; > > struct work_struct inject; > > struct work_struct kick; > > + int irq_effective_cpu; > > I wonder why it's a cpu number instead of a cpumask. The latter seems > more flexible, e.g when using NUMA. >
This variable represents the CPU that runs the interrupt callback rather than CPU affinity.
> > }; > > > > struct vduse_dev; > > @@ -128,6 +129,7 @@ static struct class *vduse_class; > > static struct cdev vduse_ctrl_cdev; > > static struct cdev vduse_cdev; > > static struct workqueue_struct *vduse_irq_wq; > > +static struct workqueue_struct *vduse_irq_bound_wq; > > > > static u32 allowed_device_id[] = { > > VIRTIO_ID_BLOCK, > > @@ -917,7 +919,8 @@ static void vduse_vq_irq_inject(struct work_struct *work) > > } > > > > static int vduse_dev_queue_irq_work(struct vduse_dev *dev, > > - struct work_struct *irq_work) > > + struct work_struct *irq_work, > > + int irq_effective_cpu) > > { > > int ret = -EINVAL; > > > > @@ -926,7 +929,11 @@ static int vduse_dev_queue_irq_work(struct vduse_dev *dev, > > goto unlock; > > > > ret = 0; > > - queue_work(vduse_irq_wq, irq_work); > > + if (irq_effective_cpu == -1) > > Is it better to have a macro for this magic number? >
It makes sense to me.
Thanks, Yongji
| |