[PATCH v2 00/24] xl / libxl: named PCI pass-through devices

Paul Durrant posted 24 patches 2 weeks, 4 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/xen tags/patchew/20201110175147.7067-1-paul@xen.org
Maintainers: Nick Rosbrook <rosbrookn@ainfosec.com>, Ian Jackson <iwj@xenproject.org>, Wei Liu <wl@xen.org>, Christian Lindig <christian.lindig@citrix.com>, George Dunlap <george.dunlap@citrix.com>, Anthony PERARD <anthony.perard@citrix.com>, David Scott <dave@recoil.org>
docs/man/xl-pci-configuration.5.pod  |  218 ++++++
docs/man/xl.1.pod.in                 |   39 +-
docs/man/xl.cfg.5.pod.in             |   68 +-
tools/golang/xenlight/helpers.gen.go |   77 +-
tools/golang/xenlight/types.gen.go   |    8 +-
tools/include/libxl.h                |   67 +-
tools/include/libxlutil.h            |    8 +-
tools/libs/light/libxl_create.c      |    6 +-
tools/libs/light/libxl_dm.c          |   18 +-
tools/libs/light/libxl_internal.h    |   53 +-
tools/libs/light/libxl_nic.c         |   19 +-
tools/libs/light/libxl_pci.c         | 1030 ++++++++++++++------------
tools/libs/light/libxl_types.idl     |   19 +-
tools/libs/util/libxlu_pci.c         |  379 +++++-----
tools/ocaml/libs/xl/xenlight_stubs.c |   19 +-
tools/xl/xl_cmdtable.c               |   16 +-
tools/xl/xl_parse.c                  |   28 +-
tools/xl/xl_pci.c                    |  159 ++--
tools/xl/xl_sxp.c                    |   12 +-
19 files changed, 1308 insertions(+), 935 deletions(-)
create mode 100644 docs/man/xl-pci-configuration.5.pod

[PATCH v2 00/24] xl / libxl: named PCI pass-through devices

Posted by Paul Durrant 2 weeks, 4 days ago
From: Paul Durrant <pdurrant@amazon.com>

Paul Durrant (24):
  xl / libxl: s/pcidev/pci and remove DEFINE_DEVICE_TYPE_STRUCT_X
  libxl: use LIBXL_DEFINE_DEVICE_LIST for pci devices
  libxl: use LIBXL_DEFINE_DEVICE_LIST for nic devices
  libxl: s/detatched/detached in libxl_pci.c
  libxl: remove extraneous arguments to do_pci_remove() in libxl_pci.c
  libxl: stop using aodev->device_config in libxl__device_pci_add()...
  libxl: generalise 'driver_path' xenstore access functions in
    libxl_pci.c
  libxl: remove unnecessary check from libxl__device_pci_add()
  libxl: remove get_all_assigned_devices() from libxl_pci.c
  libxl: make sure callers of libxl_device_pci_list() free the list
    after use
  libxl: add libxl_device_pci_assignable_list_free()...
  libxl: use COMPARE_PCI() macro is_pci_in_array()...
  libxl: add/recover 'rdm_policy' to/from PCI backend in xenstore
  libxl: Make sure devices added by pci-attach are reflected in the
    config
  docs/man: extract documentation of PCI_SPEC_STRING from the xl.cfg
    manpage...
  docs/man: improve documentation of PCI_SPEC_STRING...
  docs/man: fix xl(1) documentation for 'pci' operations
  libxl: introduce 'libxl_pci_bdf' in the idl...
  libxlu: introduce xlu_pci_parse_spec_string()
  libxl: modify
    libxl_device_pci_assignable_add/remove/list/list_free()...
  docs/man: modify xl(1) in preparation for naming of assignable devices
  xl / libxl: support naming of assignable devices
  docs/man: modify xl-pci-configuration(5) to add 'name' field to
    PCI_SPEC_STRING
  xl / libxl: support 'xl pci-attach/detach' by name

 docs/man/xl-pci-configuration.5.pod  |  218 ++++++
 docs/man/xl.1.pod.in                 |   39 +-
 docs/man/xl.cfg.5.pod.in             |   68 +-
 tools/golang/xenlight/helpers.gen.go |   77 +-
 tools/golang/xenlight/types.gen.go   |    8 +-
 tools/include/libxl.h                |   67 +-
 tools/include/libxlutil.h            |    8 +-
 tools/libs/light/libxl_create.c      |    6 +-
 tools/libs/light/libxl_dm.c          |   18 +-
 tools/libs/light/libxl_internal.h    |   53 +-
 tools/libs/light/libxl_nic.c         |   19 +-
 tools/libs/light/libxl_pci.c         | 1030 ++++++++++++++------------
 tools/libs/light/libxl_types.idl     |   19 +-
 tools/libs/util/libxlu_pci.c         |  379 +++++-----
 tools/ocaml/libs/xl/xenlight_stubs.c |   19 +-
 tools/xl/xl_cmdtable.c               |   16 +-
 tools/xl/xl_parse.c                  |   28 +-
 tools/xl/xl_pci.c                    |  159 ++--
 tools/xl/xl_sxp.c                    |   12 +-
 19 files changed, 1308 insertions(+), 935 deletions(-)
 create mode 100644 docs/man/xl-pci-configuration.5.pod
---
Cc: Anthony PERARD <anthony.perard@citrix.com>
Cc: Christian Lindig <christian.lindig@citrix.com>
Cc: David Scott <dave@recoil.org>
Cc: George Dunlap <george.dunlap@citrix.com>
Cc: Ian Jackson <iwj@xenproject.org>
Cc: Nick Rosbrook <rosbrookn@ainfosec.com>
Cc: Wei Liu <wl@xen.org>
-- 
2.20.1


Re: [PATCH v2 00/24] xl / libxl: named PCI pass-through devices

Posted by Oleksandr Andrushchenko 1 week, 5 days ago
Hi, Paul!

On 11/10/20 7:51 PM, Paul Durrant wrote:
> From: Paul Durrant <pdurrant@amazon.com>
>
> Paul Durrant (24):
>    xl / libxl: s/pcidev/pci and remove DEFINE_DEVICE_TYPE_STRUCT_X
>    libxl: use LIBXL_DEFINE_DEVICE_LIST for pci devices
>    libxl: use LIBXL_DEFINE_DEVICE_LIST for nic devices
>    libxl: s/detatched/detached in libxl_pci.c
>    libxl: remove extraneous arguments to do_pci_remove() in libxl_pci.c
>    libxl: stop using aodev->device_config in libxl__device_pci_add()...
>    libxl: generalise 'driver_path' xenstore access functions in
>      libxl_pci.c
>    libxl: remove unnecessary check from libxl__device_pci_add()
>    libxl: remove get_all_assigned_devices() from libxl_pci.c
>    libxl: make sure callers of libxl_device_pci_list() free the list
>      after use
>    libxl: add libxl_device_pci_assignable_list_free()...
>    libxl: use COMPARE_PCI() macro is_pci_in_array()...
>    libxl: add/recover 'rdm_policy' to/from PCI backend in xenstore
>    libxl: Make sure devices added by pci-attach are reflected in the
>      config
>    docs/man: extract documentation of PCI_SPEC_STRING from the xl.cfg
>      manpage...
>    docs/man: improve documentation of PCI_SPEC_STRING...
>    docs/man: fix xl(1) documentation for 'pci' operations
>    libxl: introduce 'libxl_pci_bdf' in the idl...
>    libxlu: introduce xlu_pci_parse_spec_string()
>    libxl: modify
>      libxl_device_pci_assignable_add/remove/list/list_free()...
>    docs/man: modify xl(1) in preparation for naming of assignable devices
>    xl / libxl: support naming of assignable devices
>    docs/man: modify xl-pci-configuration(5) to add 'name' field to
>      PCI_SPEC_STRING
>    xl / libxl: support 'xl pci-attach/detach' by name
>
>   docs/man/xl-pci-configuration.5.pod  |  218 ++++++
>   docs/man/xl.1.pod.in                 |   39 +-
>   docs/man/xl.cfg.5.pod.in             |   68 +-
>   tools/golang/xenlight/helpers.gen.go |   77 +-
>   tools/golang/xenlight/types.gen.go   |    8 +-
>   tools/include/libxl.h                |   67 +-
>   tools/include/libxlutil.h            |    8 +-
>   tools/libs/light/libxl_create.c      |    6 +-
>   tools/libs/light/libxl_dm.c          |   18 +-
>   tools/libs/light/libxl_internal.h    |   53 +-
>   tools/libs/light/libxl_nic.c         |   19 +-
>   tools/libs/light/libxl_pci.c         | 1030 ++++++++++++++------------
>   tools/libs/light/libxl_types.idl     |   19 +-
>   tools/libs/util/libxlu_pci.c         |  379 +++++-----
>   tools/ocaml/libs/xl/xenlight_stubs.c |   19 +-
>   tools/xl/xl_cmdtable.c               |   16 +-
>   tools/xl/xl_parse.c                  |   28 +-
>   tools/xl/xl_pci.c                    |  159 ++--
>   tools/xl/xl_sxp.c                    |   12 +-
>   19 files changed, 1308 insertions(+), 935 deletions(-)
>   create mode 100644 docs/man/xl-pci-configuration.5.pod

Patches 1-18:

Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>

(I'll probably review more later as time allows).


I would like to ask the respective maintainers to look at this series as, in the light of the

upcoming changes for ARM PCI passthrough, these changes greatly help in adapting the

code for ARM

Thank you,

Oleksandr

> ---
> Cc: Anthony PERARD <anthony.perard@citrix.com>
> Cc: Christian Lindig <christian.lindig@citrix.com>
> Cc: David Scott <dave@recoil.org>
> Cc: George Dunlap <george.dunlap@citrix.com>
> Cc: Ian Jackson <iwj@xenproject.org>
> Cc: Nick Rosbrook <rosbrookn@ainfosec.com>
> Cc: Wei Liu <wl@xen.org>

RE: [PATCH v2 00/24] xl / libxl: named PCI pass-through devices

Posted by Paul Durrant 1 week, 4 days ago
> -----Original Message-----
> From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@epam.com>
> Sent: 16 November 2020 10:34
> To: Paul Durrant <paul@xen.org>; xen-devel@lists.xenproject.org
> Cc: Paul Durrant <pdurrant@amazon.com>; Anthony PERARD <anthony.perard@citrix.com>; Christian Lindig
> <christian.lindig@citrix.com>; David Scott <dave@recoil.org>; George Dunlap
> <george.dunlap@citrix.com>; Ian Jackson <iwj@xenproject.org>; Nick Rosbrook <rosbrookn@ainfosec.com>;
> Wei Liu <wl@xen.org>
> Subject: Re: [PATCH v2 00/24] xl / libxl: named PCI pass-through devices
> 
> Hi, Paul!
> 
> On 11/10/20 7:51 PM, Paul Durrant wrote:
> > From: Paul Durrant <pdurrant@amazon.com>
> >
> > Paul Durrant (24):
> >    xl / libxl: s/pcidev/pci and remove DEFINE_DEVICE_TYPE_STRUCT_X
> >    libxl: use LIBXL_DEFINE_DEVICE_LIST for pci devices
> >    libxl: use LIBXL_DEFINE_DEVICE_LIST for nic devices
> >    libxl: s/detatched/detached in libxl_pci.c
> >    libxl: remove extraneous arguments to do_pci_remove() in libxl_pci.c
> >    libxl: stop using aodev->device_config in libxl__device_pci_add()...
> >    libxl: generalise 'driver_path' xenstore access functions in
> >      libxl_pci.c
> >    libxl: remove unnecessary check from libxl__device_pci_add()
> >    libxl: remove get_all_assigned_devices() from libxl_pci.c
> >    libxl: make sure callers of libxl_device_pci_list() free the list
> >      after use
> >    libxl: add libxl_device_pci_assignable_list_free()...
> >    libxl: use COMPARE_PCI() macro is_pci_in_array()...
> >    libxl: add/recover 'rdm_policy' to/from PCI backend in xenstore
> >    libxl: Make sure devices added by pci-attach are reflected in the
> >      config
> >    docs/man: extract documentation of PCI_SPEC_STRING from the xl.cfg
> >      manpage...
> >    docs/man: improve documentation of PCI_SPEC_STRING...
> >    docs/man: fix xl(1) documentation for 'pci' operations
> >    libxl: introduce 'libxl_pci_bdf' in the idl...
> >    libxlu: introduce xlu_pci_parse_spec_string()
> >    libxl: modify
> >      libxl_device_pci_assignable_add/remove/list/list_free()...
> >    docs/man: modify xl(1) in preparation for naming of assignable devices
> >    xl / libxl: support naming of assignable devices
> >    docs/man: modify xl-pci-configuration(5) to add 'name' field to
> >      PCI_SPEC_STRING
> >    xl / libxl: support 'xl pci-attach/detach' by name
> >
> >   docs/man/xl-pci-configuration.5.pod  |  218 ++++++
> >   docs/man/xl.1.pod.in                 |   39 +-
> >   docs/man/xl.cfg.5.pod.in             |   68 +-
> >   tools/golang/xenlight/helpers.gen.go |   77 +-
> >   tools/golang/xenlight/types.gen.go   |    8 +-
> >   tools/include/libxl.h                |   67 +-
> >   tools/include/libxlutil.h            |    8 +-
> >   tools/libs/light/libxl_create.c      |    6 +-
> >   tools/libs/light/libxl_dm.c          |   18 +-
> >   tools/libs/light/libxl_internal.h    |   53 +-
> >   tools/libs/light/libxl_nic.c         |   19 +-
> >   tools/libs/light/libxl_pci.c         | 1030 ++++++++++++++------------
> >   tools/libs/light/libxl_types.idl     |   19 +-
> >   tools/libs/util/libxlu_pci.c         |  379 +++++-----
> >   tools/ocaml/libs/xl/xenlight_stubs.c |   19 +-
> >   tools/xl/xl_cmdtable.c               |   16 +-
> >   tools/xl/xl_parse.c                  |   28 +-
> >   tools/xl/xl_pci.c                    |  159 ++--
> >   tools/xl/xl_sxp.c                    |   12 +-
> >   19 files changed, 1308 insertions(+), 935 deletions(-)
> >   create mode 100644 docs/man/xl-pci-configuration.5.pod
> 
> Patches 1-18:
> 
> Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> 
> (I'll probably review more later as time allows).
> 
> 
> I would like to ask the respective maintainers to look at this series as, in the light of the
> 
> upcoming changes for ARM PCI passthrough, these changes greatly help in adapting the
> 
> code for ARM
> 

FWIW, I believe there is still an issue in one of the patches (probably patch #14) which has caused problems for pass-through of multiple devices. I will debug that in the next couple of days and post v3.

  Paul

> Thank you,
> 
> Oleksandr
> 
> > ---
> > Cc: Anthony PERARD <anthony.perard@citrix.com>
> > Cc: Christian Lindig <christian.lindig@citrix.com>
> > Cc: David Scott <dave@recoil.org>
> > Cc: George Dunlap <george.dunlap@citrix.com>
> > Cc: Ian Jackson <iwj@xenproject.org>
> > Cc: Nick Rosbrook <rosbrookn@ainfosec.com>
> > Cc: Wei Liu <wl@xen.org>