All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86/platform/UV: Bring back the call to map_low_mmrs in uv_system_init
@ 2016-05-04 22:39 Alex Thorlton
  2016-05-05  7:53 ` Ingo Molnar
  2016-05-05  9:43 ` [tip:x86/platform] " tip-bot for Alex Thorlton
  0 siblings, 2 replies; 4+ messages in thread
From: Alex Thorlton @ 2016-05-04 22:39 UTC (permalink / raw)
  To: linux-kernel
  Cc: Alex Thorlton, Thomas Gleixner, Ingo Molnar, H. Peter Anvin,
	Matt Fleming, Adam Buchbinder, Len Brown, Borislav Petkov,
	Russ Anderson, Dimitri Sivanich, x86

A while back, commit d394f2d9d8e1 ("x86/platform/UV: Remove EFI memmap
quirk for UV2+") changed uv_system_init to only call map_low_mmrs on
older UV1 hardware, which requires EFI_OLD_MEMMAP to be set in order to
boot.  The recent changes to the EFI memory mapping code in commit
d2f7cbe7b26a ("x86/efi: Runtime services virtual mapping") exposed some
issues with the fact that we were relying on the EFI memory mapping
mechanisms to map in our MMRs for us, after commit d394f2d9d8e1.

Rather than revert the entire commit and go back to forcing
EFI_OLD_MEMMAP on all UVs, we're going to add the call to map_low_mmrs
back into uv_system_init, and then fix up our EFI runtime calls to use
the appropriate page table.

For now, UV2+ will still need efi=old_map to boot, but there will be
other changes soon that should eliminate the need for this.

Signed-off-by: Alex Thorlton <athorlton@sgi.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Adam Buchbinder <adam.buchbinder@gmail.com>
Cc: Len Brown <len.brown@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Russ Anderson <rja@sgi.com>
Cc: Dimitri Sivanich <sivanich@sgi.com>
Cc: x86@kernel.org
---
 arch/x86/kernel/apic/x2apic_uv_x.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
index 8f4942e..d7ce96a 100644
--- a/arch/x86/kernel/apic/x2apic_uv_x.c
+++ b/arch/x86/kernel/apic/x2apic_uv_x.c
@@ -891,9 +891,7 @@ void __init uv_system_init(void)
 	}
 	pr_info("UV: Found %s hub\n", hub);
 
-	/* We now only need to map the MMRs on UV1 */
-	if (is_uv1_hub())
-		map_low_mmrs();
+	map_low_mmrs();
 
 	m_n_config.v = uv_read_local_mmr(UVH_RH_GAM_CONFIG_MMR );
 	m_val = m_n_config.s.m_skt;
-- 
1.8.5.6

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] x86/platform/UV: Bring back the call to map_low_mmrs in uv_system_init
  2016-05-04 22:39 [PATCH] x86/platform/UV: Bring back the call to map_low_mmrs in uv_system_init Alex Thorlton
@ 2016-05-05  7:53 ` Ingo Molnar
  2016-05-05 14:18   ` Alex Thorlton
  2016-05-05  9:43 ` [tip:x86/platform] " tip-bot for Alex Thorlton
  1 sibling, 1 reply; 4+ messages in thread
From: Ingo Molnar @ 2016-05-05  7:53 UTC (permalink / raw)
  To: Alex Thorlton
  Cc: linux-kernel, Thomas Gleixner, Ingo Molnar, H. Peter Anvin,
	Matt Fleming, Adam Buchbinder, Len Brown, Borislav Petkov,
	Russ Anderson, Dimitri Sivanich, x86


* Alex Thorlton <athorlton@sgi.com> wrote:

> A while back, commit d394f2d9d8e1 ("x86/platform/UV: Remove EFI memmap
> quirk for UV2+") changed uv_system_init to only call map_low_mmrs on
> older UV1 hardware, which requires EFI_OLD_MEMMAP to be set in order to
> boot.  The recent changes to the EFI memory mapping code in commit
> d2f7cbe7b26a ("x86/efi: Runtime services virtual mapping") exposed some
> issues with the fact that we were relying on the EFI memory mapping
> mechanisms to map in our MMRs for us, after commit d394f2d9d8e1.
> 
> Rather than revert the entire commit and go back to forcing
> EFI_OLD_MEMMAP on all UVs, we're going to add the call to map_low_mmrs
> back into uv_system_init, and then fix up our EFI runtime calls to use
> the appropriate page table.
> 
> For now, UV2+ will still need efi=old_map to boot, but there will be
> other changes soon that should eliminate the need for this.
> 
> Signed-off-by: Alex Thorlton <athorlton@sgi.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Cc: Matt Fleming <matt@codeblueprint.co.uk>
> Cc: Adam Buchbinder <adam.buchbinder@gmail.com>
> Cc: Len Brown <len.brown@intel.com>
> Cc: Borislav Petkov <bp@suse.de>
> Cc: Russ Anderson <rja@sgi.com>
> Cc: Dimitri Sivanich <sivanich@sgi.com>
> Cc: x86@kernel.org
> ---
>  arch/x86/kernel/apic/x2apic_uv_x.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
> index 8f4942e..d7ce96a 100644
> --- a/arch/x86/kernel/apic/x2apic_uv_x.c
> +++ b/arch/x86/kernel/apic/x2apic_uv_x.c
> @@ -891,9 +891,7 @@ void __init uv_system_init(void)
>  	}
>  	pr_info("UV: Found %s hub\n", hub);
>  
> -	/* We now only need to map the MMRs on UV1 */
> -	if (is_uv1_hub())
> -		map_low_mmrs();
> +	map_low_mmrs();
>  
>  	m_n_config.v = uv_read_local_mmr(UVH_RH_GAM_CONFIG_MMR );
>  	m_val = m_n_config.s.m_skt;

I suppose this patch should go upstream via x86/urgent, as both of the dependent 
commits are already upstream:

  d2f7cbe7b26a x86/efi: Runtime services virtual mapping
  d394f2d9d8e1 x86/platform/UV: Remove EFI memmap quirk for UV2+

... right?

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [tip:x86/platform] x86/platform/UV: Bring back the call to map_low_mmrs in uv_system_init
  2016-05-04 22:39 [PATCH] x86/platform/UV: Bring back the call to map_low_mmrs in uv_system_init Alex Thorlton
  2016-05-05  7:53 ` Ingo Molnar
@ 2016-05-05  9:43 ` tip-bot for Alex Thorlton
  1 sibling, 0 replies; 4+ messages in thread
From: tip-bot for Alex Thorlton @ 2016-05-05  9:43 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: matt, athorlton, mingo, linux-kernel, sivanich, rja, len.brown,
	tglx, adam.buchbinder, bp, hpa

Commit-ID:  08914f436bdd2ed60923f49cbc402307aba20fe4
Gitweb:     http://git.kernel.org/tip/08914f436bdd2ed60923f49cbc402307aba20fe4
Author:     Alex Thorlton <athorlton@sgi.com>
AuthorDate: Wed, 4 May 2016 17:39:52 -0500
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Thu, 5 May 2016 09:55:02 +0200

x86/platform/UV: Bring back the call to map_low_mmrs in uv_system_init

A while back the following commit:

  d394f2d9d8e1 ("x86/platform/UV: Remove EFI memmap quirk for UV2+")

changed uv_system_init() to only call map_low_mmrs() on older UV1 hardware,
which requires EFI_OLD_MEMMAP to be set in order to boot.

The recent changes to the EFI memory mapping code in:

  d2f7cbe7b26a ("x86/efi: Runtime services virtual mapping")

exposed some issues with the fact that we were relying on the EFI memory
mapping mechanisms to map in our MMRs for us, after commit d394f2d9d8e1.

Rather than revert the entire commit and go back to forcing
EFI_OLD_MEMMAP on all UVs, we're going to add the call to map_low_mmrs()
back into uv_system_init(), and then fix up our EFI runtime calls to use
the appropriate page table.

For now, UV2+ will still need efi=old_map to boot, but there will be
other changes soon that should eliminate the need for this.

Signed-off-by: Alex Thorlton <athorlton@sgi.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Adam Buchbinder <adam.buchbinder@gmail.com>
Cc: Len Brown <len.brown@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Russ Anderson <rja@sgi.com>
Cc: Dimitri Sivanich <sivanich@sgi.com>
Link: http://lkml.kernel.org/r/1462401592-120735-1-git-send-email-athorlton@sgi.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/kernel/apic/x2apic_uv_x.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
index 8f4942e..d7ce96a 100644
--- a/arch/x86/kernel/apic/x2apic_uv_x.c
+++ b/arch/x86/kernel/apic/x2apic_uv_x.c
@@ -891,9 +891,7 @@ void __init uv_system_init(void)
 	}
 	pr_info("UV: Found %s hub\n", hub);
 
-	/* We now only need to map the MMRs on UV1 */
-	if (is_uv1_hub())
-		map_low_mmrs();
+	map_low_mmrs();
 
 	m_n_config.v = uv_read_local_mmr(UVH_RH_GAM_CONFIG_MMR );
 	m_val = m_n_config.s.m_skt;

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] x86/platform/UV: Bring back the call to map_low_mmrs in uv_system_init
  2016-05-05  7:53 ` Ingo Molnar
@ 2016-05-05 14:18   ` Alex Thorlton
  0 siblings, 0 replies; 4+ messages in thread
From: Alex Thorlton @ 2016-05-05 14:18 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Alex Thorlton, linux-kernel, Thomas Gleixner, Ingo Molnar,
	H. Peter Anvin, Matt Fleming, Adam Buchbinder, Len Brown,
	Borislav Petkov, Russ Anderson, Dimitri Sivanich, x86

On Thu, May 05, 2016 at 09:53:29AM +0200, Ingo Molnar wrote:
> I suppose this patch should go upstream via x86/urgent, as both of the dependent 
> commits are already upstream:
> 
>   d2f7cbe7b26a x86/efi: Runtime services virtual mapping
>   d394f2d9d8e1 x86/platform/UV: Remove EFI memmap quirk for UV2+
> 
> ... right?

Yes - we'd *really* like to see this make it into 4.6 if possible.

Thanks, Ingo!

- Alex

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-05-05 14:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-04 22:39 [PATCH] x86/platform/UV: Bring back the call to map_low_mmrs in uv_system_init Alex Thorlton
2016-05-05  7:53 ` Ingo Molnar
2016-05-05 14:18   ` Alex Thorlton
2016-05-05  9:43 ` [tip:x86/platform] " tip-bot for Alex Thorlton

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.