From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752057AbbDBQlo (ORCPT ); Thu, 2 Apr 2015 12:41:44 -0400 Received: from verein.lst.de ([213.95.11.211]:36620 "EHLO newverein.lst.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750771AbbDBQll (ORCPT ); Thu, 2 Apr 2015 12:41:41 -0400 Date: Thu, 2 Apr 2015 18:41:39 +0200 From: Christoph Hellwig To: "Elliott, Robert (Server Storage)" Cc: Christoph Hellwig , "linux-nvdimm@ml01.01.org" , "linux-fsdevel@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "x86@kernel.org" , "ross.zwisler@linux.intel.com" , "axboe@kernel.dk" , "boaz@plexistor.com" , "Kani, Toshimitsu" Subject: Re: another pmem variant V2 Message-ID: <20150402164139.GA9774@lst.de> References: <1427358764-6126-1-git-send-email-hch@lst.de> <94D0CD8314A33A4D9D801C0FE68B40295A853392@G9W0745.americas.hpqcorp.net> <20150401072608.GA24312@lst.de> <94D0CD8314A33A4D9D801C0FE68B40295A856737@G9W0745.americas.hpqcorp.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <94D0CD8314A33A4D9D801C0FE68B40295A856737@G9W0745.americas.hpqcorp.net> User-Agent: Mutt/1.5.17 (2007-11-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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?