Re: [PATCH] x86: cache pollution aware __copy_from_user_ll()

From: Andi Kleen
Date: Mon Jun 26 2006 - 16:25:29 EST


Linus Torvalds <torvalds@xxxxxxxx> writes:

> On Sat, 24 Jun 2006, Arjan van de Ven wrote:
> >
> > while this patch will reduce the number of cycles spent in the kernel,
> > it's just pushing the cache miss to userspace (by virtue of doing a
> > cache flush effectively)... is this really the right thing? The total
> > memory bandwidth will actually increase with this patch if you're
> > unlucky (eg if userspace decides to write to this memory eventually)....
>
> No. It's for copying _from_ user space, ie a "write()" system call. So
> what it does is to effectively try to use non-temporal stores to the page
> cache - since the page cache is usually not read directly afterwards (at
> least not soon enough for L1 caches to help).
>
> I don't generally like cache tricks either (caches tend to be better than
> humans, or at least get there fairly soon), but this one does seem very
> valid.

Problem is that it will likely wreck pipe and AF_UNIX (= X server)
performance. These read the buffer quickly again.

If you do something like this it would be better to define
a special function and use it for real FS traffic only.

-Andi
-
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/