* Christoph Hellwig <h...@lst.de> wrote:

> On Thu, Apr 02, 2015 at 03:11:36PM +0000, Elliott, Robert (Server Storage) 
> wrote:
> > Attr        Copy            Read IOPS               Write IOPS
> > ====        ====            =========               ==========
> > UC  memcpy          36 K                    22 K
> > UC  NT rd,wr        513 K                   326 K
> > 
> > WB  memcpy          3.4 M                   2.5 M
> > WB  NT rd,wr        3.3 M                   3.5 M
> > 
> > WC  memcpy          776 K                   3.5 M
> > WC  NT rd,wr        3.0 M                   3.9 M
> > 
> > WT  memcpy          2.1 M                   22 K
> > WT  NT rd,wr        3.3 M                   2.1 M
> > 
> > a few other variations yielded the peak numbers:
> > WC  NT rd only      3.2 M                   4.1 M
> > WC  NT wr only      712 K                   4.6 M
> > WT  NT wr only      2.6 M                   4.0 M
> > 
> > There are lots of tuning considerations for those memcpy 
> > functions - how far to unroll the loop, whether to
> > include PRFETCHNTA instructions, etc.
> 
> Looks like we should aіm for WC + NT would be a good start.
> 
> Can you prepare a patch to add your NT memcpy variants and
> a second one to use them in the pmem driver?

So we already have NT memcpy variants, see the copy_*_user_*_nocache() 
primitives in arch/x86/. They could be used almost straight away for 
kernel memory as well, as kernel buffers will not fault.

Thanks,

        Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to