From: "Zhu, Lingshan" <lingshan.zhu@intel.com>
To: Jason Wang <jasowang@redhat.com>, mst@redhat.com, lulu@redhat.com
Cc: virtualization@lists.linux-foundation.org,
netdev@vger.kernel.org, kvm@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH V2 2/4] vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA
Date: Tue, 9 Mar 2021 13:50:39 +0800 [thread overview]
Message-ID: <0e72009d-60af-980d-a43e-495733f6f6f7@intel.com> (raw)
In-Reply-To: <91c08fdd-0a36-ddca-5b8c-ef2eef7cddc2@redhat.com>
On 3/9/2021 10:42 AM, Jason Wang wrote:
>
> On 2021/3/9 10:28 上午, Zhu, Lingshan wrote:
>>
>>
>> On 3/9/2021 10:23 AM, Jason Wang wrote:
>>>
>>> On 2021/3/8 4:35 下午, Zhu Lingshan wrote:
>>>> This commit enabled Intel FPGA SmartNIC C5000X-PL virtio-net
>>>> for vDPA
>>>>
>>>> Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com>
>>>> ---
>>>> drivers/vdpa/ifcvf/ifcvf_base.h | 5 +++++
>>>> drivers/vdpa/ifcvf/ifcvf_main.c | 5 +++++
>>>> 2 files changed, 10 insertions(+)
>>>>
>>>> diff --git a/drivers/vdpa/ifcvf/ifcvf_base.h
>>>> b/drivers/vdpa/ifcvf/ifcvf_base.h
>>>> index 64696d63fe07..75d9a8052039 100644
>>>> --- a/drivers/vdpa/ifcvf/ifcvf_base.h
>>>> +++ b/drivers/vdpa/ifcvf/ifcvf_base.h
>>>> @@ -23,6 +23,11 @@
>>>> #define IFCVF_SUBSYS_VENDOR_ID 0x8086
>>>> #define IFCVF_SUBSYS_DEVICE_ID 0x001A
>>>> +#define C5000X_PL_VENDOR_ID 0x1AF4
>>>> +#define C5000X_PL_DEVICE_ID 0x1000
>>>> +#define C5000X_PL_SUBSYS_VENDOR_ID 0x8086
>>>> +#define C5000X_PL_SUBSYS_DEVICE_ID 0x0001
>>>
>>>
>>> I just notice that the device is a transtitional one. Any reason for
>>> doing this?
>>>
>>> Note that IFCVF is a moden device anyhow (0x1041). Supporting legacy
>>> drive may bring many issues (e.g the definition is non-nomartive).
>>> One example is the support of VIRTIO_F_IOMMU_PLATFORM, legacy driver
>>> may assume the device can bypass IOMMU.
>>>
>>> Thanks
>> Hi Jason,
>>
>> This device will support virtio1.0 by default, so has
>> VIRTIO_F_IOMMU_PLATFORM by default.
>
>
> If you device want to force VIRTIO_F_IOMMU_PLATFORM you probably need
> to do what has been done by mlx5 (verify_min_features).
>
> According to the spec, if VIRTIO_F_IOMMU_PLATFORM is not mandatory,
> when it's not negotiated, device needs to disable or bypass IOMMU:
>
>
> "
>
> If this feature bit is set to 0, then the device has same access to
> memory addresses supplied to it as the driver has. In particular, the
> device will always use physical addresses matching addresses used by
> the driver (typically meaning physical addresses used by the CPU) and
> not translated further, and can access any address supplied to it by
> the driver.
>
> "
sure, I can implement code to check the feature bits.
>
>
>> Transitional device gives the software a chance to fall back to
>> virtio 0.95.
>
>
> This only applies if you want to passthrough the card to guest
> directly without the help of vDPA.
>
> If we go with vDPA, it doesn't hlep. For virtio-vdpa, we know it will
> negotiated IOMMU_PLATFORM. For vhost-vdpa, Qemu can provide a legacy
> or transitional device on top of a modern vDPA device.
>
> Thanks
For some cases, users may run quite out of date OS does not have vDPA
nor virtio 1.0 support, transitional characters give them a chance to
use the devices.
Thanks
Zhu Lingshan
>
>
>> ifcvf drives this device in virtio 1.0 mode, set features
>> VIRTIO_F_IOMMU_PLATFORM successfully.
>>
>> Thanks,
>> Zhu Lingshan
>>>
>>>
>>>> +
>>>> #define IFCVF_SUPPORTED_FEATURES \
>>>> ((1ULL << VIRTIO_NET_F_MAC) | \
>>>> (1ULL << VIRTIO_F_ANY_LAYOUT) | \
>>>> diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c
>>>> b/drivers/vdpa/ifcvf/ifcvf_main.c
>>>> index e501ee07de17..26a2dab7ca66 100644
>>>> --- a/drivers/vdpa/ifcvf/ifcvf_main.c
>>>> +++ b/drivers/vdpa/ifcvf/ifcvf_main.c
>>>> @@ -484,6 +484,11 @@ static struct pci_device_id ifcvf_pci_ids[] = {
>>>> IFCVF_DEVICE_ID,
>>>> IFCVF_SUBSYS_VENDOR_ID,
>>>> IFCVF_SUBSYS_DEVICE_ID) },
>>>> + { PCI_DEVICE_SUB(C5000X_PL_VENDOR_ID,
>>>> + C5000X_PL_DEVICE_ID,
>>>> + C5000X_PL_SUBSYS_VENDOR_ID,
>>>> + C5000X_PL_SUBSYS_DEVICE_ID) },
>>>> +
>>>> { 0 },
>>>> };
>>>> MODULE_DEVICE_TABLE(pci, ifcvf_pci_ids);
>>>
>>
>
next prev parent reply other threads:[~2021-03-09 5:51 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-08 8:35 [PATCH V2 0/4] vDPA/ifcvf: enables Intel C5000X-PL virtio-net Zhu Lingshan
2021-03-08 8:35 ` [PATCH V2 1/4] vDPA/ifcvf: get_vendor_id returns a device specific vendor id Zhu Lingshan
2021-03-09 2:18 ` Jason Wang
2021-03-08 8:35 ` [PATCH V2 2/4] vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA Zhu Lingshan
2021-03-09 2:23 ` Jason Wang
2021-03-09 2:28 ` Zhu, Lingshan
2021-03-09 2:42 ` Jason Wang
2021-03-09 5:50 ` Zhu, Lingshan [this message]
2021-03-08 8:35 ` [PATCH V2 3/4] vDPA/ifcvf: rename original IFCVF dev ids to N3000 ids Zhu Lingshan
2021-03-09 2:24 ` Jason Wang
2021-03-08 8:35 ` [PATCH V2 4/4] vDPA/ifcvf: remove the version number string Zhu Lingshan
2021-03-08 16:03 ` Leon Romanovsky
2021-03-09 2:25 ` Jason Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0e72009d-60af-980d-a43e-495733f6f6f7@intel.com \
--to=lingshan.zhu@intel.com \
--cc=jasowang@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lulu@redhat.com \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=virtualization@lists.linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®