[PATCH 3/3] x86: Add UV reserved page bios call - Kernel

This is a discussion on [PATCH 3/3] x86: Add UV reserved page bios call - Kernel ; Add UV bios call to get the address of the reserved page. Signed-off-by: Russ Anderson --- arch/x86/kernel/bios_uv.c | 11 +++++++++++ include/asm-x86/uv/bios.h | 5 ++++- 2 files changed, 15 insertions(+), 1 deletion(-) Index: linux/arch/x86/kernel/bios_uv.c ================================================== ================= --- linux.orig/arch/x86/kernel/bios_uv.c 2008-10-21 14:55:24.000000000 -0500 ...

+ Reply to Thread
Results 1 to 3 of 3

Thread: [PATCH 3/3] x86: Add UV reserved page bios call

  1. [PATCH 3/3] x86: Add UV reserved page bios call

    Add UV bios call to get the address of the reserved page.

    Signed-off-by: Russ Anderson

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

    Index: linux/arch/x86/kernel/bios_uv.c
    ================================================== =================
    --- linux.orig/arch/x86/kernel/bios_uv.c 2008-10-21 14:55:24.000000000 -0500
    +++ linux/arch/x86/kernel/bios_uv.c 2008-10-21 14:55:27.000000000 -0500
    @@ -142,6 +142,17 @@ uv_bios_change_memprotect(u64 paddr, u64
    }
    EXPORT_SYMBOL_GPL(uv_bios_change_memprotect);

    +s64
    +uv_bios_reserved_page_pa(u64 buf, u64 *cookie, u64 *addr, u64 *len)
    +{
    + s64 ret;
    +
    + ret = uv_bios_call_irqsave(UV_BIOS_GET_PARTITION_ADDR, (u64)cookie,
    + (u64)addr, buf, (u64)len, 0);
    + return ret;
    +}
    +EXPORT_SYMBOL_GPL(uv_bios_reserved_page_pa);
    +
    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:24.000000000 -0500
    +++ linux/include/asm-x86/uv/bios.h 2008-10-21 14:55:27.000000000 -0500
    @@ -35,13 +35,15 @@ enum uv_bios_cmd {
    UV_BIOS_FREQ_BASE,
    UV_BIOS_WATCHLIST_ALLOC,
    UV_BIOS_WATCHLIST_FREE,
    - UV_BIOS_MEMPROTECT
    + UV_BIOS_MEMPROTECT,
    + UV_BIOS_GET_PARTITION_ADDR
    };

    /*
    * Status values returned from a BIOS call.
    */
    enum {
    + BIOS_STATUS_MORE_PASSES = 1,
    BIOS_STATUS_SUCCESS = 0,
    BIOS_STATUS_UNIMPLEMENTED = -ENOSYS,
    BIOS_STATUS_EINVAL = -EINVAL,
    @@ -102,6 +104,7 @@ extern int uv_bios_mq_watchlist_alloc(in
    unsigned long *);
    extern int uv_bios_mq_watchlist_free(int, int);
    extern s64 uv_bios_change_memprotect(u64, u64, enum uv_memprotect);
    +extern s64 uv_bios_reserved_page_pa(u64, u64 *, u64 *, u64 *);

    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 3/3] x86: Add UV reserved page bios call


    * Russ Anderson wrote:

    > Add UV bios call to get the address of the reserved page.


    > + UV_BIOS_GET_PARTITION_ADDR


    > + BIOS_STATUS_MORE_PASSES = 1,


    what is the "reserved page"?

    And why is it called "PARTITION_ADDR" in the enum?

    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 3/3] x86: Add UV reserved page bios call

    On Wed, Oct 22, 2008 at 08:23:38AM +0200, Ingo Molnar wrote:
    >
    > * Russ Anderson wrote:
    >
    > > Add UV bios call to get the address of the reserved page.

    >
    > > + UV_BIOS_GET_PARTITION_ADDR

    >
    > > + BIOS_STATUS_MORE_PASSES = 1,

    >
    > what is the "reserved page"?
    >
    > And why is it called "PARTITION_ADDR" in the enum?


    The reserved page has partitioning configuration information.
    This call returns a pointer (physical addr) to the reserved page.

    As some background, a large SGI UV system can be run as multiple
    smaller systems (each smaller system is refered to as a partition).
    For example, a two rack system can be run as two one rack partitions.
    Each partition has a unique linux kernel (just like a stand alone system).
    The reserve page is a way of sharing configuration information about
    the other partitions in a partitioned system. The UV hardware allows
    memory to memory transfers between partitions using the GRU (Global
    Reference Unit). SGI Altix hardware has similar functionality (though
    the hardware specifics are different).

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

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

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