From: Ira Weiny <ira.weiny@intel.com>
To: Al Viro <viro@zeniv.linux.org.uk>
Cc: linux-kernel@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
Christian Koenig <christian.koenig@amd.com>,
Huang Rui <ray.huang@amd.com>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
Helge Deller <deller@gmx.de>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>,
"David S. Miller" <davem@davemloft.net>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
Andy Lutomirski <luto@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Chris Zankel <chris@zankel.net>,
Max Filippov <jcmvbkbc@gmail.com>,
Dan Williams <dan.j.williams@intel.com>,
linux-snps-arc@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org,
linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org,
linux-xtensa@linux-xtensa.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH V2 00/11] Subject: Remove duplicated kmap code
Date: Sun, 3 May 2020 22:04:47 -0700 [thread overview]
Message-ID: <20200504050447.GA979899@iweiny-DESK2.sc.intel.com> (raw)
In-Reply-To: <20200504013509.GU23230@ZenIV.linux.org.uk>
On Mon, May 04, 2020 at 02:35:09AM +0100, Al Viro wrote:
> On Sun, May 03, 2020 at 06:09:01PM -0700, ira.weiny@intel.com wrote:
> > From: Ira Weiny <ira.weiny@intel.com>
> >
> > The kmap infrastructure has been copied almost verbatim to every architecture.
> > This series consolidates obvious duplicated code by defining core functions
> > which call into the architectures only when needed.
> >
> > Some of the k[un]map_atomic() implementations have some similarities but the
> > similarities were not sufficient to warrant further changes.
> >
> > In addition we remove a duplicate implementation of kmap() in DRM.
> >
> > Testing was done by 0day to cover all the architectures I can't readily
> > build/test.
>
> OK... Looking through my old notes on kmap unification (this winter, never
> went anywhere),
>
> * arch/mips/mm/cache.c ought to use linux/highmem.h, not asm/highmem.h
> I suspect that your series doesn't build on some configs there. Hadn't
> verified that, though.
Yes patch 6 makes the change because kmap_atomic() was no longer declared in
asm/highmem.h. I'm pretty sure 0-day caught that ... but I seem to remember
noticing some oddness in that file and I did go through it by hand.
>
> * kmap_atomic_to_page() is dead, but not quite gone - csky and nds32 brought
> the damn thing back (nds32 - only an extern). It needs killin'...
Easy enough. Added as a follow on patch.
>
> * parisc is (arguably) abusing kunmap()/kunmap_atomic() for cache flushing.
> Replace the bulk of its highmem.h with
> #define ARCH_HAS_FLUSH_ON_KUNMAP
> #define arch_before_kunmap flush_kernel_dcache_page_addr
> and have default kunmap()/kunmap_atomic() do
> #ifdef ARCH_HAS_FLUSH_ON_KUNMAP
> arch_before_kunmap(page_address(page));
> #endif
> and
> #ifdef ARCH_HAS_FLUSH_ON_KUNMAP
> arch_before_kunmap(addr);
> #endif
> resp. Kills ARCH_HAS_KMAP along with ifdefs on it, makes parisc use somewhat
> less hacky.
Agreed. Done in a follow on patch.
>
> I'd suggest checking various configs on mips - that's likely to cause headache.
> Said that, my analysis of include chains back then is pretty much worthless
> by now - I really hate the amount of indirect include chains leading to that
> sucker on some, but not all configs ;-/ IIRC, the proof that everything
> using kmap*/kunmap* would pull linux/highmem.h regardless of config took several
> hours of digging, ran for several pages and had been hopelessly brittle.
> arch/mips/mm/cache.c was the only exception caught by it, but these days
> there might be more.
Grepping for 'asm/highmem.h' and investigations don't reveal any issues... But
you do have me worried. That said 0-day has been crunching on multiple
versions of this series without issues such as this (save the mips issue
above).
I have to say it would be nice if the relation between linux/highmem.h and
asm/highmem.h was more straightforward.
Ira
next prev parent reply other threads:[~2020-05-04 5:04 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-04 1:09 [PATCH V2 00/11] Subject: Remove duplicated kmap code ira.weiny
2020-05-04 1:09 ` [PATCH V2 01/11] arch/kmap: Remove BUG_ON() ira.weiny
2020-05-04 1:09 ` [PATCH V2 02/11] arch/xtensa: Move kmap build bug out of the way ira.weiny
2020-05-04 1:09 ` [PATCH V2 03/11] arch/kmap: Remove redundant arch specific kmaps ira.weiny
2020-05-04 1:09 ` [PATCH V2 04/11] arch/kunmap: Remove duplicate kunmap implementations ira.weiny
2020-05-04 1:09 ` [PATCH V2 05/11] {x86,powerpc,microblaze}/kmap: Move preempt disable ira.weiny
2020-05-06 6:11 ` Christoph Hellwig
2020-05-06 20:25 ` Ira Weiny
2020-05-04 1:09 ` [PATCH V2 06/11] arch/kmap_atomic: Consolidate duplicate code ira.weiny
2020-05-06 6:12 ` Christoph Hellwig
2020-05-04 1:09 ` [PATCH V2 07/11] arch/kunmap_atomic: " ira.weiny
2020-05-06 6:12 ` Christoph Hellwig
2020-05-04 1:09 ` [PATCH V2 08/11] arch/kmap: Ensure kmap_prot visibility ira.weiny
2020-05-06 6:13 ` Christoph Hellwig
2020-05-06 20:33 ` Ira Weiny
2020-05-07 4:56 ` Christoph Hellwig
2020-05-04 1:09 ` [PATCH V2 09/11] arch/kmap: Don't hard code kmap_prot values ira.weiny
2020-05-04 1:09 ` [PATCH V2 10/11] arch/kmap: Define kmap_atomic_prot() for all arch's ira.weiny
2020-05-06 6:14 ` Christoph Hellwig
2020-05-04 1:09 ` [PATCH V2 11/11] drm: Remove drm specific kmap_atomic code ira.weiny
2020-05-04 11:18 ` Daniel Vetter
2020-05-04 20:24 ` Ira Weiny
2020-05-04 1:35 ` [PATCH V2 00/11] Subject: Remove duplicated kmap code Al Viro
2020-05-04 5:04 ` Ira Weiny [this message]
2020-05-04 5:33 ` Al Viro
2020-05-04 20:17 ` Ira Weiny
2020-05-04 21:02 ` Al Viro
2020-05-04 23:27 ` Ira Weiny
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200504050447.GA979899@iweiny-DESK2.sc.intel.com \
--to=ira.weiny@intel.com \
--cc=James.Bottomley@hansenpartnership.com \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=bp@alien8.de \
--cc=chris@zankel.net \
--cc=christian.koenig@amd.com \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=deller@gmx.de \
--cc=dri-devel@lists.freedesktop.org \
--cc=hpa@zytor.com \
--cc=jcmvbkbc@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-csky@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux-snps-arc@lists.infradead.org \
--cc=linux-xtensa@linux-xtensa.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=paulus@samba.org \
--cc=peterz@infradead.org \
--cc=ray.huang@amd.com \
--cc=sparclinux@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tsbogend@alpha.franken.de \
--cc=viro@zeniv.linux.org.uk \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).