[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAAhSdy15JqNAiuv84OogmoxyxwXE3EJzadfZk-wNcoUUXJ-fJQ@mail.gmail.com>
Date: Fri, 7 Oct 2022 11:04:28 +0530
From: Anup Patel <anup@...infault.org>
To: Palmer Dabbelt <palmer@...belt.com>
Cc: Christoph Hellwig <hch@...radead.org>, apatel@...tanamicro.com,
Paul Walmsley <paul.walmsley@...ive.com>,
atishp@...shpatra.org, heiko@...ech.de,
linux-riscv@...ts.infradead.org, linux-kernel@...r.kernel.org,
mchitale@...tanamicro.com
Subject: Re: [PATCH v2 1/4] RISC-V: Fix ioremap_cache() and ioremap_wc() for
systems with Svpbmt
On Fri, Oct 7, 2022 at 9:20 AM Palmer Dabbelt <palmer@...belt.com> wrote:
>
> On Wed, 28 Sep 2022 05:14:30 PDT (-0700), Christoph Hellwig wrote:
> > On Thu, Sep 22, 2022 at 09:35:56AM -0700, Palmer Dabbelt wrote:
> >> Sorry I missed this, I thought it was just part of the rest of this patch
> >> set. That said, I'm not actually sure this is a critical fix: sure it's a
> >> performance problem, and if some driver is expecting ioremap_cache() to go
> >> fast then possibly a pretty big one, but the only Svpmbt hardware that
> >
> > More importantly nothing should be using ioremap_cache at all. It is
> > an API that has long been deprecated in favor of memremap.
>
> There's a few uses of it, I just send along a patch to make it
> arch-specific and make the users depend on it. That should let us stop
> adding this to ports just to get the drivers building.
I agree, ioremap_cache() should not be used by drivers.
I encountered this issue with the PMEM driver which uses devm_memremap()
which in-turn calls memremap() (kernel/iomem.c). The kernel memremap()
still expects arch-specific ioremap_xyz() functions/macros to implement various
MEMREMAP_xyz flags which is why we need these RISC-V specific ioremap_xyz().
An alternative way is to implement RISC-V specific arch_memremap_wb()
but this will still look similar to ioremap_cache() added by this patch. Also,
only 32bit ARM implements arch_memremap_wb() whereas all other archs
(ARM64, x86_64, etc) implement ioremap_xyz() functions/macros.
Regards,
Anup
Powered by blists - more mailing lists