Jason Wang
2022-Dec-07 05:56 UTC
[PATCH v2 01/11] genirq/affinity:: Export irq_create_affinity_masks()
On Tue, Dec 6, 2022 at 5:28 PM Yongji Xie <xieyongji at bytedance.com> wrote:> > On Tue, Dec 6, 2022 at 4:47 PM Christoph Hellwig <hch at lst.de> wrote: > > > > On Tue, Dec 06, 2022 at 04:40:37PM +0800, Yongji Xie wrote: > > > With the vDPA framework, some drivers (vduse, vdpa-sim) can create > > > software-defined virtio devices and attach them to the virtio bus. > > > This kind of virtio device is not a pci device or a platform device. > > > So it would be needed to export this function if we want to implement > > > the automatic affinity management for the virtio device driver which > > > is binded to this device. > > > > Why are these devices even using interrupts? > > They don't use interrupt. But they use a bound workqueue to run the > interrupt callback. So the driver needs an algorithm to choose which > cpu to run the interrupt callback. Then we found the existing > interrupt affinity spreading mechanism is very suitable for this > scenario, so we try to export this function to reuse it. > > > The whjole vdpa thing > > is a mess, I also still need to fix up the horrible abuse of the DMA > > API for something that isn't even DMA, and this just seems to spread > > that same mistake even further.I think it's mostly an issue of some vDPA parents, not the vDPA itself. I had patches to get rid of the DMA API for vDPA simulators. Will post.> > We just want to reuse this algorithm. And it is completely independent > of the IRQ subsystem. I guess it would not mess things up.I think so, it's about which CPU do we want to run the callback and the callback is not necessarily triggered by an IRQ. Thanks> > Thanks, > Yongji >