Re: [PATCH 1/3] compound page: use page[1].lru

From: Andrew Morton
Date: Mon Feb 13 2006 - 02:11:19 EST


"David S. Miller" <davem@xxxxxxxxxxxxx> wrote:
>
> From: Andrew Morton <akpm@xxxxxxxx>
> Date: Sun, 12 Feb 2006 18:13:12 -0800
>
> > We have a page which has no ->mapping, but lo, it's mmapped by userspace
> > and can be MAP_SHARED between different CPUs and processes.
> >
> > Yes, I suspect it'll do the wrong thing in unpleasantly subtle ways.
> >
> > (cc's davem and runs away).
>
> The ->mapping check is there essentially to hit user mapped pages that
> would be modified by the kernel using kernel space memory accesses
> other than those done by copy_user_page() and clear_user_page() (and
> their brothers copy_user_highpage() and clear_user_highpage() which
> just call the former directly on a non-HIGHPAGE platform like
> sparc64).

The direct-io.c code just does memset. (That's very common - maybe
clear_user_highpage_partial() is needed?)

> Hugepages actually have no D-cache aliasing issues by definition on
> sparc64 because the smallest possible hugepage size is 64K which is
> larger than the D-cache aliasing factor (which is 16K).

OK.. So it would be a bug, except for this hardware quirk. I'll check the
other architectures.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/