LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH 2/3] x86: Add UV memory protection bios call
@ 2008-10-21 20:01 Russ Anderson
  2008-10-22  6:22 ` Ingo Molnar
  0 siblings, 1 reply; 3+ messages in thread
From: Russ Anderson @ 2008-10-21 20:01 UTC (permalink / raw)
  To: Ingo Molnar, tglx, linux-kernel; +Cc: Russ Anderson

Add UV bios call to change memory protections.

Signed-off-by: Russ Anderson <rja@sgi.com>

---
 arch/x86/kernel/bios_uv.c |    8 ++++++++
 include/asm-x86/uv/bios.h |   10 +++++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)

Index: linux/arch/x86/kernel/bios_uv.c
===================================================================
--- linux.orig/arch/x86/kernel/bios_uv.c	2008-10-21 14:55:18.000000000 -0500
+++ linux/arch/x86/kernel/bios_uv.c	2008-10-21 14:55:24.000000000 -0500
@@ -134,6 +134,14 @@ uv_bios_mq_watchlist_free(int blade, int
 }
 EXPORT_SYMBOL_GPL(uv_bios_mq_watchlist_free);
 
+s64
+uv_bios_change_memprotect(u64 paddr, u64 len, enum uv_memprotect perms)
+{
+	return uv_bios_call_irqsave(UV_BIOS_MEMPROTECT, paddr, len,
+					perms, 0, 0);
+}
+EXPORT_SYMBOL_GPL(uv_bios_change_memprotect);
+
 s64 uv_bios_freq_base(u64 clock_type, u64 *ticks_per_second)
 {
 	return uv_bios_call(UV_BIOS_FREQ_BASE, clock_type,
Index: linux/include/asm-x86/uv/bios.h
===================================================================
--- linux.orig/include/asm-x86/uv/bios.h	2008-10-21 14:55:18.000000000 -0500
+++ linux/include/asm-x86/uv/bios.h	2008-10-21 14:55:24.000000000 -0500
@@ -34,7 +34,8 @@ enum uv_bios_cmd {
 	UV_BIOS_GET_SN_INFO,
 	UV_BIOS_FREQ_BASE,
 	UV_BIOS_WATCHLIST_ALLOC,
-	UV_BIOS_WATCHLIST_FREE
+	UV_BIOS_WATCHLIST_FREE,
+	UV_BIOS_MEMPROTECT
 };
 
 /*
@@ -82,6 +83,12 @@ union uv_watchlist_u {
 	};
 };
 
+enum uv_memprotect {
+	UV_MEMPROT_RESTRICT_ACCESS,
+	UV_MEMPROT_ALLOW_AMO,
+	UV_MEMPROT_ALLOW_RW
+};
+
 /*
  * bios calls have 6 parameters
  */
@@ -94,6 +101,7 @@ extern s64 uv_bios_freq_base(u64, u64 *)
 extern int uv_bios_mq_watchlist_alloc(int, void *, unsigned int,
 					unsigned long *);
 extern int uv_bios_mq_watchlist_free(int, int);
+extern s64 uv_bios_change_memprotect(u64, u64, enum uv_memprotect);
 
 extern void uv_bios_init(void);
 
-- 
Russ Anderson, OS RAS/Partitioning Project Lead  
SGI - Silicon Graphics Inc          rja@sgi.com

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

* Re: [PATCH 2/3] x86: Add UV memory protection bios call
  2008-10-21 20:01 [PATCH 2/3] x86: Add UV memory protection bios call Russ Anderson
@ 2008-10-22  6:22 ` Ingo Molnar
  2008-10-22 14:40   ` Russ Anderson
  0 siblings, 1 reply; 3+ messages in thread
From: Ingo Molnar @ 2008-10-22  6:22 UTC (permalink / raw)
  To: Russ Anderson; +Cc: tglx, linux-kernel, H. Peter Anvin, Andrew Morton


* Russ Anderson <rja@sgi.com> wrote:

> Add UV bios call to change memory protections.
> 
> Signed-off-by: Russ Anderson <rja@sgi.com>
> 
> ---
>  arch/x86/kernel/bios_uv.c |    8 ++++++++
>  include/asm-x86/uv/bios.h |   10 +++++++++-
>  2 files changed, 17 insertions(+), 1 deletion(-)

> -	UV_BIOS_WATCHLIST_FREE
> +	UV_BIOS_WATCHLIST_FREE,
> +	UV_BIOS_MEMPROTECT

> +enum uv_memprotect {
> +	UV_MEMPROT_RESTRICT_ACCESS,
> +	UV_MEMPROT_ALLOW_AMO,
> +	UV_MEMPROT_ALLOW_RW

hm, what does this do? Does it twiddle the southbridge to protect given 
physical RAM rages from the CPU altogether?

	Ingo

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

* Re: [PATCH 2/3] x86: Add UV memory protection bios call
  2008-10-22  6:22 ` Ingo Molnar
@ 2008-10-22 14:40   ` Russ Anderson
  0 siblings, 0 replies; 3+ messages in thread
From: Russ Anderson @ 2008-10-22 14:40 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: tglx, linux-kernel, H. Peter Anvin, Andrew Morton

On Wed, Oct 22, 2008 at 08:22:35AM +0200, Ingo Molnar wrote:
> 
> * Russ Anderson <rja@sgi.com> wrote:
> 
> > Add UV bios call to change memory protections.
> > 
> > Signed-off-by: Russ Anderson <rja@sgi.com>
> > 
> > ---
> >  arch/x86/kernel/bios_uv.c |    8 ++++++++
> >  include/asm-x86/uv/bios.h |   10 +++++++++-
> >  2 files changed, 17 insertions(+), 1 deletion(-)
> 
> > -	UV_BIOS_WATCHLIST_FREE
> > +	UV_BIOS_WATCHLIST_FREE,
> > +	UV_BIOS_MEMPROTECT
> 
> > +enum uv_memprotect {
> > +	UV_MEMPROT_RESTRICT_ACCESS,
> > +	UV_MEMPROT_ALLOW_AMO,
> > +	UV_MEMPROT_ALLOW_RW
> 
> hm, what does this do? Does it twiddle the southbridge to protect given 
> physical RAM rages from the CPU altogether?

The SGI UV hardware has memory protection to control what types of memory
references are allowed to specific physical RAM ranges.  This bios call
is used to change the protection settings.

This is used by the xp driver (drivers/misc/sgi-xp/xp_sn2.c).
Dean Nelson submitted a patch yesterday that uses this bios call.

http://marc.info/?l=linux-kernel&m=122462425819289&w=2

Thanks,
-- 
Russ Anderson, OS RAS/Partitioning Project Lead  
SGI - Silicon Graphics Inc          rja@sgi.com

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

end of thread, other threads:[~2008-10-22 14:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-10-21 20:01 [PATCH 2/3] x86: Add UV memory protection bios call Russ Anderson
2008-10-22  6:22 ` Ingo Molnar
2008-10-22 14:40   ` Russ Anderson

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).