buffer page concepts in the page cache
Mulyadi Santosa
mulyadi.santosa at gmail.com
Tue Jan 25 13:19:52 EST 2011
Hi Miguel...
Tough questions, let's see if I can made it :D
On Tue, Jan 25, 2011 at 19:56, Miguel Telleria de Esteban
<miguel at mtelleria.com> wrote:
> MY INTERPRETATION (please correct me if I am wrong)
>
> Q1 What is a "buffer page"?
>
> A "buffer page" is a "struct page" data describing a page allocated to
> hold one or more i/o blocks from disk.
I agree...in other word, they are pages that hold data when the I/O
are still in flight. But since it's part of page cache, they aren't
thrown away after the I/O is done...for few moment they are held in
RAM, in case they're subsequently read...thus, I/O frequency toward
physical discs are reduced
I think, we know call it page cache....
> Q2 Is the whole page cache content organized as buffer pages?
>
> YES, there is no other way to link memory-mapped disk i/o data to the
> struct page pointed by address_space radix-tree entries.
Not so sure, but it's something like that IMHO.
> ---
>
> Q3 block device buffer_pages vs file buffer_pages
>
> This I really don't understand. From what UTLK page 614 says:
>
> * File buffer_pages ONLY refer to non-contiguous (on disk layout) file
> contents.
>
> * blockdev buffer_pages refer to single-block or continuous (on disk
> layout) portions of block.
>
> My question is: what happens with non-fragmented medium size files
> that do not contain "disk holes" or non-adjancent block submissions?
Here's my understanding:
1. when you're dealing with file in raw, e.g using "dd" on /dev/sda1
or "dd" with direct I/O command, you use block buffer cache
2. when you deal with files using read()/write facility of filesystem
(thus via VFS), you use file page cache...
to experiment with it, simply start "top" and examine which field
increases when you do "dd", cat, etc....
I hope I help you instead confusing you :D
--
regards,
Mulyadi Santosa
Freelance Linux trainer and consultant
blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com
More information about the Kernelnewbies
mailing list