On 12/04/2017 04:21 PM, David Vrabel wrote: > There are use cases where it is useful to use the support in libvirt > for file-backed guest memory, but without using hugetlbfs but tmpfs > instead (for example, to run tests on hosts that do not have hugepages > configured, or to use Linux's idle page tracking to monitor guest > memory accesses at a 4k page granularity.). > > Drop the check for hugetlbfs when querying the huge page size, but > move it to the loop that's searching for a suitable mount to use. > > Change-Id: I2c9589191e14653724725b944171689553ee6bae > --- > src/util/virfile.c | 21 ++++++++++++++------- > 1 file changed, 14 insertions(+), 7 deletions(-) > > diff --git a/src/util/virfile.c b/src/util/virfile.c > index 82cb36dbc..24ff5e208 100644 > --- a/src/util/virfile.c > +++ b/src/util/virfile.c > @@ -3438,19 +3438,23 @@ virFileGetHugepageSize(const char *path, > goto cleanup; > } > > - if (fs.f_type != HUGETLBFS_MAGIC) { > - virReportError(VIR_ERR_INTERNAL_ERROR, > - _("not a hugetlbfs mount: '%s'"), > - path); > - goto cleanup; > - } > - > *size = fs.f_bsize / 1024; /* we are storing size in KiB */ > ret = 0; > cleanup: > return ret; > } > > +static bool > +virFileIsHugeTLBFS(const char *path) > +{ > + struct statfs fs; > + > + if (statfs(path, &fs) < 0) { > + return false; > + } Note that we don't put curly braces around one line bodies. > + return fs.f_type == HUGETLBFS_MAGIC; > +} > + > # define PROC_MEMINFO "/proc/meminfo" > # define HUGEPAGESIZE_STR "Hugepagesize:" > > @@ -3517,6 +3521,9 @@ virFileFindHugeTLBFS(virHugeTLBFSPtr *ret_fs, > if (STRNEQ(mb.mnt_type, "hugetlbfs")) > continue; > > + if (!virFileIsHugeTLBFS(mb.mnt_dir)) > + continue; > + > if (VIR_EXPAND_N(fs, nfs, 1) < 0) > goto cleanup; > > Frankly, I'm not a fan of this patch. Currently, when people have <hugepages/> in their domain XML we guarantee that hugepages are used to back the guest memory. With this patch users might be mislead as it enables *any* other filesystem. All that's needed is to put mount points into qemu.conf. I know you want it for testing, but is it an upstream material? IOW, I'm not nacking this, I just want some conversation to happen first. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list