[libvirt] [PATCH v2 1/6] Introduce virFileFindHugeTLBFS

Daniel P. Berrange berrange at redhat.com
Wed Jul 23 19:06:20 UTC 2014


On Wed, Jul 23, 2014 at 05:37:17PM +0200, Michal Privoznik wrote:
> +int
> +virFileFindHugeTLBFS(virHugeTLBFSPtr *ret_fs,
> +                     size_t *ret_nfs)
> +{
> +    int ret = -1;
> +    FILE *f = NULL;
> +    struct mntent mb;
> +    char mntbuf[1024];
> +    virHugeTLBFSPtr fs = NULL;
> +    size_t nfs = 0;
> +    unsigned long long default_hugepagesz;
> +
> +    if (virFileGetDefaultHugepageSize(&default_hugepagesz) < 0)
> +        goto cleanup;
> +
> +    if (!(f = setmntent(PROC_MOUNTS, "r"))) {
> +        virReportSystemError(errno,
> +                             _("Unable to open %s"),
> +                             PROC_MOUNTS);
> +        goto cleanup;
> +    }
> +
> +    while (getmntent_r(f, &mb, mntbuf, sizeof(mntbuf))) {
> +        virHugeTLBFSPtr tmp;
> +
> +        if (STRNEQ(mb.mnt_type, "hugetlbfs"))
> +            continue;
> +
> +        if (VIR_REALLOC_N(fs, nfs + 1) < 0)
> +            goto cleanup;
> +
> +        tmp = &fs[nfs];
> +        nfs++;

Stilll think we should be using VIR_EXPAND_N here to ensure
new space is fully zerod.

> +
> +        if (VIR_STRDUP(tmp->mnt_dir, mb.mnt_dir) < 0)
> +            goto cleanup;
> +
> +        if (virFileGetHugepageSize(tmp->mnt_dir, &tmp->size) < 0)
> +            goto cleanup;
> +
> +        tmp->deflt = tmp->size == default_hugepagesz;
> +    }


ACK aside from that.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list