This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] add alloc_pages/free_pages support


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]