svn commit: r305004 - in head/sys: amd64/amd64 amd64/include i386/i386

Slawa Olhovchenkov slw at zxy.spb.ru
Mon Aug 29 18:11:34 UTC 2016


On Tue, Aug 30, 2016 at 03:58:54AM +1000, Bruce Evans wrote:

> On Mon, 29 Aug 2016, Slawa Olhovchenkov wrote:
> 
> > On Mon, Aug 29, 2016 at 01:07:21PM +0000, Bruce Evans wrote:
> >> ...
> >> Log:
> >>   On amd64, declare sse2_pagezero() and start using it again, but only
> >>   for zeroing pages in idle where nontemporal writes are clearly best.
> >>   This is almost a no-op since zeroing in idle works does nothing good
> >>   and is off by default.  Fix END() statement forgotten in previous
> >>   commit.
> >> ...
> >
> > Do you think about using nontemporal writes for copying from user
> > space to kernel space? In much cases this copy result don't need any parsing
> > anf just go to DMA, eliminate cache use.
> 
> I once tried that (for copyin/out, without DMA).  It was just a small
> pessimization.  For small data, it increases setup overheads, and
> large data isn't common enough to matter.  DMA can be even slower
> since it increases latency.  First there is latency to set it up,
> and

May be I am not very clear: not using DMA for tranfer. Using
nontemporal for data passed to devices DMA buffers.

> then you often don't want it to touch the cache since that gives more
> latency for cache misses.

No, I am talk not about total replace such copy, only on per-case
bases.
I.e. introduce new function and use it in special cases (for example:
tcp output).


More information about the svn-src-head mailing list