All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Matt Domsch <Matt_Domsch@dell.com>,
	linux-ia64@vger.kernel.org,
	openipmi-developer@lists.sourceforge.net, akpm@osdl.org,
	"Tolentino, Matthew E" <matthew.e.tolentino@intel.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2.6.15] ia64: use i386 dmi_scan.c
Date: Wed, 18 Jan 2006 02:32:19 +0000	[thread overview]
Message-ID: <200601180332.19692.ak@suse.de> (raw)
In-Reply-To: <200601171717.03192.bjorn.helgaas@hp.com>

On Wednesday 18 January 2006 01:17, Bjorn Helgaas wrote:
> On Friday 13 January 2006 17:24, Bjorn Helgaas wrote:
> > ... the
> > DMI stuff crashes HP sx2000 (and probably sx1000) boxes, probably
> > because of some memory attribute problem.  So I'll have more
> > feedback after I debug that ;-)
>
> It *is* a memory attribute problem.  The current code always calls
> ioremap() on efi.smbios.  The first problem is that this is a
> physical address on x86, but a virtual address on ia64.
>
> The second problem is that we don't check the supported attributes
> for the SMBIOS table.  On HP sx1000/sx2000, these tables are in system
> memory, which doesn't support uncacheable access, so iorem
> ap() does the wrong thing.

At least on x86-64/i386 the ioremap is actually cached unless a MTRR
changes it, but it normally doesn't here. If one wants to force uncached
access one has to use ioremap_uncached(). You're saying IA64 ioremap
forces uncached access? That seems weird.

> +	if (efi_enabled) {
> +		if (efi_mem_attributes(base & EFI_MEMORY_WB)) {
> +			iomem = 0;
> +			buf = (u8 *) phys_to_virt(base);
> +		} else if (efi_mem_attributes(base & EFI_MEMORY_UC))
> +			buf = dmi_ioremap(base, len);
> +		else
> +			buf = NULL;

I would expect your ioremap to already do such a lookup. That is at least
how MTRRs on i386/x86-64 work.  If it does not how about you fix
ioremap()? Or provide a suitable ia64 dmi_ioremap, but it's likely
better to do it generally.

Regarding physical vs virtual efi.smbios -- it sounds nasty to have such
a difference in the EFI support for different architectures. Matthew, do
you have a suggestion how this can be unified?

-Andi

WARNING: multiple messages have this Message-ID (diff)
From: Andi Kleen <ak@suse.de>
To: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Matt Domsch <Matt_Domsch@dell.com>,
	linux-ia64@vger.kernel.org,
	openipmi-developer@lists.sourceforge.net, akpm@osdl.org,
	"Tolentino, Matthew E" <matthew.e.tolentino@intel.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2.6.15] ia64: use i386 dmi_scan.c
Date: Wed, 18 Jan 2006 03:32:19 +0100	[thread overview]
Message-ID: <200601180332.19692.ak@suse.de> (raw)
In-Reply-To: <200601171717.03192.bjorn.helgaas@hp.com>

On Wednesday 18 January 2006 01:17, Bjorn Helgaas wrote:
> On Friday 13 January 2006 17:24, Bjorn Helgaas wrote:
> > ... the
> > DMI stuff crashes HP sx2000 (and probably sx1000) boxes, probably
> > because of some memory attribute problem.  So I'll have more
> > feedback after I debug that ;-)
>
> It *is* a memory attribute problem.  The current code always calls
> ioremap() on efi.smbios.  The first problem is that this is a
> physical address on x86, but a virtual address on ia64.
>
> The second problem is that we don't check the supported attributes
> for the SMBIOS table.  On HP sx1000/sx2000, these tables are in system
> memory, which doesn't support uncacheable access, so iorem
> ap() does the wrong thing.

At least on x86-64/i386 the ioremap is actually cached unless a MTRR
changes it, but it normally doesn't here. If one wants to force uncached
access one has to use ioremap_uncached(). You're saying IA64 ioremap
forces uncached access? That seems weird.

> +	if (efi_enabled) {
> +		if (efi_mem_attributes(base & EFI_MEMORY_WB)) {
> +			iomem = 0;
> +			buf = (u8 *) phys_to_virt(base);
> +		} else if (efi_mem_attributes(base & EFI_MEMORY_UC))
> +			buf = dmi_ioremap(base, len);
> +		else
> +			buf = NULL;

I would expect your ioremap to already do such a lookup. That is at least
how MTRRs on i386/x86-64 work.  If it does not how about you fix
ioremap()? Or provide a suitable ia64 dmi_ioremap, but it's likely
better to do it generally.

Regarding physical vs virtual efi.smbios -- it sounds nasty to have such
a difference in the EFI support for different architectures. Matthew, do
you have a suggestion how this can be unified?

-Andi

  reply	other threads:[~2006-01-18  2:32 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-04 22:16 [PATCH 2.6.15 1/2] ia64: use i386 dmi_scan.c Matt Domsch
2006-01-04 22:16 ` Matt Domsch
2006-01-04 22:36 ` Alex Williamson
2006-01-04 22:36   ` Alex Williamson
2006-01-04 23:29   ` Matt Domsch
2006-01-04 23:29     ` Matt Domsch
2006-01-05 16:41     ` Bjorn Helgaas
2006-01-05 16:41       ` Bjorn Helgaas
2006-01-05 17:37       ` Matt Domsch
2006-01-05 17:37         ` Matt Domsch
2006-01-05 17:54         ` Bjorn Helgaas
2006-01-05 17:54           ` Bjorn Helgaas
2006-01-06  0:02           ` Bjorn Helgaas
2006-01-06  0:02             ` Bjorn Helgaas
2006-01-06 17:15             ` Matt Domsch
2006-01-06 17:15               ` Matt Domsch
2006-01-04 22:55 ` Alan Cox
2006-01-06 17:21 ` [PATCH 2.6.15] " Matt Domsch
2006-01-06 17:21   ` Matt Domsch
2006-01-06 19:03   ` Tolentino, Matthew E
2006-01-06 19:03     ` Tolentino, Matthew E
2006-01-06 22:36     ` Matt Domsch
2006-01-06 22:36       ` Matt Domsch
2006-01-06 22:39   ` Matt Domsch
2006-01-06 22:39     ` Matt Domsch
2006-01-14  0:24     ` Bjorn Helgaas
2006-01-14  0:24       ` Bjorn Helgaas
2006-01-14  0:45       ` Alan Cox
2006-01-14  1:19       ` Andi Kleen
2006-01-14  1:19         ` Andi Kleen
2006-01-14  5:05         ` Bjorn Helgaas
2006-01-14  5:05           ` Bjorn Helgaas
2006-01-18  0:17       ` Bjorn Helgaas
2006-01-18  0:17         ` Bjorn Helgaas
2006-01-18  2:32         ` Andi Kleen [this message]
2006-01-18  2:32           ` Andi Kleen
2006-01-18 15:53           ` Bjorn Helgaas
2006-01-18 15:53             ` Bjorn Helgaas
2006-01-18 17:29         ` Bjorn Helgaas
2006-01-18 17:29           ` Bjorn Helgaas
2006-01-18 18:11           ` [Openipmi-developer] " Matt Domsch
2006-01-18 18:11             ` Matt Domsch
2006-01-19 20:10             ` [PATCH 0/5] ia64 ioremap, DMI, EFI system table Bjorn Helgaas
2006-01-19 20:10               ` Bjorn Helgaas
2006-01-19 20:10               ` Bjorn Helgaas
2006-01-19 20:12               ` [PATCH 1/5] EFI, /dev/mem: simplify efi_mem_attribute_range() Bjorn Helgaas
2006-01-19 20:12                 ` Bjorn Helgaas
2006-01-19 20:12                 ` Bjorn Helgaas
2006-01-19 20:12               ` [PATCH 2/5] ia64: ioremap: check EFI for valid memory attributes Bjorn Helgaas
2006-01-19 20:12                 ` Bjorn Helgaas
2006-01-19 20:12                 ` Bjorn Helgaas
2006-01-19 20:13               ` [PATCH 3/5] DMI: only ioremap stuff we actually need Bjorn Helgaas
2006-01-19 20:13                 ` Bjorn Helgaas
2006-01-19 20:13               ` [PATCH 4/5] EFI: keep physical table addresses in efi structure Bjorn Helgaas
2006-01-19 20:13                 ` Bjorn Helgaas
2006-01-19 20:14               ` [PATCH 5/5] ACPI: clean up memory attribute checking for map/read/write Bjorn Helgaas
2006-01-19 20:14                 ` Bjorn Helgaas
2006-01-19 20:14                 ` Bjorn Helgaas
2006-01-30 17:11               ` [Openipmi-developer] [PATCH 0/5] ia64 ioremap, DMI, EFI system table Matt Domsch
2006-01-30 17:11                 ` Matt Domsch
2006-03-17 23:54     ` [PATCH 2.6.15] ia64: use i386 dmi_scan.c Andrew Morton
2006-03-17 23:54       ` Andrew Morton
2006-03-18 14:56       ` Matt Domsch
2006-03-18 14:56         ` Matt Domsch
2006-03-18 15:43         ` Matt Domsch
2006-03-18 15:43           ` Matt Domsch
2006-03-18 19:51           ` Andrew Morton
2006-03-18 19:51             ` Andrew Morton
2006-01-19 14:19   ` Tolentino, Matthew E
2006-01-19 14:19     ` Tolentino, Matthew E

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=200601180332.19692.ak@suse.de \
    --to=ak@suse.de \
    --cc=Matt_Domsch@dell.com \
    --cc=akpm@osdl.org \
    --cc=bjorn.helgaas@hp.com \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matthew.e.tolentino@intel.com \
    --cc=openipmi-developer@lists.sourceforge.net \
    /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.