Linux-m68k Archive on lore.kernel.org
 help / color / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Christoph Hellwig <hch@lst.de>
Cc: Guo Ren <guoren@kernel.org>, Michal Simek <monstr@monstr.eu>,
	Greentime Hu <green.hu@gmail.com>,
	Vincent Chen <deanbo422@gmail.com>, Guan Xuetao <gxt@pku.edu.cn>,
	"the arch/x86 maintainers" <x86@kernel.org>,
	alpha <linux-alpha@vger.kernel.org>,
	"open list:SYNOPSYS ARC ARCHITECTURE" 
	<linux-snps-arc@lists.infradead.org>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	"open list:QUALCOMM HEXAGON..." <linux-hexagon@vger.kernel.org>,
	linux-ia64@vger.kernel.org,
	linux-m68k <linux-m68k@lists.linux-m68k.org>,
	linux-mips@vger.kernel.org,
	"moderated list:NIOS2 ARCHITECTURE" 
	<nios2-dev@lists.rocketboards.org>,
	openrisc@lists.librecores.org,
	Parisc List <linux-parisc@vger.kernel.org>,
	linux-riscv@lists.infradead.org,
	linux-s390 <linux-s390@vger.kernel.org>,
	Linux-sh list <linux-sh@vger.kernel.org>,
	sparclinux <sparclinux@vger.kernel.org>,
	linux-xtensa@linux-xtensa.org,
	linux-mtd <linux-mtd@lists.infradead.org>,
	linux-arch <linux-arch@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 10/21] asm-generic: ioremap_uc should behave the same with and without MMU
Date: Mon, 11 Nov 2019 11:27:27 +0100
Message-ID: <CAK8P3a0rTvfPP2LUMw8EC0xz5gfZP5+NUkoaZBJrtYYfr6YRig@mail.gmail.com> (raw)
In-Reply-To: <20191111101531.GA12294@lst.de>

On Mon, Nov 11, 2019 at 11:15 AM Christoph Hellwig <hch@lst.de> wrote:
>
> On Mon, Nov 11, 2019 at 11:09:05AM +0100, Arnd Bergmann wrote:
> > Maybe we could move the definition into the atyfb driver itself?
> >
> > As I understand it, the difference between ioremap()/ioremap_nocache()
> > and ioremap_uc() only exists on pre-PAT x86-32 systems (i.e. 486, P5,
> > Ppro, PII, K6, VIA C3), while on more modern systems (all non-x86,
> > PentiumIII, Athlon, VIA C7)  those three are meant to be synonyms
> > anyway.
>
> That's not how I understood it.  Based on the code and the UC-
> explanation ioremap_uc always overrides the MTRR, which can still
> be present on more modern x86 systems.

As I understand, the point is that on PAT-enabled systems, the
normal ioremap() *also* overrides the MTRR, citing from
Documentation/x86/pat.rst:

  ====  =======  ===  =========================  =====================
  MTRR  Non-PAT  PAT  Linux ioremap value        Effective memory type
  ====  =======  ===  =========================  =====================
        PAT                                        Non-PAT |  PAT
        |PCD                                               |
        ||PWT                                              |
        |||                                                |
  WC    000      WB   _PAGE_CACHE_MODE_WB             WC   |   WC
  WC    001      WC   _PAGE_CACHE_MODE_WC             WC*  |   WC
  WC    010      UC-  _PAGE_CACHE_MODE_UC_MINUS       WC*  |   UC
  WC    011      UC   _PAGE_CACHE_MODE_UC             UC   |   UC
  ====  =======  ===  =========================  =====================

> In fact I remember a patch
> floating around very recently adding another ioremap_uc caller in
> some Atom platform device driver that works around buggy MTRR
> tables.  Also this series actually adds a new override and a few
> callers for ia64 platform code, which works very similar to x86
> based on the comments in the code.  That being said I'm not sure
> the callers in ia64 are really required, but it was the safest thing
> to do as part of this cleanup.

Ok, fair enough. Let's just go with your version for now, if only to not
hold your series up more. I'd still suggest we change atyfb to only
use ioremap_uc() on i386 and maybe ia64. I can send a patch for that.

      Arnd

  reply index

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20191029064834.23438-1-hch@lst.de>
     [not found] ` <20191029064834.23438-8-hch@lst.de>
2019-11-05 14:29   ` [PATCH 07/21] parisc: remove __ioremap Helge Deller
     [not found] ` <20191029064834.23438-18-hch@lst.de>
2019-11-07 15:29   ` [PATCH 17/21] lib: provide a simple generic ioremap implementation Palmer Dabbelt
2019-11-11 10:10   ` Arnd Bergmann
2019-11-07 20:47 ` generic-iomap tree for linux-next Christoph Hellwig
2019-11-08  2:20   ` Stephen Rothwell
2019-11-08  4:52     ` Stephen Rothwell
2019-11-08  5:14       ` Christoph Hellwig
     [not found] ` <20191029064834.23438-11-hch@lst.de>
2019-11-06 17:56   ` [PATCH 10/21] asm-generic: ioremap_uc should behave the same with and without MMU Palmer Dabbelt
2019-11-11 10:09   ` Arnd Bergmann
2019-11-11 10:15     ` Christoph Hellwig
2019-11-11 10:27       ` Arnd Bergmann [this message]
2019-11-11 10:29         ` Christoph Hellwig
2019-11-11 19:33           ` Arnd Bergmann
     [not found] ` <20191029064834.23438-13-hch@lst.de>
2019-11-07 15:29   ` [PATCH 12/21] arch: rely on asm-generic/io.h for default ioremap_* definitions Palmer Dabbelt
2019-11-11 10:10   ` Arnd Bergmann
     [not found] ` <20191029064834.23438-12-hch@lst.de>
2019-11-06 18:11   ` [PATCH 11/21] asm-generic: don't provide ioremap for CONFIG_MMU Palmer Dabbelt
2019-11-06 18:16     ` Geert Uytterhoeven
2019-11-06 18:28       ` Christoph Hellwig
2019-11-11 10:31       ` Arnd Bergmann
2019-11-11 10:29   ` Arnd Bergmann
     [not found] ` <20191029064834.23438-2-hch@lst.de>
2019-11-11 10:33   ` [PATCH 01/21] arm: remove ioremap_cached Arnd Bergmann
     [not found] ` <20191029064834.23438-4-hch@lst.de>
2019-11-11 10:36   ` [PATCH 03/21] ia64: rename ioremap_nocache to ioremap_uc Arnd Bergmann
     [not found] ` <20191029064834.23438-20-hch@lst.de>
2019-11-12  8:51   ` [PATCH 19/21] nds32: use generic ioremap Greentime Hu

Reply instructions:

You may reply publically 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=CAK8P3a0rTvfPP2LUMw8EC0xz5gfZP5+NUkoaZBJrtYYfr6YRig@mail.gmail.com \
    --to=arnd@arndb.de \
    --cc=deanbo422@gmail.com \
    --cc=green.hu@gmail.com \
    --cc=guoren@kernel.org \
    --cc=gxt@pku.edu.cn \
    --cc=hch@lst.de \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-hexagon@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux-snps-arc@lists.infradead.org \
    --cc=linux-xtensa@linux-xtensa.org \
    --cc=monstr@monstr.eu \
    --cc=nios2-dev@lists.rocketboards.org \
    --cc=openrisc@lists.librecores.org \
    --cc=sparclinux@vger.kernel.org \
    --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

Linux-m68k Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-m68k/0 linux-m68k/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-m68k linux-m68k/ https://lore.kernel.org/linux-m68k \
		linux-m68k@vger.kernel.org linux-m68k@lists.linux-m68k.org
	public-inbox-index linux-m68k

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-m68k


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git