From: "DERUMIER, Alexandre" <alexandre.derumier@groupe-cyllene.com>
To: "pve-devel@lists.proxmox.com" <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH cluster/access-control/guest-common/qemu-server/manager v4] cluster mapping backend
Date: Fri, 26 May 2023 16:09:29 +0000 [thread overview]
Message-ID: <0c648b588c9c932c4b35bc8bddb0b628b970784a.camel@groupe-cyllene.com> (raw)
In-Reply-To: <20230525101753.2078811-1-d.csapak@proxmox.com>
Thanks for sharing your progress Dominik.
It'll try to retest them with an nvidia mdev vgpu cluster in coming
weeks.
Le jeudi 25 mai 2023 à 12:17 +0200, Dominik Csapak a écrit :
> this series aims to add a cluster-wide device mapping for pci and usb
> devices. so that an admin can configure a device to be availble for
> migration and configuring for uses that are non-root
> (the existing pattern can be copied easily for other types, e.g.
> markus upcoming folder sharing)
>
> note that this series requires the array support in api/section
> config[0] but how the api is formed/where the data comes should not
> be
> hard to change
>
> also since the api changed quite drastically, the gui must be
> adapted,
> and i'm not done with that yet, so sending the backend only for now
>
> the series is a bigger change to the v3, so a closer look is probably
> warranted
>
> changes from v3:
> * the configs are now split by type (for ease of use of the section
> config) and live in pve-guest-common, to avoid a cyclic dependcy
> * the configs are section configs now (with mentioned array support)
> * the api is now only defined in /cluster/resource/{TYPE} and has
> no nodespecific api anymore, besides a 'check-node' parameter
> (see the pve-manager patch for more details on that)
> * the internal structure of the pci parsing changed completely,
> making
> the structure more understandable
> * a single map entry now has the same semantic as the qemu-server
> hostpci config entry, meaning if you want multiple mappings per
> host,
> you have to add multiple map entries. this is a more flexible
> approach, and the parsing code gets a bit simpler
> * combined some properties in the config (e.g. vendor/device) so that
> we don't have too many
> * squashed some changes together, as they didn't make much sense
> separately anyway (e.g. api/config patches) and it didn't make
> reviewing easier
> * changed the ACL paths & privileges to be more general
> * surely some other changes i forgot..
>
> changes from v2:
> * some bug fixes (e.g use of unitialized variable)
> * don't set mdev for multifunction devices
> -> this should fix alexandres issue, since it's not possible
> anymore
> to select a mediated device when having a multifunction device
> selected
>
> changes from v1:
> * dropped 'check_hw_perm' (just use 'check_full' now)
> * added some cleanups
> * renamed the buttons in the ui (hopefully better now)
> * added multi device mapping for each host
> this includes a new 'multi pci' selector for that window, which
> automatically adds entries for the whole slots which, when
> selected,
> disabled the selection of the individual functions
> * fixed some issues (e.g. missing entries in the 'caps' object, wrong
> usb config parsing, etc.)
>
> changes from the rfc:
> * new cluster wide gui instead of node-local one (removed that, since
> it's not necessary when we have a cluster-wide one)
> * uses json instead of a section config
> * api is quite different overall, i split the type into its own level
> for configuring, similar to what we do in pbs
> (e.g. /nodes/NODENAME/hardware/mapping/usb/)
> * fixed quite some bugs the rfc had
> * added patch for handling the gui with limited permissions better
> * added a 'comment' field for mappings
>
> dependencies are pretty straight forward this time around (if i'm not
> overlooking something):
>
> qemu-server/pve-manager -> new access-control/pve-guest-common -> new
> pve-cluster
>
> 0:
> https://antiphishing.cetsi.fr/proxy/v3?i=SHV0Y1JZQjNyckJFa3dUQiblhF5YcUqtiWCaK_ri0kk&r=T0hnMlUyVEgwNmlmdHc1NSqeTQ1pLQVNn4UvDLnWe4fCxNuytxXrtkvXRfHgEH29SgNUOJTfU-F2je9BBTq-sg&f=V3p0eFlQOUZ4czh2enpJS6vlBYwhEUcOwTmUN-Hu71ZWogcUGH-slS7gYzVrVVB6_wb2zNaC4g2GRLF4nWvKLw&u=https%3A//lists.proxmox.com/pipermail/pve-devel/2023-May/056739.html&k=ZVd0
>
> pve-cluster:
>
> Dominik Csapak (1):
> add cfg files for resource mapping
>
> src/PVE/Cluster.pm | 2 ++
> src/pmxcfs/status.c | 2 ++
> 2 files changed, 4 insertions(+)
>
> pve-access-control:
>
> Dominik Csapak (1):
> add privileges and paths for cluster resource mapping
>
> src/PVE/AccessControl.pm | 20 +++++++++++++++++++-
> src/PVE/RPCEnvironment.pm | 7 +++++--
> 2 files changed, 24 insertions(+), 3 deletions(-)
>
> pve-guest-common:
>
> Dominik Csapak (1):
> add PCI/USB Resource configs
>
> src/Makefile | 3 +
> src/PVE/Resource/PCI.pm | 226
> ++++++++++++++++++++++++++++++++++++++++
> src/PVE/Resource/USB.pm | 183 ++++++++++++++++++++++++++++++++
> 3 files changed, 412 insertions(+)
> create mode 100644 src/PVE/Resource/PCI.pm
> create mode 100644 src/PVE/Resource/USB.pm
>
> qemu-server:
>
> Dominik Csapak (6):
> enable cluster mapped USB devices for guests
> enable cluster mapped PCI devices for guests
> check_local_resources: extend for mapped resources
> api: migrate preconditions: use new check_local_resources info
> migration: check for mapped resources
> add test for mapped pci devices
>
> PVE/API2/Qemu.pm | 110 +++++++-
> PVE/QemuMigrate.pm | 23 +-
> PVE/QemuServer.pm | 111 +++++---
> PVE/QemuServer/PCI.pm | 243 +++++++++++++++-
> --
> PVE/QemuServer/USB.pm | 22 +-
> test/MigrationTest/Shared.pm | 14 +
> test/cfg2cmd/q35-linux-hostpci-mapping.conf | 17 ++
> .../q35-linux-hostpci-mapping.conf.cmd | 36 +++
> test/cfg2cmd/q35-linux-hostpci.conf | 2 +-
> test/cfg2cmd/q35-linux-hostpci.conf.cmd | 2 +-
> test/run_config2command_tests.pl | 83 ++++++
> 11 files changed, 575 insertions(+), 88 deletions(-)
> create mode 100644 test/cfg2cmd/q35-linux-hostpci-mapping.conf
> create mode 100644 test/cfg2cmd/q35-linux-hostpci-mapping.conf.cmd
>
> pve-manager:
>
> Dominik Csapak (2):
> pvesh: fix parameters for proxyto_callback
> api: add resource map api endpoints for PCI and USB
>
> PVE/API2/Cluster.pm | 8 +
> PVE/API2/Cluster/Makefile | 5 +
> PVE/API2/Cluster/Resource.pm | 53 +++++
> PVE/API2/Cluster/Resource/Makefile | 18 ++
> PVE/API2/Cluster/Resource/PCI.pm | 297
> +++++++++++++++++++++++++++++
> PVE/API2/Cluster/Resource/USB.pm | 262 +++++++++++++++++++++++++
> PVE/API2/Hardware.pm | 1 -
> PVE/API2/Nodes.pm | 1 +
> PVE/CLI/pvesh.pm | 10 +-
> 9 files changed, 650 insertions(+), 5 deletions(-)
> create mode 100644 PVE/API2/Cluster/Resource.pm
> create mode 100644 PVE/API2/Cluster/Resource/Makefile
> create mode 100644 PVE/API2/Cluster/Resource/PCI.pm
> create mode 100644 PVE/API2/Cluster/Resource/USB.pm
>
prev parent reply other threads:[~2023-05-26 16:09 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-25 10:17 Dominik Csapak
2023-05-25 10:17 ` [pve-devel] [PATCH cluster v4 1/1] add cfg files for resource mapping Dominik Csapak
2023-06-05 9:11 ` [pve-devel] applied: " Thomas Lamprecht
2023-05-25 10:17 ` [pve-devel] [PATCH access-control v4 1/1] add privileges and paths for cluster " Dominik Csapak
2023-05-25 10:17 ` [pve-devel] [PATCH guest-common v4 1/1] add PCI/USB Resource configs Dominik Csapak
2023-05-25 10:40 ` Dominik Csapak
2023-05-25 10:17 ` [pve-devel] [PATCH qemu-server v4 1/6] enable cluster mapped USB devices for guests Dominik Csapak
2023-05-25 10:17 ` [pve-devel] [PATCH qemu-server v4 2/6] enable cluster mapped PCI " Dominik Csapak
2023-05-25 10:17 ` [pve-devel] [PATCH qemu-server v4 3/6] check_local_resources: extend for mapped resources Dominik Csapak
2023-05-25 10:17 ` [pve-devel] [PATCH qemu-server v4 4/6] api: migrate preconditions: use new check_local_resources info Dominik Csapak
2023-05-25 10:17 ` [pve-devel] [PATCH qemu-server v4 5/6] migration: check for mapped resources Dominik Csapak
2023-05-25 10:17 ` [pve-devel] [PATCH qemu-server v4 6/6] add test for mapped pci devices Dominik Csapak
2023-05-25 10:17 ` [pve-devel] [PATCH manager v4 1/2] pvesh: fix parameters for proxyto_callback Dominik Csapak
2023-05-25 10:17 ` [pve-devel] [PATCH manager v4 2/2] api: add resource map api endpoints for PCI and USB Dominik Csapak
2023-05-26 16:09 ` DERUMIER, Alexandre [this message]
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=0c648b588c9c932c4b35bc8bddb0b628b970784a.camel@groupe-cyllene.com \
--to=alexandre.derumier@groupe-cyllene.com \
--cc=pve-devel@lists.proxmox.com \
/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