All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luis Chamberlain <mcgrof@kernel.org>
To: Daniel Vetter <daniel.vetter@ffwll.ch>, Juergen Gross <jgross@suse.com>
Cc: Linux Fbdev development list <linux-fbdev@vger.kernel.org>,
	linux-ia64@vger.kernel.org,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Lee Jones <lee.jones@linaro.org>, Christoph Hellwig <hch@lst.de>,
	X86 ML <x86@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Tuowen Zhao <ztuowen@gmail.com>,
	Fenghua Yu <fenghua.yu@intel.com>, Arnd Bergmann <arnd@arndb.de>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	"Luis R. Rodriguez" <mcgrof@suse.com>,
	Borislav Petkov <bp@alien8.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Tony Luck <tony.luck@intel.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	AceLan Kao <acelan.kao@canonical.com>,
	Souptick Joarder <jrdr.linux@gmail.com>,
	Roman Gilg <subdiff@gmail.com>
Subject: Re: [PATCH] video: fbdev: atyfb: only use ioremap_uc() on i386 and ia64
Date: Tue, 12 Nov 2019 22:24:23 +0000	[thread overview]
Message-ID: <20191112222423.GO11244@42.do-not-panic.com> (raw)
In-Reply-To: <CAKMK7uFaA607rOS6x_FWjXQ2+Qdm8dQ1dQ+Oi-9if_Qh_wHWPg@mail.gmail.com>

On Tue, Nov 12, 2019 at 03:26:35PM +0100, Daniel Vetter wrote:
> On Tue, Nov 12, 2019 at 3:06 PM Christoph Hellwig <hch@lst.de> wrote:
> > On Tue, Nov 12, 2019 at 02:04:16PM +0100, Daniel Vetter wrote:
> > > Wut ... Maybe I'm missing something, but from how we use mtrr in other
> > > gpu drivers it's a) either you use MTRR because that's all you got or
> > > b) you use pat. Mixing both sounds like a pretty bad idea, since if
> > > you need MTRR for performance (because you dont have PAT) then you
> > > can't fix the wc with the PAT-based ioremap_uc. And if you have PAT,
> > > then you don't really need an MTRR to get wc.
> > >
> > > So I'd revert this patch from Luis and ...
> >
> > Sounds great to me..
> >
> > > ... apply this one. Since the same reasoning should apply to anything
> > > that's running on any cpu with PAT.
> >
> > Can you take a look at "mfd: intel-lpss: Use devm_ioremap_uc for MMIO"
> > in linux-next, which also looks rather fishy to me?  Can't we use
> > the MTRR APIs to override the broken BIOS MTRR setup there as well?
> 
> Hm so that's way out of my knowledge, but I think mtrr_cleanup() was
> supposed to fix up messy/broken MTRR setups by the bios. So maybe they
> simply didn't enable that in their .config with CONFIG_MTRR_SANITIZER.

I had originally suggested to just make the driver build on x86, but an
atlternative was to provide the call for the missing architecture.

> An explicit cleanup is currently not possible for drivers, since the
> only interface exported to drivers is arch_phys_wc_add/del (which
> short-circuits if pat works since you don't need mtrr in that case).

Right, the goal was to not call MTRR directly.

> Adding everyone from that commit, plus Luis. Drivers really shouldn't
> assume/work around the bios setting up superflous/wrong MTRR.

Such things are needed, otherwise some systems may not boot...

> > With that we could kill ioremap_uc entirely.
> 
> So yeah removing that seems definitely like the right thing.

I think this would be possible if we could flop ioremap_nocache() to UC
instead of UC- on x86. Otherwise, I can't see how we can remove this by
still not allowing direct MTRR calls.

  Luis

WARNING: multiple messages have this Message-ID (diff)
From: Luis Chamberlain <mcgrof@kernel.org>
To: Daniel Vetter <daniel.vetter@ffwll.ch>, Juergen Gross <jgross@suse.com>
Cc: Christoph Hellwig <hch@lst.de>, Tuowen Zhao <ztuowen@gmail.com>,
	AceLan Kao <acelan.kao@canonical.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Roman Gilg <subdiff@gmail.com>, Lee Jones <lee.jones@linaro.org>,
	"Luis R. Rodriguez" <mcgrof@suse.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	X86 ML <x86@kernel.org>, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	linux-ia64@vger.kernel.org, Tony Luck <tony.luck@intel.com>,
	Fenghua Yu <fenghua.yu@intel.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Souptick Joarder <jrdr.linux@gmail.com>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Linux Fbdev development list <linux-fbdev@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] video: fbdev: atyfb: only use ioremap_uc() on i386 and ia64
Date: Tue, 12 Nov 2019 22:24:23 +0000	[thread overview]
Message-ID: <20191112222423.GO11244@42.do-not-panic.com> (raw)
In-Reply-To: <CAKMK7uFaA607rOS6x_FWjXQ2+Qdm8dQ1dQ+Oi-9if_Qh_wHWPg@mail.gmail.com>

On Tue, Nov 12, 2019 at 03:26:35PM +0100, Daniel Vetter wrote:
> On Tue, Nov 12, 2019 at 3:06 PM Christoph Hellwig <hch@lst.de> wrote:
> > On Tue, Nov 12, 2019 at 02:04:16PM +0100, Daniel Vetter wrote:
> > > Wut ... Maybe I'm missing something, but from how we use mtrr in other
> > > gpu drivers it's a) either you use MTRR because that's all you got or
> > > b) you use pat. Mixing both sounds like a pretty bad idea, since if
> > > you need MTRR for performance (because you dont have PAT) then you
> > > can't fix the wc with the PAT-based ioremap_uc. And if you have PAT,
> > > then you don't really need an MTRR to get wc.
> > >
> > > So I'd revert this patch from Luis and ...
> >
> > Sounds great to me..
> >
> > > ... apply this one. Since the same reasoning should apply to anything
> > > that's running on any cpu with PAT.
> >
> > Can you take a look at "mfd: intel-lpss: Use devm_ioremap_uc for MMIO"
> > in linux-next, which also looks rather fishy to me?  Can't we use
> > the MTRR APIs to override the broken BIOS MTRR setup there as well?
> 
> Hm so that's way out of my knowledge, but I think mtrr_cleanup() was
> supposed to fix up messy/broken MTRR setups by the bios. So maybe they
> simply didn't enable that in their .config with CONFIG_MTRR_SANITIZER.

I had originally suggested to just make the driver build on x86, but an
atlternative was to provide the call for the missing architecture.

> An explicit cleanup is currently not possible for drivers, since the
> only interface exported to drivers is arch_phys_wc_add/del (which
> short-circuits if pat works since you don't need mtrr in that case).

Right, the goal was to not call MTRR directly.

> Adding everyone from that commit, plus Luis. Drivers really shouldn't
> assume/work around the bios setting up superflous/wrong MTRR.

Such things are needed, otherwise some systems may not boot...

> > With that we could kill ioremap_uc entirely.
> 
> So yeah removing that seems definitely like the right thing.

I think this would be possible if we could flop ioremap_nocache() to UC
instead of UC- on x86. Otherwise, I can't see how we can remove this by
still not allowing direct MTRR calls.

  Luis

WARNING: multiple messages have this Message-ID (diff)
From: Luis Chamberlain <mcgrof@kernel.org>
To: Daniel Vetter <daniel.vetter@ffwll.ch>, Juergen Gross <jgross@suse.com>
Cc: Linux Fbdev development list <linux-fbdev@vger.kernel.org>,
	linux-ia64@vger.kernel.org,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Lee Jones <lee.jones@linaro.org>, Christoph Hellwig <hch@lst.de>,
	X86 ML <x86@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Tuowen Zhao <ztuowen@gmail.com>,
	Fenghua Yu <fenghua.yu@intel.com>, Arnd Bergmann <arnd@arndb.de>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	"Luis R. Rodriguez" <mcgrof@suse.com>,
	Borislav Petkov <bp@alien8.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Tony Luck <tony.luck@intel.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	AceLan Kao <acelan.kao@canonical.com>,
	Souptick Joarder <jrdr.linux@gmail.com>,
	Roman Gilg <subdiff@gmail.com>
Subject: Re: [PATCH] video: fbdev: atyfb: only use ioremap_uc() on i386 and ia64
Date: Tue, 12 Nov 2019 22:24:23 +0000	[thread overview]
Message-ID: <20191112222423.GO11244@42.do-not-panic.com> (raw)
In-Reply-To: <CAKMK7uFaA607rOS6x_FWjXQ2+Qdm8dQ1dQ+Oi-9if_Qh_wHWPg@mail.gmail.com>

On Tue, Nov 12, 2019 at 03:26:35PM +0100, Daniel Vetter wrote:
> On Tue, Nov 12, 2019 at 3:06 PM Christoph Hellwig <hch@lst.de> wrote:
> > On Tue, Nov 12, 2019 at 02:04:16PM +0100, Daniel Vetter wrote:
> > > Wut ... Maybe I'm missing something, but from how we use mtrr in other
> > > gpu drivers it's a) either you use MTRR because that's all you got or
> > > b) you use pat. Mixing both sounds like a pretty bad idea, since if
> > > you need MTRR for performance (because you dont have PAT) then you
> > > can't fix the wc with the PAT-based ioremap_uc. And if you have PAT,
> > > then you don't really need an MTRR to get wc.
> > >
> > > So I'd revert this patch from Luis and ...
> >
> > Sounds great to me..
> >
> > > ... apply this one. Since the same reasoning should apply to anything
> > > that's running on any cpu with PAT.
> >
> > Can you take a look at "mfd: intel-lpss: Use devm_ioremap_uc for MMIO"
> > in linux-next, which also looks rather fishy to me?  Can't we use
> > the MTRR APIs to override the broken BIOS MTRR setup there as well?
> 
> Hm so that's way out of my knowledge, but I think mtrr_cleanup() was
> supposed to fix up messy/broken MTRR setups by the bios. So maybe they
> simply didn't enable that in their .config with CONFIG_MTRR_SANITIZER.

I had originally suggested to just make the driver build on x86, but an
atlternative was to provide the call for the missing architecture.

> An explicit cleanup is currently not possible for drivers, since the
> only interface exported to drivers is arch_phys_wc_add/del (which
> short-circuits if pat works since you don't need mtrr in that case).

Right, the goal was to not call MTRR directly.

> Adding everyone from that commit, plus Luis. Drivers really shouldn't
> assume/work around the bios setting up superflous/wrong MTRR.

Such things are needed, otherwise some systems may not boot...

> > With that we could kill ioremap_uc entirely.
> 
> So yeah removing that seems definitely like the right thing.

I think this would be possible if we could flop ioremap_nocache() to UC
instead of UC- on x86. Otherwise, I can't see how we can remove this by
still not allowing direct MTRR calls.

  Luis
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2019-11-12 22:24 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-11 19:22 [PATCH] video: fbdev: atyfb: only use ioremap_uc() on i386 and ia64 Arnd Bergmann
2019-11-11 19:22 ` Arnd Bergmann
2019-11-11 19:22 ` Arnd Bergmann
2019-11-11 19:22 ` Arnd Bergmann
2019-11-12 10:55 ` Christoph Hellwig
2019-11-12 10:55   ` Christoph Hellwig
2019-11-12 10:55   ` Christoph Hellwig
2019-11-12 13:04   ` Daniel Vetter
2019-11-12 13:04     ` Daniel Vetter
2019-11-12 13:04     ` Daniel Vetter
2019-11-12 14:06     ` Christoph Hellwig
2019-11-12 14:06       ` Christoph Hellwig
2019-11-12 14:06       ` Christoph Hellwig
2019-11-12 14:06       ` Christoph Hellwig
2019-11-12 14:26       ` Daniel Vetter
2019-11-12 14:26         ` Daniel Vetter
2019-11-12 14:26         ` Daniel Vetter
2019-11-12 22:24         ` Luis Chamberlain [this message]
2019-11-12 22:24           ` Luis Chamberlain
2019-11-12 22:24           ` Luis Chamberlain
2019-11-13  7:27           ` Christoph Hellwig
2019-11-13  7:27             ` Christoph Hellwig
2019-11-13  7:27             ` Christoph Hellwig
2019-11-13  7:27             ` Christoph Hellwig
2019-11-13  7:38             ` Arnd Bergmann
2019-11-13  7:38               ` Arnd Bergmann
2019-11-13  7:38               ` Arnd Bergmann
2019-11-13  7:38               ` Arnd Bergmann
2019-11-13  7:38               ` Arnd Bergmann
2019-11-13  9:31               ` Andy Shevchenko
2019-11-13  9:31                 ` Andy Shevchenko
2019-11-13  9:31                 ` Andy Shevchenko
2019-11-13  9:31                 ` Andy Shevchenko
2019-11-13  9:31                 ` Andy Shevchenko
2019-11-13 18:45                 ` Luis Chamberlain
2019-11-13 18:45                   ` Luis Chamberlain
2019-11-13 18:45                   ` Luis Chamberlain
2019-11-12 22:17       ` Luis Chamberlain
2019-11-12 22:17         ` Luis Chamberlain
2019-11-12 22:17         ` Luis Chamberlain

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=20191112222423.GO11244@42.do-not-panic.com \
    --to=mcgrof@kernel.org \
    --cc=acelan.kao@canonical.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=arnd@arndb.de \
    --cc=b.zolnierkie@samsung.com \
    --cc=bp@alien8.de \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=fenghua.yu@intel.com \
    --cc=hch@lst.de \
    --cc=hpa@zytor.com \
    --cc=jgross@suse.com \
    --cc=jrdr.linux@gmail.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mcgrof@suse.com \
    --cc=mika.westerberg@linux.intel.com \
    --cc=mingo@redhat.com \
    --cc=subdiff@gmail.com \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    --cc=ztuowen@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.