From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 29 May 2015 11:11:30 +0200 From: Borislav Petkov Subject: Re: [PATCH v10 12/12] drivers/block/pmem: Map NVDIMM with ioremap_wt() Message-ID: <20150529091129.GC31435@pd.tnic> References: <1432739944-22633-1-git-send-email-toshi.kani@hp.com> <1432739944-22633-13-git-send-email-toshi.kani@hp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <1432739944-22633-13-git-send-email-toshi.kani@hp.com> Sender: linux-kernel-owner@vger.kernel.org To: Toshi Kani , Dan Williams , Ross Zwisler Cc: hpa@zytor.com, tglx@linutronix.de, mingo@redhat.com, akpm@linux-foundation.org, arnd@arndb.de, linux-mm@kvack.org, linux-kernel@vger.kernel.org, x86@kernel.org, linux-nvdimm@lists.01.org, jgross@suse.com, stefan.bader@canonical.com, luto@amacapital.net, hmh@hmh.eng.br, yigal@plexistor.com, konrad.wilk@oracle.com, Elliott@hp.com, mcgrof@suse.com, hch@lst.de List-ID: On Wed, May 27, 2015 at 09:19:04AM -0600, Toshi Kani wrote: > The pmem driver maps NVDIMM with ioremap_nocache() as we cannot > write back the contents of the CPU caches in case of a crash. > > This patch changes to use ioremap_wt(), which provides uncached > writes but cached reads, for improving read performance. > > Signed-off-by: Toshi Kani > --- > drivers/block/pmem.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/block/pmem.c b/drivers/block/pmem.c > index eabf4a8..095dfaa 100644 > --- a/drivers/block/pmem.c > +++ b/drivers/block/pmem.c > @@ -139,11 +139,11 @@ static struct pmem_device *pmem_alloc(struct device *dev, struct resource *res) > } > > /* > - * Map the memory as non-cachable, as we can't write back the contents > + * Map the memory as write-through, as we can't write back the contents > * of the CPU caches in case of a crash. > */ > err = -ENOMEM; > - pmem->virt_addr = ioremap_nocache(pmem->phys_addr, pmem->size); > + pmem->virt_addr = ioremap_wt(pmem->phys_addr, pmem->size); > if (!pmem->virt_addr) > goto out_release_region; Dan, Ross, what about this one? ACK to pick it up as a temporary solution? -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. -- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755849AbbE2JLr (ORCPT ); Fri, 29 May 2015 05:11:47 -0400 Received: from mail.skyhub.de ([78.46.96.112]:45719 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755501AbbE2JLm (ORCPT ); Fri, 29 May 2015 05:11:42 -0400 Date: Fri, 29 May 2015 11:11:30 +0200 From: Borislav Petkov To: Toshi Kani , Dan Williams , Ross Zwisler Cc: hpa@zytor.com, tglx@linutronix.de, mingo@redhat.com, akpm@linux-foundation.org, arnd@arndb.de, linux-mm@kvack.org, linux-kernel@vger.kernel.org, x86@kernel.org, linux-nvdimm@ml01.01.org, jgross@suse.com, stefan.bader@canonical.com, luto@amacapital.net, hmh@hmh.eng.br, yigal@plexistor.com, konrad.wilk@oracle.com, Elliott@hp.com, mcgrof@suse.com, hch@lst.de Subject: Re: [PATCH v10 12/12] drivers/block/pmem: Map NVDIMM with ioremap_wt() Message-ID: <20150529091129.GC31435@pd.tnic> References: <1432739944-22633-1-git-send-email-toshi.kani@hp.com> <1432739944-22633-13-git-send-email-toshi.kani@hp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <1432739944-22633-13-git-send-email-toshi.kani@hp.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 27, 2015 at 09:19:04AM -0600, Toshi Kani wrote: > The pmem driver maps NVDIMM with ioremap_nocache() as we cannot > write back the contents of the CPU caches in case of a crash. > > This patch changes to use ioremap_wt(), which provides uncached > writes but cached reads, for improving read performance. > > Signed-off-by: Toshi Kani > --- > drivers/block/pmem.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/block/pmem.c b/drivers/block/pmem.c > index eabf4a8..095dfaa 100644 > --- a/drivers/block/pmem.c > +++ b/drivers/block/pmem.c > @@ -139,11 +139,11 @@ static struct pmem_device *pmem_alloc(struct device *dev, struct resource *res) > } > > /* > - * Map the memory as non-cachable, as we can't write back the contents > + * Map the memory as write-through, as we can't write back the contents > * of the CPU caches in case of a crash. > */ > err = -ENOMEM; > - pmem->virt_addr = ioremap_nocache(pmem->phys_addr, pmem->size); > + pmem->virt_addr = ioremap_wt(pmem->phys_addr, pmem->size); > if (!pmem->virt_addr) > goto out_release_region; Dan, Ross, what about this one? ACK to pick it up as a temporary solution? -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. --