tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Zero page
On Wed Feb 03 2010 at 03:55:29 +0900, Masao Uebayashi wrote:
> > Can't the first XIP device to attach simply allocate it?
>
> It's getpages()'s iteration loop which redirects unallocated pages to
> zero-pages. If we allocate zero-page in device drivers, we have to
> have an interface which can be retrieved from vnode or mount.
> Having a well-known global name is simple, but I'm fine with both.
I assumed the reason you mentioned #ifdef XIP was because you didn't
want to waste a whole page of memory on systems which don't use XIP.
So in my suggestion you'd have a global:
struct uvm_page *page_of_blues;
and then in xip_attach:
RUN_ONCE(zeroes, allocate_nothingness);
Or something like that (you can even refcount it if you want to be
extra-fancy). Then you can just always use the global zeropage in xip
getpages() and don't need to recompile your kernel (and reboot!) to
support XIP device modules.
Home |
Main Index |
Thread Index |
Old Index