Thomas Monjalon <tho...@monjalon.net> writes: > 17/03/2021 15:44, Aaron Conole: >> The hugepage test really needs to check multiple things on Linux: >> >> 1. Are hugepages reserved in the system? >> >> 2. Is the hugepage mountpoint available so that we can allocate them? >> >> 3. Do we have permissions to write into the hugepage mountpoint? >> >> The existing hugepage check only verifies the first. On some setups, >> a non-root user won't have access to the mountpoint for hugepages to >> be allocated and that needs to be reflected in the test as well. Add >> such checks for Linux OS to give a more check when running test suites. > > Requirements 2 & 3 are optional. > You don't need a mount point if using the option --in-memory.
That's true, but it seems to break a few of the unit tests without. I'll clarify the commit message. Additionally, I thought it would be simple to just incorporate your suggestions - but it seems that meson / ninja doesn't have cascading dependencies the way 'make' does (or, I haven't figured out from the syntax how to do that) - a 'run_command' gets resolved at configure time and it doesn't seem that we can make a run_target depend on another run_target since dependencies are on file outputs. Maybe we do some kind of trickery here where we write a file that the build script reads? I am trying to figure out how best to accomplish this - suggestions welcome. > [...] >> + perm="" > > perm= should do the same. > >> + for mount in `mount | grep hugetlbfs | awk '{ print $3; }'`; do > > Please prefer $() syntax. Okay > Are spaces in awk required? I'm not sure - I don't think so. >> + test ! -w $mount/. || perm="$mount" > > Why /. ? Habit. I will remove it. >> + done >> + if [ "$perm" = "" -o "$nr_hugepages" = "0" ]; then > > = "" can be replaced with -z > "0" can be simply 0 Done. >> + echo 0 >> + else >> + echo $nr_hugepages >> + fi