Zhu Lingshan
90d1936681
vDPA/ifcvf: enable multiqueue and control vq
...
This commit enbales multi-queue and control vq
features for ifcvf
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com >
Link: https://lore.kernel.org/r/20210818095714.3220-3-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
Acked-by: Jason Wang <jasowang@redhat.com >
2021-09-05 16:23:07 -04:00
Zhu Lingshan
2ddae773c9
vDPA/ifcvf: detect and use the onboard number of queues directly
...
To enable this multi-queue feature for ifcvf, this commit
intends to detect and use the onboard number of queues
directly than IFCVF_MAX_QUEUE_PAIRS = 1 (removed)
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com >
Link: https://lore.kernel.org/r/20210818095714.3220-2-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
Acked-by: Jason Wang <jasowang@redhat.com >
2021-09-05 16:23:07 -04:00
Zhu Lingshan
6b5df347c6
vDPA/ifcvf: implement management netlink framework for ifcvf
...
This commit implements the management netlink framework for ifcvf,
including register and add / remove a device
It works with iproute2:
[root@localhost lszhu]# vdpa mgmtdev show -jp
{
"mgmtdev": {
"pci/0000:01:00.5": {
"supported_classes": [ "net" ]
},
"pci/0000:01:00.6": {
"supported_classes": [ "net" ]
}
}
}
[root@localhost lszhu]# vdpa dev add mgmtdev pci/0000:01:00.5 name vdpa0
[root@localhost lszhu]# vdpa dev add mgmtdev pci/0000:01:00.6 name vdpa1
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com >
Acked-by: Jason Wang <jasowang@redhat.com >
Link: https://lore.kernel.org/r/20210812032454.24486-3-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
2021-09-05 16:23:07 -04:00
Zhu Lingshan
42326903c6
vDPA/ifcvf: reuse pre-defined macros for device ids and vendor ids
...
This commit would reuse pre-defined macros for ifcvf device ids
and vendor ids
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com >
Link: https://lore.kernel.org/r/20210510081015.4212-3-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
2021-07-03 04:50:51 -04:00
Zhu Lingshan
04c6ad8f22
vDPA/ifcvf: record virtio notify base
...
This commit records virtio notify base physical addr and
calculate doorbell physical address for vqs.
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com >
Acked-by: Jason Wang <jasowang@redhat.com >
Link: https://lore.kernel.org/r/20210602084550.289599-2-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
2021-07-03 04:50:51 -04:00
Zhu Lingshan
6ad31d162a
vDPA/ifcvf: enable Intel C5000X-PL virtio-block for vDPA
...
This commit enabled Intel FPGA SmartNIC C5000X-PL virtio-block
for vDPA.
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com >
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com >
Acked-by: Jason Wang <jasowang@redhat.com >
Link: https://lore.kernel.org/r/20210419063326.3748-3-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
2021-05-03 04:55:54 -04:00
Zhu Lingshan
26bfea1309
vDPA/ifcvf: deduce VIRTIO device ID when probe
...
This commit deduces VIRTIO device ID as device type when probe,
then ifcvf_vdpa_get_device_id() can simply return the ID.
ifcvf_vdpa_get_features() and ifcvf_vdpa_get_config_size()
can work properly based on the device ID.
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com >
Link: https://lore.kernel.org/r/20210419063326.3748-2-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
Acked-by: Jason Wang <jasowang@redhat.com >
2021-05-03 04:55:54 -04:00
Zhu Lingshan
e8ef612495
vDPA/ifcvf: deduce VIRTIO device ID from pdev ids
...
This commit deduces the VIRTIO device ID of a probed
device from its pdev device ids.
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com >
Link: https://lore.kernel.org/r/20210317094933.16417-8-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
Acked-by: Jason Wang <jasowang@redhat.com >
2021-05-03 04:55:52 -04:00
Zhu Lingshan
1d895a6808
vDPA/ifcvf: verify mandatory feature bits for vDPA
...
vDPA requres VIRTIO_F_ACCESS_PLATFORM as a must, this commit
examines this when set features.
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com >
Acked-by: Jason Wang <jasowang@redhat.com >
Link: https://lore.kernel.org/r/20210317094933.16417-7-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
2021-05-03 04:55:52 -04:00
Zhu Lingshan
69d00d9858
vDPA/ifcvf: fetch device feature bits when probe
...
This commit would read and store device feature
bits when probe.
rename ifcvf_get_features() to ifcvf_get_hw_features(),
it reads and stores features of the probed device.
new ifcvf_get_features() simply returns stored
feature bits.
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com >
Acked-by: Jason Wang <jasowang@redhat.com >
Link: https://lore.kernel.org/r/20210317094933.16417-6-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
2021-05-03 04:55:52 -04:00
Zhu Lingshan
51fc387b67
vDPA/ifcvf: rename original IFCVF dev ids to N3000 ids
...
IFCVF driver probes multiple types of devices now,
to distinguish the original device driven by IFCVF
from others, it is renamed as "N3000".
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com >
Acked-by: Jason Wang <jasowang@redhat.com >
Link: https://lore.kernel.org/r/20210317094933.16417-4-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
2021-05-03 04:55:52 -04:00
Zhu Lingshan
139c3fd9c9
vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA
...
This commit enabled Intel FPGA SmartNIC C5000X-PL virtio-net
for vDPA
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com >
Acked-by: Jason Wang <jasowang@redhat.com >
Link: https://lore.kernel.org/r/20210317094933.16417-3-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
2021-05-03 04:55:52 -04:00
Jason Wang
2b9f28d5e8
vdpa: ifcvf: free config irq in ifcvf_free_irq()
...
We don't free config irq in ifcvf_free_irq() which will trigger a
BUG() in pci core since we try to free the vectors that has an
action. Fixing this by recording the config irq in ifcvf_hw structure
and free it in ifcvf_free_irq().
Fixes: e7991f376a ("ifcvf: implement config interrupt in IFCVF")
Cc: Zhu Lingshan <lingshan.zhu@intel.com >
Signed-off-by: Jason Wang <jasowang@redhat.com >
Link: https://lore.kernel.org/r/20200723091254.20617-2-jasowang@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
Reviewed-by: Zhu Lingshan <lingshan.zhu@intel.com >
Fixes: e7991f376a ("ifcvf: implement config interrupt in IFCVF")
Cc: Zhu Lingshan <a class="moz-txt-link-rfc2396E" href="mailto:lingshan.zhu@intel.com "><lingshan.zhu@intel.com ></a>
Signed-off-by: Jason Wang <a class="moz-txt-link-rfc2396E" href="mailto:jasowang@redhat.com "><jasowang@redhat.com ></a>
2020-08-26 08:13:59 -04:00
Eli Cohen
aac50c0bd4
net/vdpa: Use struct for set/get vq state
...
For now VQ state involves 16 bit available index value encoded in u64
variable. In the future it will be extended to contain more fields. Use
struct to contain the state, now containing only a single u16 for the
available index. In the future we can add fields to this struct.
Reviewed-by: Parav Pandit <parav@mellanox.com >
Acked-by: Jason Wang <jasowang@redhat.com >
Signed-off-by: Eli Cohen <eli@mellanox.com >
Link: https://lore.kernel.org/r/20200804162048.22587-8-eli@mellanox.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
2020-08-05 18:39:19 -04:00
Michael S. Tsirkin
321bd21261
virtio: VIRTIO_F_IOMMU_PLATFORM -> VIRTIO_F_ACCESS_PLATFORM
...
Rename the bit to match latest virtio spec.
Add a compat macro to avoid breaking existing userspace.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
Reviewed-by: David Hildenbrand <david@redhat.com >
2020-08-03 16:11:42 -04:00
Zhu Lingshan
e7991f376a
ifcvf: implement config interrupt in IFCVF
...
This commit implements config interrupt support
in IFC VF
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com >
Acked-by: Jason Wang <jasowang@redhat.com >
Link: https://lore.kernel.org/r/1591352835-22441-6-git-send-email-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
2020-06-06 16:26:47 -04:00
Michael S. Tsirkin
c9b9f5f8c0
vdpa: move to drivers/vdpa
...
We have both vhost and virtio drivers that depend on vdpa.
It's easier to locate it at a top level directory otherwise
we run into issues e.g. if vhost is built-in but virtio
is modular. Let's just move it up a level.
Reported-by: Randy Dunlap <rdunlap@infradead.org >
Signed-off-by: Michael S. Tsirkin <mst@redhat.com >
2020-04-02 10:41:40 -04:00