From: "'David Gibson'" <david@gibson.dropbear.id.au>
To: Ray Bryant <raybry@sgi.com>
Cc: "Chen, Kenneth W" <kenneth.w.chen@intel.com>,
linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org,
lse-tech@lists.sourceforge.net,
'Andy Whitcroft' <apw@shadowen.org>,
'Andrew Morton' <akpm@osdl.org>
Subject: Re: [Lse-tech] Re: hugetlb demand paging patch part [2/3]
Date: Mon, 19 Apr 2004 00:47:36 +0000 [thread overview]
Message-ID: <20040419004736.GA4697@zax> (raw)
In-Reply-To: <4082BC85.9010800@sgi.com>
On Sun, Apr 18, 2004 at 12:36:05PM -0500, Ray Bryant wrote:
>
>
> 'David Gibson' wrote:
>
> >
> >
> >My main interest in it is as a prerequisite for various methods of
> >"automatically" using hugepages for programs where it is difficult to
> >manually code them to use hugetlbfs. In particular, think HPC
> >monsters written in FORTRAN. e.g. automatically putting suitable
> >aligned anonymous mmap()s in hugepages under some circumstances (I
> >can't say I like that idea much), using an LD_PRELOAD to put
> >malloc()ated memory into hugepages, or using a hacked ELF loader to
> >put the BSS section (again, think FORTRAN) into hugepages (actually
> >easier and less ugly than it sounds).
> >
>
> Well, that certainly is a laudable goal. At the moment, one usually has to
> resort to such things as POINTER variables and the like to get access to
> hugetlbpage segments. Unfortunately, some of our experiments with the
> Intel compiler for ia64 have indicated that the generated code can be
> significantly slower when arrays are referenced off of POINTER variables
> than when the same arrays are referenced out of COMMON, thus eliminating
> the performance gain of HUGETLB pages.
Well, that's one problem with using POINTERs, but I think perhaps the
more serious one is that a lot of HPC code is written by scientists
who aren't programmers, and who still think in FORTRAN77.
> My question was really intended to address applying development effort to
> things that the users of hugetlbpages will likely actually use. For
> example, it seems pointless to worry too much about demand paging of
> hugetlbpages out to disk. Anyone who uses hugetlbpages for the performance
> boost they give will also likely have rightsized their problem or machine
> configuration to eliminate any swapping.
Well, indeed. Note that this "demand paging" set of patches don't
actually do paging out to disk - they just do on-demand allocation of
physical hugepages, rather than prefaulting them all. My only real
interest in it is that part of the mechanism is identical to that
needed for COW (handle_hugetlb_mm_fault(), in particular).
> >In any of these cases having the memory have different semantics
> >(MAP_SHARED) to normal anonymous memory would clearly be a Bad Thing.
--
David Gibson | For every complex problem there is a
david AT gibson.dropbear.id.au | solution which is simple, neat and
| wrong.
http://www.ozlabs.org/people/dgibson
WARNING: multiple messages have this Message-ID (diff)
From: "'David Gibson'" <david@gibson.dropbear.id.au>
To: Ray Bryant <raybry@sgi.com>
Cc: "Chen, Kenneth W" <kenneth.w.chen@intel.com>,
linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org,
lse-tech@lists.sourceforge.net,
"'Andy Whitcroft'" <apw@shadowen.org>,
"'Andrew Morton'" <akpm@osdl.org>
Subject: Re: [Lse-tech] Re: hugetlb demand paging patch part [2/3]
Date: Mon, 19 Apr 2004 10:47:36 +1000 [thread overview]
Message-ID: <20040419004736.GA4697@zax> (raw)
In-Reply-To: <4082BC85.9010800@sgi.com>
On Sun, Apr 18, 2004 at 12:36:05PM -0500, Ray Bryant wrote:
>
>
> 'David Gibson' wrote:
>
> >
> >
> >My main interest in it is as a prerequisite for various methods of
> >"automatically" using hugepages for programs where it is difficult to
> >manually code them to use hugetlbfs. In particular, think HPC
> >monsters written in FORTRAN. e.g. automatically putting suitable
> >aligned anonymous mmap()s in hugepages under some circumstances (I
> >can't say I like that idea much), using an LD_PRELOAD to put
> >malloc()ated memory into hugepages, or using a hacked ELF loader to
> >put the BSS section (again, think FORTRAN) into hugepages (actually
> >easier and less ugly than it sounds).
> >
>
> Well, that certainly is a laudable goal. At the moment, one usually has to
> resort to such things as POINTER variables and the like to get access to
> hugetlbpage segments. Unfortunately, some of our experiments with the
> Intel compiler for ia64 have indicated that the generated code can be
> significantly slower when arrays are referenced off of POINTER variables
> than when the same arrays are referenced out of COMMON, thus eliminating
> the performance gain of HUGETLB pages.
Well, that's one problem with using POINTERs, but I think perhaps the
more serious one is that a lot of HPC code is written by scientists
who aren't programmers, and who still think in FORTRAN77.
> My question was really intended to address applying development effort to
> things that the users of hugetlbpages will likely actually use. For
> example, it seems pointless to worry too much about demand paging of
> hugetlbpages out to disk. Anyone who uses hugetlbpages for the performance
> boost they give will also likely have rightsized their problem or machine
> configuration to eliminate any swapping.
Well, indeed. Note that this "demand paging" set of patches don't
actually do paging out to disk - they just do on-demand allocation of
physical hugepages, rather than prefaulting them all. My only real
interest in it is that part of the mechanism is identical to that
needed for COW (handle_hugetlb_mm_fault(), in particular).
> >In any of these cases having the memory have different semantics
> >(MAP_SHARED) to normal anonymous memory would clearly be a Bad Thing.
--
David Gibson | For every complex problem there is a
david AT gibson.dropbear.id.au | solution which is simple, neat and
| wrong.
http://www.ozlabs.org/people/dgibson
next prev parent reply other threads:[~2004-04-19 0:47 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-04-13 23:22 hugetlb demand paging patch part [2/3] Chen, Kenneth W
2004-04-13 23:22 ` Chen, Kenneth W
2004-04-15 7:17 ` David Gibson
2004-04-15 7:17 ` David Gibson
2004-04-15 17:27 ` Chen, Kenneth W
2004-04-15 17:27 ` Chen, Kenneth W
2004-04-16 2:34 ` 'David Gibson'
2004-04-16 2:34 ` 'David Gibson'
2004-04-16 2:58 ` Chen, Kenneth W
2004-04-16 2:58 ` Chen, Kenneth W
2004-04-16 3:27 ` 'David Gibson'
2004-04-16 3:27 ` 'David Gibson'
2004-04-16 4:13 ` Chen, Kenneth W
2004-04-16 4:13 ` Chen, Kenneth W
2004-04-16 4:49 ` 'David Gibson'
2004-04-16 4:49 ` 'David Gibson'
2004-04-16 19:05 ` Ray Bryant
2004-04-16 19:05 ` Ray Bryant
2004-04-17 12:05 ` 'David Gibson'
2004-04-17 12:05 ` 'David Gibson'
2004-04-18 17:36 ` [Lse-tech] " Ray Bryant
2004-04-18 17:36 ` Ray Bryant
2004-04-19 0:47 ` 'David Gibson' [this message]
2004-04-19 0:47 ` 'David Gibson'
2004-04-16 5:56 ` Chen, Kenneth W
2004-04-16 5:56 ` Chen, Kenneth W
2004-04-16 6:15 ` 'David Gibson'
2004-04-16 6:15 ` 'David Gibson'
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040419004736.GA4697@zax \
--to=david@gibson.dropbear.id.au \
--cc=akpm@osdl.org \
--cc=apw@shadowen.org \
--cc=kenneth.w.chen@intel.com \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lse-tech@lists.sourceforge.net \
--cc=raybry@sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.