From: "Burakov, Anatoly" <anatoly.burakov@intel.com>
To: <dev@dpdk.org>, Robin Jarry <rjarry@redhat.com>
Subject: Re: [PATCH v1 1/1] usertools/devbind: allow changing UID/GID for VFIO
Date: Tue, 3 Sep 2024 11:11:50 +0200 [thread overview]
Message-ID: <de8ba3e1-d689-4e7a-a8f3-18de23ee1784@intel.com> (raw)
In-Reply-To: <4cd0282dabfa59e715028ecf255468529655b487.1725285449.git.anatoly.burakov@intel.com>
On 9/2/2024 3:57 PM, Anatoly Burakov wrote:
> Currently, when binding a device to VFIO, the UID/GID for the device will
> always stay as system default (`root`). Yet, when running DPDK as non-root
> user, one has to change the UID/GID of the device to match the user's
> UID/GID to use the device.
>
> This patch adds an option to `dpdk-devbind.py` to change the UID/GID of
> the device when binding it to VFIO.
>
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
<snip>
>
> +def own_one(dev_id, uid, gid):
> + """Set the IOMMU group ownership for a device"""
> + # find IOMMU group for a particular device
> + iommu_grp_base_path = os.path.join("/sys/bus/pci/devices", dev_id, "iommu_group")
> + try:
> + iommu_grp = os.path.basename(os.readlink(iommu_grp_base_path))
> + # we found IOMMU group, now find the device
> + dev_path = os.path.join("/dev/vfio", iommu_grp)
> + # set the ownership
> + _uid = pwd.getpwnam(uid).pw_uid if uid else -1
> + _gid = grp.getgrnam(gid).gr_gid if gid else -1
> + os.chown(dev_path, _uid, _gid)
> + except OSError as err:
> + sys.exit(f"Error: failed to read IOMMU group for {dev_id}: {err}")
On another thought, perhaps sys.exit() here is a bit too drastic... Will
replace with error message in v2
--
Thanks,
Anatoly
next prev parent reply other threads:[~2024-09-03 9:12 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-02 13:57 [PATCH v1 1/1] usertools/devbind: allow changing UID/GID for VFIO Anatoly Burakov
2024-09-03 9:11 ` Burakov, Anatoly [this message]
2024-11-26 15:02 ` [PATCH v2 " Anatoly Burakov
2024-11-26 15:24 ` Bruce Richardson
2024-11-26 16:15 ` Robin Jarry
2024-11-27 8:59 ` Burakov, Anatoly
2024-11-27 9:13 ` [PATCH v3 " Anatoly Burakov
2024-11-29 8:08 ` Robin Jarry
2024-11-29 13:42 ` Thomas Monjalon
2024-12-02 9:31 ` [PATCH v4 " Anatoly Burakov
2024-12-02 9:35 ` Burakov, Anatoly
2025-03-19 3:52 ` Thomas Monjalon
2024-12-04 12:33 ` Burakov, Anatoly
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=de8ba3e1-d689-4e7a-a8f3-18de23ee1784@intel.com \
--to=anatoly.burakov@intel.com \
--cc=dev@dpdk.org \
--cc=rjarry@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.