linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [RFC:PATCH 000/008] Tail Packing in the the Page Cache
@ 2006-07-18  4:08 Dave Kleikamp
  2006-07-18  4:08 ` [RFC:PATCH 001/008] Changes to common header files Dave Kleikamp
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Dave Kleikamp @ 2006-07-18  4:08 UTC (permalink / raw)
  To: linux-mm; +Cc: Dave Kleikamp, Dave McCracken, Badari Pulavarty

These patches are still a bit rough, but I wanted to post something before
my OLS presentation on Friday.

The goal of these patches is to avoid excessive internal fragmentation in
the page cache when the base page size is large.  The new function is
enabled by the option, CONFIG_FILE_TAILS, which currently depends on
CONFIG_PPC_64K_PAGES, but should eventually be available on any 64-bit
architecture.

Instead of allocating an entire page to hold the data for a smaller file
tail, we allocate a buffer from the slab cache (using malloc) and anchor it
to the address space (inode->mapping->tail).  A dummy page structure is
used to represent the tail in the page cache and lru list.

Any time the size of the file is increased, or the tail of the file is
mmapped, the tail is unpacked into a regular page.

I'm still experiencing an occasional hang with these patches.  I don't
recommend running with them, unless you are really interested in debugging.

Note: I had originally attempted to perform I/O directly on the dummy page,
but I was unable to get it working before the OLS deadline, so I simplified
things a bit and pack the data into the tail after it is initially read into
a normal page.  I expect that I can improve these patches quite a bit before
they are ready for submission.

These patches are based on linux-2.6.17.

The title of my presentation is "Efficient Use of the Page Cache with 64K
Pages" and will be held in conference room B at 11:00 on Friday, July 21st.

-- 
David Kleikamp
IBM Linux Technology Center

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2006-07-18  4:09 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-07-18  4:08 [RFC:PATCH 000/008] Tail Packing in the the Page Cache Dave Kleikamp
2006-07-18  4:08 ` [RFC:PATCH 001/008] Changes to common header files Dave Kleikamp
2006-07-18  4:08 ` [RFC:PATCH 002/008] Base file tail function Dave Kleikamp
2006-07-18  4:08 ` [RFC:PATCH 003/008] Handle tail pages in kmap & kmap_atomic Dave Kleikamp
2006-07-18  4:08 ` [RFC:PATCH 004/008] Wrap i_size_write Dave Kleikamp
2006-07-18  4:08 ` [RFC:PATCH 005/008] unpack tail page to avoid memory mapping Dave Kleikamp
2006-07-18  4:08 ` [RFC:PATCH 006/008] Don't need to zero past end-of-file in file tail Dave Kleikamp
2006-07-18  4:09 ` [RFC:PATCH 007/008] Make sure tail page is freed correctly Dave Kleikamp
2006-07-18  4:09 ` [RFC:PATCH 008/008] Handle file tails in mm/filemap.c Dave Kleikamp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox