Message ID | 20220110051851.84807-1-lingshan.zhu@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | Supoort shared irq for virtqueues | expand |
On Mon, Jan 10, 2022 at 01:18:44PM +0800, Zhu Lingshan wrote: > On some platforms, it has been observed that a device may fail to > allocate enough MSI-X vectors, under such circumstances, the vqs have > to share a irq/vector. > > This series extends irq requester/handlers abilities to deal with: > (granted nvectors, and max_intr = total vq number + 1(config interrupt) ) > > 1)nvectors = max_intr: each vq has its own vector/irq, > config interrupt is enabled, normal case > 2)max_intr > nvectors >= 2: vqs share one irq/vector, config interrupt is > enabled > 3)nvectors = 1, vqs share one irq/vector, config interrupt is disabled. > Otherwise it fails. > > This series also made necessary changes to irq cleaners and related > helpers. > > Pleaase help reivew. A bunch of typos in commit logs, please spell-check them. > Thanks! > Zhu Lingshan > > Zhu Lingshan (7): > vDPA/ifcvf: implement IO read/write helpers in the header file > vDPA/ifcvf: introduce new helpers to set config vector and vq vectors > vDPA/ifcvf: implement device MSIX vector allocation helper > vDPA/ifcvf: implement shared irq handlers for vqs > vDPA/ifcvf: irq request helpers for both shared and per_vq irq > vDPA/ifcvf: implement config interrupt request helper > vDPA/ifcvf: improve irq requester, to handle per_vq/shared/config irq > > drivers/vdpa/ifcvf/ifcvf_base.c | 65 ++++-------- > drivers/vdpa/ifcvf/ifcvf_base.h | 45 +++++++- > drivers/vdpa/ifcvf/ifcvf_main.c | 179 +++++++++++++++++++++++++++----- > 3 files changed, 215 insertions(+), 74 deletions(-) > > -- > 2.27.0
On Mon, Jan 10, 2022 at 01:18:44PM +0800, Zhu Lingshan wrote: > On some platforms, it has been observed that a device may fail to > allocate enough MSI-X vectors, under such circumstances, the vqs have > to share a irq/vector. > > This series extends irq requester/handlers abilities to deal with: > (granted nvectors, and max_intr = total vq number + 1(config interrupt) ) > > 1)nvectors = max_intr: each vq has its own vector/irq, > config interrupt is enabled, normal case > 2)max_intr > nvectors >= 2: vqs share one irq/vector, config interrupt is > enabled > 3)nvectors = 1, vqs share one irq/vector, config interrupt is disabled. > Otherwise it fails. > > This series also made necessary changes to irq cleaners and related > helpers. BTW you should copy the virtio mailing list, too. Not just netdev. > Pleaase help reivew. > > Thanks! > Zhu Lingshan > > Zhu Lingshan (7): > vDPA/ifcvf: implement IO read/write helpers in the header file > vDPA/ifcvf: introduce new helpers to set config vector and vq vectors > vDPA/ifcvf: implement device MSIX vector allocation helper > vDPA/ifcvf: implement shared irq handlers for vqs > vDPA/ifcvf: irq request helpers for both shared and per_vq irq > vDPA/ifcvf: implement config interrupt request helper > vDPA/ifcvf: improve irq requester, to handle per_vq/shared/config irq > > drivers/vdpa/ifcvf/ifcvf_base.c | 65 ++++-------- > drivers/vdpa/ifcvf/ifcvf_base.h | 45 +++++++- > drivers/vdpa/ifcvf/ifcvf_main.c | 179 +++++++++++++++++++++++++++----- > 3 files changed, 215 insertions(+), 74 deletions(-) > > -- > 2.27.0