Re: [patch 1/2] mm: fincore()

From: Andrew Morton
Date: Fri Feb 15 2013 - 16:27:49 EST

On Fri, 15 Feb 2013 01:34:50 -0500
Johannes Weiner <hannes@xxxxxxxxxxx> wrote:

> + * The status is returned in a vector of bytes. The least significant
> + * bit of each byte is 1 if the referenced page is in memory, otherwise
> + * it is zero.

Also, this is going to be dreadfully inefficient for some obvious cases.

We could address that by returning the info in some more efficient
representation. That will be run-length encoded in some fashion.

The obvious way would be to populate an array of

struct page_status {
u32 present:1;
u32 count:31;

or whatever.

Another way would be to define the syscall so it returns "number of
pages present/absent starting at offset `start'". In other words, one
call to fincore() will return a single `struct page_status'. Userspace
can then walk through the file and generate the full picture, if needed.

This also gets inefficient in obvious cases, but it's not as obviously

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at