2006-09-15 08:50:45

by SandeepKsinha

[permalink] [raw]
Subject: Efficient Use of the Page Cache with 64 KB Pages

Hey all,
I am a newbie and I just read a document with the idea for changes in
page cache management for 64 Bit machines. This has been taken from
Linux symposium 2006, ottawa.

In order for 64-bit processors to efficiently use large address spaces
while maintaining lower TLB miss rates, the Linux kernel can be
configured with base page sizes up to 64 KB. While this benefits
access to large memory segments and files, it greatly reduces the
number of smaller files that can be resident in memory at one time.
The idea proposes a change to the Linux kernel to allow file data to
be more efficiently stored in memory when the size of the file, or the
data at the end of a file, is significantly smaller than the page
size.

So, how far is this feature feasible for the linux main line kernel ?
Is, this feature already supported ?
--
Regards,
Sandeep





Winners expect to win in advance. Life is a self-fulfilling prophecy.


2006-09-15 09:22:42

by Peter Zijlstra

[permalink] [raw]
Subject: Re: Efficient Use of the Page Cache with 64 KB Pages

On Fri, 2006-09-15 at 01:50 -0700, Sandeep Kumar wrote:
> Hey all,
> I am a newbie and I just read a document with the idea for changes in
> page cache management for 64 Bit machines. This has been taken from
> Linux symposium 2006, ottawa.
>
> In order for 64-bit processors to efficiently use large address spaces
> while maintaining lower TLB miss rates, the Linux kernel can be
> configured with base page sizes up to 64 KB. While this benefits
> access to large memory segments and files, it greatly reduces the
> number of smaller files that can be resident in memory at one time.
> The idea proposes a change to the Linux kernel to allow file data to
> be more efficiently stored in memory when the size of the file, or the
> data at the end of a file, is significantly smaller than the page
> size.
>
> So, how far is this feature feasible for the linux main line kernel ?

Not in the form last presented, but Dave is still working on making it
look pretty and covering more use-cases AFAIK.

But even then, it will not fix all scenarios...

> Is, this feature already supported ?

No it is not.

In future it would be nice to add the author(s) to the CC list ;-)

2006-09-15 12:34:09

by Dave Kleikamp

[permalink] [raw]
Subject: Re: Efficient Use of the Page Cache with 64 KB Pages

On Fri, 2006-09-15 at 11:11 +0200, Peter Zijlstra wrote:
> On Fri, 2006-09-15 at 01:50 -0700, Sandeep Kumar wrote:
> > Hey all,
> > I am a newbie and I just read a document with the idea for changes in
> > page cache management for 64 Bit machines. This has been taken from
> > Linux symposium 2006, ottawa.
> >
> > In order for 64-bit processors to efficiently use large address spaces
> > while maintaining lower TLB miss rates, the Linux kernel can be
> > configured with base page sizes up to 64 KB. While this benefits
> > access to large memory segments and files, it greatly reduces the
> > number of smaller files that can be resident in memory at one time.
> > The idea proposes a change to the Linux kernel to allow file data to
> > be more efficiently stored in memory when the size of the file, or the
> > data at the end of a file, is significantly smaller than the page
> > size.
> >
> > So, how far is this feature feasible for the linux main line kernel ?
>
> Not in the form last presented, but Dave is still working on making it
> look pretty and covering more use-cases AFAIK.

Right, I've been sidetracked with some other things, but I'm hoping to
get back on it soon.

> But even then, it will not fix all scenarios...

Right, you'll probably never be able to mmap to a "tail page". I'm
actually trying a couple different approaches to compare the trade-off
between performance and intrusiveness. On the less intrusive end, data
would be copied into a smaller buffer after it is read into a full page.
The more ambitious approach would have the smaller buffers aligned to
the sector size (and sized to the block size), and data is read, and
sometimes written, directly into them.

> > Is, this feature already supported ?
>
> No it is not.
>
> In future it would be nice to add the author(s) to the CC list ;-)

Peter, thanks for cc'ing me.

Shaggy
--
David Kleikamp
IBM Linux Technology Center

2006-09-19 18:38:16

by Christoph Lameter

[permalink] [raw]
Subject: Re: Efficient Use of the Page Cache with 64 KB Pages

On Fri, 15 Sep 2006, Sandeep Kumar wrote:

> So, how far is this feature feasible for the linux main line kernel ?
> Is, this feature already supported ?

IA64 has supported 64k page size from the beginning. Since some
years before the end of the last decade. It is only the hardware
limitations on IA32 that hold us back.


2006-09-19 22:56:03

by Tony Luck

[permalink] [raw]
Subject: Re: Efficient Use of the Page Cache with 64 KB Pages

On 9/19/06, Christoph Lameter <[email protected]> wrote:
> IA64 has supported 64k page size from the beginning. Since some
> years before the end of the last decade. It is only the hardware
> limitations on IA32 that hold us back.

But memory usage with a 64K page size can get out of hand (especially
if you have an application that uses a lot of small files). Dave Kleikamp's
tail pages would help make 64K page size more generally palatable.

-Tony

----
New yarn store in Sunnyvale opens October 14th. http://www.purlescenceyarns.com

2006-09-20 04:29:23

by Christoph Lameter

[permalink] [raw]
Subject: Re: Efficient Use of the Page Cache with 64 KB Pages

On Tue, 19 Sep 2006, Tony Luck wrote:

> But memory usage with a 64K page size can get out of hand (especially
> if you have an application that uses a lot of small files). Dave Kleikamp's
> tail pages would help make 64K page size more generally palatable.

Sure but there is no need for something like that on IA32 since the
hardware does not support more than 4k.