Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934606AbcJZT5M (ORCPT ); Wed, 26 Oct 2016 15:57:12 -0400 Received: from mail-wm0-f50.google.com ([74.125.82.50]:38214 "EHLO mail-wm0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932826AbcJZT5J (ORCPT ); Wed, 26 Oct 2016 15:57:09 -0400 Message-ID: <58110A90.9070900@plexistor.com> Date: Wed, 26 Oct 2016 22:57:04 +0300 From: Boaz Harrosh User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Brian Boylston , linux-nvdimm@ml01.01.org CC: oliver.moreno@hpe.com, x86@kernel.org, linux-kernel@vger.kernel.org, Ingo Molnar , Al Viro , "H. Peter Anvin" , Thomas Gleixner Subject: Re: [PATCH v2 3/3] x86: remove unneeded flush in arch_copy_from_iter_pmem() References: <20161026155021.20892-1-brian.boylston@hpe.com> <20161026155021.20892-4-brian.boylston@hpe.com> In-Reply-To: <20161026155021.20892-4-brian.boylston@hpe.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2184 Lines: 65 On 10/26/2016 06:50 PM, Brian Boylston wrote: > copy_from_iter_nocache() now uses nocache copies for all types of iovecs > on x86, so the flush in arch_copy_from_iter_pmem() is no longer needed. > > Cc: Ross Zwisler > Cc: Thomas Gleixner > Cc: Ingo Molnar > Cc: "H. Peter Anvin" > Cc: > Cc: Al Viro > Cc: Dan Williams > Signed-off-by: Brian Boylston > Reviewed-by: Toshi Kani > Reported-by: Oliver Moreno > --- > arch/x86/include/asm/pmem.h | 19 +------------------ > 1 file changed, 1 insertion(+), 18 deletions(-) > > diff --git a/arch/x86/include/asm/pmem.h b/arch/x86/include/asm/pmem.h > index 643eba4..2fbf4ae 100644 > --- a/arch/x86/include/asm/pmem.h > +++ b/arch/x86/include/asm/pmem.h > @@ -72,15 +72,6 @@ static inline void arch_wb_cache_pmem(void *addr, size_t size) > clwb(p); > } > > -/* > - * copy_from_iter_nocache() on x86 only uses non-temporal stores for iovec > - * iterators, so for other types (bvec & kvec) we must do a cache write-back. > - */ > -static inline bool __iter_needs_pmem_wb(struct iov_iter *i) > -{ > - return iter_is_iovec(i) == false; > -} > - > /** > * arch_copy_from_iter_pmem - copy data from an iterator to PMEM > * @addr: PMEM destination address > @@ -92,15 +83,7 @@ static inline bool __iter_needs_pmem_wb(struct iov_iter *i) > static inline size_t arch_copy_from_iter_pmem(void *addr, size_t bytes, > struct iov_iter *i) > { > - size_t len; > - > - /* TODO: skip the write-back by always using non-temporal stores */ > - len = copy_from_iter_nocache(addr, bytes, i); > - > - if (__iter_needs_pmem_wb(i)) > - arch_wb_cache_pmem(addr, bytes); > - > - return len; > + return copy_from_iter_nocache(addr, bytes, i); I wish you would remove all this completely. Don't see the point for it anymore Thanks a lot for doing this. I have this patch for ages in my trees and was too lasy to fight them through. Yes it is a big boost for many workloads. Lots of gratitude Boaz > } > > /** >