summaryrefslogtreecommitdiff
path: root/usertools
diff options
context:
space:
mode:
authorDmitry Kozlyuk <[email protected]>2022-06-24 16:19:53 +0300
committerThomas Monjalon <[email protected]>2022-06-27 02:24:12 +0200
commit8d73de6f7fcdeeacb67c58ca94871105a7414c4f (patch)
tree7761efae8312aeddfe36c56bb0272aa31e3349f1 /usertools
parent31af02ef6f7cc5166a6afd636883255805376c40 (diff)
usertools: add options for hugetlbfs mount point owner
Per mount(8), the previous owner and mode of the mount point become invisible as long as this filesystem remains mounted. Because dpdk-hugepages.py must be run as root, the new owner would be root. This is undesirable if the hugepage directory is being set up by the administrator for an unprivileged user. HugeTLB filesystem has options to set the mount point owner. Add --user/-U and --group/-G options to apply this when mounting. The benefit of performing this in dpdk-hugepages.py is that the user does not need to care about this detail of mount command operation. Signed-off-by: Dmitry Kozlyuk <[email protected]> Acked-by: Bruce Richardson <[email protected]>
Diffstat (limited to 'usertools')
-rwxr-xr-xusertools/dpdk-hugepages.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/usertools/dpdk-hugepages.py b/usertools/dpdk-hugepages.py
index 8bab086a2f..a22d504d3a 100755
--- a/usertools/dpdk-hugepages.py
+++ b/usertools/dpdk-hugepages.py
@@ -170,7 +170,7 @@ def get_mountpoints():
return mounted
-def mount_huge(pagesize, mountpoint):
+def mount_huge(pagesize, mountpoint, user, group):
'''Mount the huge TLB file system'''
if mountpoint in get_mountpoints():
print(mountpoint, "already mounted")
@@ -178,6 +178,10 @@ def mount_huge(pagesize, mountpoint):
cmd = "mount -t hugetlbfs"
if pagesize:
cmd += ' -o pagesize={}'.format(pagesize * 1024)
+ if user:
+ cmd += ' -o uid=' + user
+ if group:
+ cmd += ' -o gid=' + group
cmd += ' nodev ' + mountpoint
os.system(cmd)
@@ -235,6 +239,16 @@ To a complete setup of with 2 Gigabyte of 1G huge pages:
default=HUGE_MOUNT,
help='mount point')
parser.add_argument(
+ '--user',
+ '-U',
+ metavar='UID',
+ help='set the mounted directory owner user')
+ parser.add_argument(
+ '--group',
+ '-G',
+ metavar='GID',
+ help='set the mounted directory owner group')
+ parser.add_argument(
'--node', '-n', help='select numa node to reserve pages on')
parser.add_argument(
'--pagesize',
@@ -279,7 +293,7 @@ To a complete setup of with 2 Gigabyte of 1G huge pages:
reserve_pages(
int(reserve_kb / pagesize_kb), pagesize_kb, node=args.node)
if args.mount:
- mount_huge(pagesize_kb, args.directory)
+ mount_huge(pagesize_kb, args.directory, args.user, args.group)
if args.show:
show_pages()
print()