[patch] add alloc_pages/free_pages support
Andreas Jaeger
aj@suse.de
Fri Oct 4 20:02:00 GMT 2002
David Mosberger <davidm@napali.hpl.hp.com> writes:
>>>>>> On Thu, 03 Oct 2002 15:30:56 -0700, Ulrich Drepper <drepper@redhat.com> said:
>
> Uli> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
>
>
> >> Uli, do you have any other feedback or are you OK with it?
>
> Uli> The header still isn't right. You cannot have the hidden
> Uli> macros in there. And the function prototypes are missing
> Uli> __THROW.
>
> OK, how is this?
> [...]
> Index: sysdeps/unix/sysv/linux/Versions
> ===================================================================
> RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/Versions,v
> retrieving revision 1.18
> diff -u -r1.18 Versions
> --- sysdeps/unix/sysv/linux/sysdeps/unix/sysv/linux/Versions 30 Aug 2002 01:30:55 -0000 1.18
> +++ sysdeps/unix/sysv/linux/sysdeps/unix/sysv/linux/Versions 4 Oct 2002 05:45:31 -0000
> @@ -102,6 +102,10 @@
> # r*
> readahead;
>
> + gethugepagesize;
> + alloc_hugepages;
> + free_hugepages;
> +
With glibc 2.3 out of the door, this has to be added with version
glibc 2.3.1.
> Index: sysdeps/unix/sysv/linux/sys/hugepage.h
> ===================================================================
> RCS file: sysdeps/unix/sysv/linux/sys/hugepage.h
> diff -N sysdeps/unix/sysv/linux/sys/hugepage.h
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ sysdeps/unix/sysv/linux/sys/sysdeps/unix/sysv/linux/sys/hugepage.h 4 Oct 2002 05:45:36 -0000
> @@ -0,0 +1,78 @@
> +/* Copyright (C) 2002 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, write to the Free
> + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> + 02111-1307 USA. */
> +
> +#ifndef _SYS_HUGEPAGE_H
> +#define _SYS_HUGEPAGE_H 1
> +
> +/* This header file defines the huge page interface. A huge page is a
> + non-swappable (pinned) page of virtual memory. As the name
> + suggests, the size of a huge page is typically orders of magnitudes
> + bigger than the value returned by getpagesize(). For example,
> + depending on kernel configuration, on x86 it may be 2MBytes or
> + 4MBytes and on ia64 it is typically one of 16MB, 256MBytes, or
> + 4GBytes. Note that because huge pages are never swapped, they are
> + a relatively rare commodity and applications are expected to fall
> + back to allocating regular pages if a huge page cannot be
> + allocated. */
> +
> +#include <features.h>
> +
> +#define __need_size_t
> +#include <stddef.h>
> +
> +__BEGIN_DECLS
> +
> +/* Return the size of a huge page. */
> +
> +extern size_t __gethugepagesize (void) __attribute__ ((__const__)) __THROW;
The header installed in the user level include should not have the
__gethugepagesize. If you need the prototype, we add it to an
internal header.
Andreas
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de
http://www.suse.de/~aj
More information about the Libc-hacker
mailing list