Message ID | 20210202103518.3858-1-parav@nvidia.com |
---|---|
Headers | show |
Series | Add vdpa device management tool | expand |
On 2021/2/2 下午6:35, Parav Pandit wrote: > Linux vdpa interface allows vdpa device management functionality. > This includes adding, removing, querying vdpa devices. > > vdpa interface also includes showing supported management devices > which support such operations. > > This patchset includes kernel uapi headers and a vdpa tool. > > examples: > > $ vdpa mgmtdev show > vdpasim: > supported_classes net > > $ vdpa mgmtdev show -jp > { > "show": { > "vdpasim": { > "supported_classes": [ "net" ] > } > } > } > > Create a vdpa device of type networking named as "foo2" from > the management device vdpasim_net: > > $ vdpa dev add mgmtdev vdpasim_net name foo2 > > Show the newly created vdpa device by its name: > $ vdpa dev show foo2 > foo2: type network mgmtdev vdpasim_net vendor_id 0 max_vqs 2 max_vq_size 256 > > $ vdpa dev show foo2 -jp > { > "dev": { > "foo2": { > "type": "network", > "mgmtdev": "vdpasim_net", > "vendor_id": 0, > "max_vqs": 2, > "max_vq_size": 256 > } > } > } > > Delete the vdpa device after its use: > $ vdpa dev del foo2 > > Patch summary: > Patch-1 adds kernel headers for vdpa subsystem > Patch-2 adds library routines for indent handling > Patch-3 adds library routines for generic socket communication > PAtch-4 adds library routine for number to string mapping > Patch-5 adds vdpa tool > > Kernel headers are from the vhost kernel tree [1] from branch linux-next. > > [1] https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git > > --- Adding Adrian to see if this looks good for k8s integration. Thanks
Sorry I have not followed this work as close as I would have wanted. Some questions below. On 2/4/21 4:16 AM, Jason Wang wrote: > > On 2021/2/2 下午6:35, Parav Pandit wrote: >> Linux vdpa interface allows vdpa device management functionality. >> This includes adding, removing, querying vdpa devices. >> >> vdpa interface also includes showing supported management devices >> which support such operations. >> >> This patchset includes kernel uapi headers and a vdpa tool. >> >> examples: >> >> $ vdpa mgmtdev show >> vdpasim: >> supported_classes net >> >> $ vdpa mgmtdev show -jp >> { >> "show": { >> "vdpasim": { >> "supported_classes": [ "net" ] >> } >> } >> } >> How can a user establish the relationship between a mgmtdev and it's parent device (pci vf, sf, etc)? >> Create a vdpa device of type networking named as "foo2" from >> the management device vdpasim_net: >> >> $ vdpa dev add mgmtdev vdpasim_net name foo2 >> I guess this command will accept a 'type' parameter once more supported_classes are added? Also, will this tool also handle the vdpa driver binding or will the user handle that through the vdpa bus' sysfs interface? >> Show the newly created vdpa device by its name: >> $ vdpa dev show foo2 >> foo2: type network mgmtdev vdpasim_net vendor_id 0 max_vqs 2 max_vq_size 256 >> >> $ vdpa dev show foo2 -jp >> { >> "dev": { >> "foo2": { >> "type": "network", >> "mgmtdev": "vdpasim_net", >> "vendor_id": 0, >> "max_vqs": 2, >> "max_vq_size": 256 >> } >> } >> } >> >> Delete the vdpa device after its use: >> $ vdpa dev del foo2 >> >> Patch summary: >> Patch-1 adds kernel headers for vdpa subsystem >> Patch-2 adds library routines for indent handling >> Patch-3 adds library routines for generic socket communication >> PAtch-4 adds library routine for number to string mapping >> Patch-5 adds vdpa tool >> >> Kernel headers are from the vhost kernel tree [1] from branch linux-next. >> >> [1] https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git >> >> --- > > > Adding Adrian to see if this looks good for k8s integration. > > Thanks > Thanks -- Adrián Moreno
On 2021/2/4 下午7:15, Adrian Moreno wrote: > Sorry I have not followed this work as close as I would have wanted. > Some questions below. > > On 2/4/21 4:16 AM, Jason Wang wrote: >> On 2021/2/2 下午6:35, Parav Pandit wrote: >>> Linux vdpa interface allows vdpa device management functionality. >>> This includes adding, removing, querying vdpa devices. >>> >>> vdpa interface also includes showing supported management devices >>> which support such operations. >>> >>> This patchset includes kernel uapi headers and a vdpa tool. >>> >>> examples: >>> >>> $ vdpa mgmtdev show >>> vdpasim: >>> supported_classes net >>> >>> $ vdpa mgmtdev show -jp >>> { >>> "show": { >>> "vdpasim": { >>> "supported_classes": [ "net" ] >>> } >>> } >>> } >>> > How can a user establish the relationship between a mgmtdev and it's parent > device (pci vf, sf, etc)? Parav should know more but I try to answer. I think there should be BDF information in the mgmtdev show command if the parent is a PCI device, or we can simply show the parent here? > >>> Create a vdpa device of type networking named as "foo2" from >>> the management device vdpasim_net: >>> >>> $ vdpa dev add mgmtdev vdpasim_net name foo2 >>> > I guess this command will accept a 'type' parameter once more supported_classes > are added? This could be extended in the future. > > Also, will this tool also handle the vdpa driver binding or will the user handle > that through the vdpa bus' sysfs interface? I think not, it's the configuration below the vdpa bus. The sysfs should be the only interface for managing driver binding. Thanks > >>> Show the newly created vdpa device by its name: >>> $ vdpa dev show foo2 >>> foo2: type network mgmtdev vdpasim_net vendor_id 0 max_vqs 2 max_vq_size 256 >>> >>> $ vdpa dev show foo2 -jp >>> { >>> "dev": { >>> "foo2": { >>> "type": "network", >>> "mgmtdev": "vdpasim_net", >>> "vendor_id": 0, >>> "max_vqs": 2, >>> "max_vq_size": 256 >>> } >>> } >>> } >>> >>> Delete the vdpa device after its use: >>> $ vdpa dev del foo2 >>> >>> Patch summary: >>> Patch-1 adds kernel headers for vdpa subsystem >>> Patch-2 adds library routines for indent handling >>> Patch-3 adds library routines for generic socket communication >>> PAtch-4 adds library routine for number to string mapping >>> Patch-5 adds vdpa tool >>> >>> Kernel headers are from the vhost kernel tree [1] from branch linux-next. >>> >>> [1] https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git >>> >>> --- >> >> Adding Adrian to see if this looks good for k8s integration. >> >> Thanks >> > Thanks
> From: Jason Wang <jasowang@redhat.com> > Sent: Friday, February 5, 2021 9:11 AM > > > On 2021/2/4 下午7:15, Adrian Moreno wrote: > > Sorry I have not followed this work as close as I would have wanted. > > Some questions below. > > > > On 2/4/21 4:16 AM, Jason Wang wrote: > >> On 2021/2/2 下午6:35, Parav Pandit wrote: > >>> Linux vdpa interface allows vdpa device management functionality. > >>> This includes adding, removing, querying vdpa devices. > >>> > >>> vdpa interface also includes showing supported management devices > >>> which support such operations. > >>> > >>> This patchset includes kernel uapi headers and a vdpa tool. > >>> > >>> examples: > >>> > >>> $ vdpa mgmtdev show > >>> vdpasim: > >>> supported_classes net > >>> > >>> $ vdpa mgmtdev show -jp > >>> { > >>> "show": { > >>> "vdpasim": { > >>> "supported_classes": [ "net" ] > >>> } > >>> } > >>> } > >>> > > How can a user establish the relationship between a mgmtdev and it's > > parent device (pci vf, sf, etc)? > > > Parav should know more but I try to answer. > > I think there should be BDF information in the mgmtdev show command if > the parent is a PCI device, or we can simply show the parent here? > Yes, it is present in the mgmtdev show command. I should have added the example from the kernel cover letter here. Link to the kernel cover letter is at An example for real PCI PF,VF,SF device looks like below. I will cover below example to the v4 cover letter while addressing David's comment for header file relocation. $ vdpa mgmtdev list pci/0000:03.00:0 supported_classes net pci/0000:03.00:4 supported_classes net auxiliary/mlx5_core.sf.8 supported_classes net [1] https://lore.kernel.org/netdev/20210105103203.82508-1-parav@nvidia.com/
On 2/5/21 6:53 PM, Parav Pandit wrote: > > >> From: Jason Wang <jasowang@redhat.com> >> Sent: Friday, February 5, 2021 9:11 AM >> >> >> On 2021/2/4 下午7:15, Adrian Moreno wrote: >>> Sorry I have not followed this work as close as I would have wanted. >>> Some questions below. >>> >>> On 2/4/21 4:16 AM, Jason Wang wrote: >>>> On 2021/2/2 下午6:35, Parav Pandit wrote: >>>>> Linux vdpa interface allows vdpa device management functionality. >>>>> This includes adding, removing, querying vdpa devices. >>>>> >>>>> vdpa interface also includes showing supported management devices >>>>> which support such operations. >>>>> >>>>> This patchset includes kernel uapi headers and a vdpa tool. >>>>> >>>>> examples: >>>>> >>>>> $ vdpa mgmtdev show >>>>> vdpasim: >>>>> supported_classes net >>>>> >>>>> $ vdpa mgmtdev show -jp >>>>> { >>>>> "show": { >>>>> "vdpasim": { >>>>> "supported_classes": [ "net" ] >>>>> } >>>>> } >>>>> } >>>>> >>> How can a user establish the relationship between a mgmtdev and it's >>> parent device (pci vf, sf, etc)? >> >> >> Parav should know more but I try to answer. >> >> I think there should be BDF information in the mgmtdev show command if >> the parent is a PCI device, or we can simply show the parent here? >> > Yes, it is present in the mgmtdev show command. > I should have added the example from the kernel cover letter here. > Link to the kernel cover letter is at > > An example for real PCI PF,VF,SF device looks like below. > I will cover below example to the v4 cover letter while addressing David's comment for header file relocation. > > $ vdpa mgmtdev list > pci/0000:03.00:0 > supported_classes > net > pci/0000:03.00:4 > supported_classes > net > auxiliary/mlx5_core.sf.8 > supported_classes > net > > [1] https://lore.kernel.org/netdev/20210105103203.82508-1-parav@nvidia.com/ > Thanks Parav -- Adrián Moreno
On 2/5/21 4:40 AM, Jason Wang wrote: > > On 2021/2/4 下午7:15, Adrian Moreno wrote: >> Sorry I have not followed this work as close as I would have wanted. >> Some questions below. >> >> On 2/4/21 4:16 AM, Jason Wang wrote: >>> On 2021/2/2 下午6:35, Parav Pandit wrote: >>>> Linux vdpa interface allows vdpa device management functionality. >>>> This includes adding, removing, querying vdpa devices. >>>> >>>> vdpa interface also includes showing supported management devices >>>> which support such operations. >>>> >>>> This patchset includes kernel uapi headers and a vdpa tool. >>>> >>>> examples: >>>> >>>> $ vdpa mgmtdev show >>>> vdpasim: >>>> supported_classes net >>>> >>>> $ vdpa mgmtdev show -jp >>>> { >>>> "show": { >>>> "vdpasim": { >>>> "supported_classes": [ "net" ] >>>> } >>>> } >>>> } >>>> >> How can a user establish the relationship between a mgmtdev and it's parent >> device (pci vf, sf, etc)? > > > Parav should know more but I try to answer. > > I think there should be BDF information in the mgmtdev show command if the > parent is a PCI device, or we can simply show the parent here? > > >> >>>> Create a vdpa device of type networking named as "foo2" from >>>> the management device vdpasim_net: >>>> >>>> $ vdpa dev add mgmtdev vdpasim_net name foo2 >>>> >> I guess this command will accept a 'type' parameter once more supported_classes >> are added? > > > This could be extended in the future. > > >> >> Also, will this tool also handle the vdpa driver binding or will the user handle >> that through the vdpa bus' sysfs interface? > > > I think not, it's the configuration below the vdpa bus. The sysfs should be the > only interface for managing driver binding. > Understood, thanks. -- Adrián Moreno