summaryrefslogtreecommitdiffstats
path: root/scripts/sorttable.c
diff options
context:
space:
mode:
authorZhu Lingshan <lingshan.zhu@intel.com>2022-02-22 12:54:27 +0100
committerMichael S. Tsirkin <mst@redhat.com>2022-03-28 22:52:57 +0200
commit9b3e814834009a7d197ab6f93d6e061c0c4ee7e6 (patch)
tree941f360c6059e8cbea9ee37df4259fa08234953d /scripts/sorttable.c
parentvDPA/ifcvf: implement device MSIX vector allocator (diff)
downloadlinux-9b3e814834009a7d197ab6f93d6e061c0c4ee7e6.tar.xz
linux-9b3e814834009a7d197ab6f93d6e061c0c4ee7e6.zip
vDPA/ifcvf: implement shared IRQ feature
On some platforms/devices, there may not be enough MSI vectors allocated for the virtqueues and config changes. In such a case, the interrupt sources(virtqueues, config changes) must share an IRQ/vector, to avoid initialization failures, keep the device functional. This commit handles three cases: (1) number of the allocated vectors == the number of virtqueues + 1 (config changes), every virtqueue and the config interrupt has a separated vector/IRQ, the best and the most likely case. (2) number of the allocated vectors is less than the best case, but greater than 1. In this case, all virtqueues share a vector/IRQ, the config interrupt has a separated vector/IRQ (3) only one vector is allocated, in this case, the virtqueues and the config interrupt share a vector/IRQ. The worst and most unlikely case. Otherwise, it needs to fail. This commit introduces some helper functions: ifcvf_set_vq_vector() and ifcvf_set_config_vector() sets virtqueue vector and config vector in the device config space, so that the device can send interrupt DMA. Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com> Link: https://lore.kernel.org/r/20220222115428.998334-5-lingshan.zhu@intel.com Signed-off-by: Tom Rix <trix@redhat.com> Link: https://lore.kernel.org/r/20220315124130.1710030-1-trix@redhat.com Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'scripts/sorttable.c')
0 files changed, 0 insertions, 0 deletions