[PATCH 2/3] x86: Add UV memory protection bios call - Kernel

This is a discussion on [PATCH 2/3] x86: Add UV memory protection bios call - Kernel ; Add UV bios call to change memory protections. Signed-off-by: Russ Anderson --- 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 ...

+ Reply to Thread
Results 1 to 3 of 3

Thread: [PATCH 2/3] x86: Add UV memory protection bios call

  1. [PATCH 2/3] x86: Add UV memory protection bios call

    Add UV bios call to change memory protections.

    Signed-off-by: Russ Anderson

    ---
    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
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  2. Re: [PATCH 2/3] x86: Add UV memory protection bios call


    * Russ Anderson wrote:

    > Add UV bios call to change memory protections.
    >
    > Signed-off-by: Russ Anderson
    >
    > ---
    > 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
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  3. Re: [PATCH 2/3] x86: Add UV memory protection bios call

    On Wed, Oct 22, 2008 at 08:22:35AM +0200, Ingo Molnar wrote:
    >
    > * Russ Anderson wrote:
    >
    > > Add UV bios call to change memory protections.
    > >
    > > Signed-off-by: Russ Anderson
    > >
    > > ---
    > > 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
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

+ Reply to Thread