mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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);
>>>
>>
>


  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®