On Tue, Sep 02, 2008 at 08:54:02AM -0500, Adam Litke wrote: > On Mon, 2008-09-01 at 15:45 +1000, David Gibson wrote: > > On Fri, Aug 29, 2008 at 09:51:35AM -0500, Adam Litke wrote: > > > On Fri, 2008-08-29 at 15:42 +1000, David Gibson wrote: > > > > On Wed, Aug 27, 2008 at 06:34:41PM +0000, Adam Litke wrote: > > [snip] [snip] > > > library/executable (akin to hugectl) that will be used to query page > > > sizes, mount points, and pool counter values. Since we have adopted the > > > > Ok, but presumably there will also be library interface so that > > programs can query this for themself? > > Yes, that's the plan.
Ok. > > > limitation that only one mountpoint can exist per page size, I feel it > > > is much more user-friendly to use the page size as a handle rather than > > > the mount point. The page size is more important to the user than a > > > filesystem mount point that we are actually trying to abstract away from > > > them. > > > > Yes, that's true in general. But are there cases where multiple > > mountpoints of the same page size aren't interchangable? The > > mountpoints will have separate quota allocation, won't they? And they > > could have different permissions. > > The only case I can imagine for needing two mountpoints of the same size > in use by the same library at the same time is to accommodate a picky > user who wants to account for morecore hugepages and ELF segment > hugepages using different quotas for each type. While it's true that we > could support such usage, I'm not sure it's worth the development effort > at this stage. Hrm. Yeah, true, all the cases I can think of for multiple mountpoints of the same size have each mountpoint used by a different program/library instance. > If (farther down the road) we do decide we need this type of thing, we > could add an interface for using mount handles akin to the following: > > /* Get a handle to a hugetlbfs mount point */ > hugetlbfs_mount_t *get_hugetlbfs(const char *path); > > /* Create an fd on a specific hugetlbfs mount point */ > int hugetlbfs_unlinked_fd_from_handle(hugetlbfs_mount_t *handle); Yes. Well.. we could use this model for handling just the pagesizes too, with the addition of a hugetlbfs_mount_t *get_hugetlbfs_by_size(unsigned long pagesize); Then using the returned handle for the unlinked_fd and get_huge_pages functions. > I think bringing this level of complexity to the environment variables > (HUGETLB_MORECORE, HUGETLB_ELFMAP, etc) is not worth it given such a > narrow and hypothetical use case. True. Although using the get handle / pass handle model, handling mountpoints individually isn't much more complex than just selecting pagesize directly to the unlinked_fd/get_huge_pages functions. And it would mean one less batch of entry points if we do ever need to do the explicit mountpoint selection. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Libhugetlbfs-devel mailing list Libhugetlbfs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel