lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Thu, 29 Apr 2021 10:18:43 +0800
From:   Jason Wang <jasowang@...hat.com>
To:     "Walukiewicz, Miroslaw" <Miroslaw.Walukiewicz@...el.com>,
        Arkadiusz Kudan <arkadiusz.kudan@...ilime.com>,
        "virtualization@...ts.linux-foundation.org" 
        <virtualization@...ts.linux-foundation.org>
Cc:     "mst@...hat.com" <mst@...hat.com>,
        "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        "Jayagopi, Geetha" <geetha.jayagopi@...el.com>
Subject: Re: [PATCH] virtio-net: enable SRIOV


在 2021/4/28 下午9:32, Walukiewicz, Miroslaw 写道:
> HI Jason,
>
> You are right here. We did not catch your change in driver and the SRIOV flag is set correctly as you stated.
>
> We want to orchestrate the HW implementation of VFs and PFs for virtio-net using libvirt.
>
> The issue that we want to resolve is that there is no .ndo_get_vf_config Callback implemented in virtio-net driver as other NIC's drivers have, called by libvirt.
> See https://github.com/torvalds/linux/blob/master/drivers/net/ethernet/intel/igb/igb_main.c#L2996, for example
> This callback really should create a minimal configuration inside of driver, but we cannot avoid it.


The reason for not implementing that callback is because the attributes 
are not implemented in the virtio spec.

We're working on adding management plane to virtio spec[1].


>
> Another issue is lack of sysfs fro virtual functions /sys/class/net/ens801f0/device/virtfnX (where X is VF number and ens801fo is its PF netdev),


What hardware did you use?

I'm using ifcvf (the hardware not the vdpa driver) and it works like a 
charm:

# pwd
/sys/bus/pci/drivers/virtio-pci/0000:07:00.0
# echo 4 > sriov_numvfs
# ls | grep virtfn
virtfn0
virtfn1
virtfn2
virtfn3

Thanks

[1] 
https://lists.oasis-open.org/archives/virtio-comment/202101/msg00047.html


>
> Could you advise us, how we can solve our issue and drive us to proper solution?
>
> Regards,
>
> Mirek
> -----Original Message-----
> From: Jason Wang <jasowang@...hat.com>
> Sent: wtorek, 27 kwietnia 2021 04:44
> To: Arkadiusz Kudan <arkadiusz.kudan@...ilime.com>; virtualization@...ts.linux-foundation.org
> Cc: mst@...hat.com; netdev@...r.kernel.org; Walukiewicz, Miroslaw <Miroslaw.Walukiewicz@...el.com>
> Subject: Re: [PATCH] virtio-net: enable SRIOV
>
>
> 在 2021/4/26 下午6:21, Arkadiusz Kudan 写道:
>> With increasing interest for virtio, NIC have appeared that provide
>> SRIOV with PF appearing in the host as a virtio network device and
>> probably more similiar NICs will emerge.
>> igb_uio of DPDK or pci-pf-stub can be used to provide SRIOV, however
>> there are hypervisors/VMMs that require VFs, which are to be PCI
>> passthrued to a VM, to have its PF with network representation in the
>> kernel. For virtio-net based PFs, virtio-net could do that by
>> providing both SRIOV interface and netdev representation.
>>
>> Enable SRIOV via VIRTIO_F_SR_IOV feature bit if the device supports
>> it.
>>
>> Signed-off-by: Arkadiusz Kudan <arkadiusz.kudan@...ilime.com>
>> Signed-off-by: Miroslaw Walukiewicz <Miroslaw.Walukiewicz@...el.com>
>> ---
>>    drivers/net/virtio_net.c | 1 +
>>    1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index
>> 0824e6999e49..a03aa7e99689 100644
>> --- a/drivers/net/virtio_net.c
>> +++ b/drivers/net/virtio_net.c
>> @@ -3249,6 +3249,7 @@ static struct virtio_device_id id_table[] = {
>>    
>>    static unsigned int features[] = {
>>    	VIRTNET_FEATURES,
>> +	VIRTIO_F_SR_IOV,
>>    };
>
> So I'm suprised that it needs to be enabled per device. We had:
>
> static void vp_transport_features(struct virtio_device *vdev, u64 features) {
>           struct virtio_pci_device *vp_dev = to_vp_device(vdev);
>           struct pci_dev *pci_dev = vp_dev->pci_dev;
>
>           if ((features & BIT_ULL(VIRTIO_F_SR_IOV)) &&
>                           pci_find_ext_capability(pci_dev,
> PCI_EXT_CAP_ID_SRIOV))
>                   __virtio_set_bit(vdev, VIRTIO_F_SR_IOV); }
>
> And I had used this driver for SRIOV virtio-pci hardware for more than one year.
>
> Thanks
>
>
>>    
>>    static unsigned int features_legacy[] = {

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ