Messages in this thread | | | From | Yongji Xie <> | Date | Tue, 20 Dec 2022 16:21:57 +0800 | Subject | Re: [PATCH v2 06/11] vduse: Support automatic irq callback affinity |
| |
On Tue, Dec 20, 2022 at 2:32 PM Jason Wang <jasowang@redhat.com> wrote: > > On Mon, Dec 19, 2022 at 12:56 PM Yongji Xie <xieyongji@bytedance.com> wrote: > > > > On Fri, Dec 16, 2022 at 1:30 PM Jason Wang <jasowang@redhat.com> wrote: > > > > > > On Mon, Dec 5, 2022 at 4:59 PM Xie Yongji <xieyongji@bytedance.com> wrote: > > > > > > > > This brings current interrupt affinity spreading mechanism > > > > to vduse device. We will make use of irq_create_affinity_masks() > > > > to create an irq callback affinity mask for each virtqueue of > > > > vduse device. Then we will choose the CPU which has the lowest > > > > number of interrupt allocated in the affinity mask to run the > > > > irq callback. > > > > > > This seems a balance mechanism but it might not be the semantic of the > > > affinity or any reason we need to do this? I guess we should use at > > > least round-robin in this case. > > > > > > > Here we try to follow the pci interrupt management mechanism. In VM > > cases, the interrupt should always be triggered to one specific CPU > > rather than to each CPU in turn. > > If I was not wrong, when using MSI, most arch allows not only the > cpuid as the destination but policy like rr and low priority first. >
I see. I think we can remove the irq effective affinity and just use the irq affinity. If the irq affinity mask contains more than one CPU, we can use round-robin to spread IRQ between CPUs. But the sysfs interface for irq affinity should be writable so that someone wants to stop round-robin and pick one CPU to run irq callback.
Thanks, Yongji
| |