07 Jan, 2009

1 commit


17 Dec, 2008

1 commit


10 Dec, 2008

1 commit


03 Dec, 2008

1 commit

  • If xpc.ko and gru.ko are both statically linked into the kernel, then
    xpc_init() can get called before gru_init() and make a call to one of the
    gru's exported functions before the gru has initialized itself. The end
    result is a NULL dereference.

    Signed-off-by: Dean Nelson
    Signed-off-by: Linus Torvalds

    Dean Nelson
     

20 Nov, 2008

2 commits


11 Nov, 2008

1 commit

  • Impact: fix double entry creation in /proc

    There is a collision between two UV functions:
    both uv_ptc_init() and gru_proc_init() try to make /proc/sgi_uv

    So move it's creation to a single place: uv_system_init()

    Signed-off-by: Cliff Wickman
    Signed-off-by: Ingo Molnar

    Cliff Wickman
     

17 Oct, 2008

2 commits

  • A few minor updates for the GRU driver.
    - documentation changes found in code reviews
    - changes to #ifdefs to make them recognized by "unifdef"
    (used in simulator testing)
    - change GRU context load/unload to prefetch data

    [akpm@linux-foundation.org: fix typo in comment]
    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • The kernel.h macro DIV_ROUND_UP performs the computation (((n) + (d) - 1) /
    (d)) but is perhaps more readable.

    An extract of the semantic patch that makes this change is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @haskernel@
    @@

    #include

    @depends on haskernel@
    expression n,d;
    @@

    (
    - (n + d - 1) / d
    + DIV_ROUND_UP(n,d)
    |
    - (n + (d - 1)) / d
    + DIV_ROUND_UP(n,d)
    )

    @depends on haskernel@
    expression n,d;
    @@

    - DIV_ROUND_UP((n),d)
    + DIV_ROUND_UP(n,d)

    @depends on haskernel@
    expression n,d;
    @@

    - DIV_ROUND_UP(n,(d))
    + DIV_ROUND_UP(n,d)
    //

    Signed-off-by: Julia Lawall
    Cc: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Julia Lawall
     

14 Sep, 2008

1 commit

  • If you are on ia64 and you modprobe xpc then modprobe -r xpc, you
    immediately get a panic. xpc depends on xp which depends on gru for a
    symbol. That symbol is only used when we are running on UV hardware.

    Currently, the GRU driver detects we are not on UV hardware and does no
    initializing. It does not do the same check when unloading. As a result,
    the gru driver attempts to tear down stuff that was not setup.

    This is a simple two-line workaround to get us through this release. Once
    2.6.28 is opened, we need to rework the symbols that xp is depending on
    from gru so the gru driver can properly fail to load when hardware is not
    available.

    Signed-off-by: Robin Holt
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robin Holt
     

13 Aug, 2008

1 commit

  • Fix preprocessor symbol so that sparse sees it and does not generate
    errors:

    drivers/misc/sgi-gru/grutables.h:286:2: error: "Unsupported architecture"
    drivers/misc/sgi-gru/grutables.h:286:2: error: "Unsupported architecture"
    drivers/misc/sgi-gru/grutables.h:286:2: error: "Unsupported architecture"
    drivers/misc/sgi-gru/grutables.h:286:2: error: "Unsupported architecture"
    drivers/misc/sgi-gru/grutlbpurge.c:185:11: error: undefined identifier 'GRUREGION'
    drivers/misc/sgi-gru/grutables.h:286:2: error: "Unsupported architecture"
    drivers/misc/sgi-gru/grutables.h:286:2: error: "Unsupported architecture"

    Signed-off-by: Randy Dunlap
    Cc: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

06 Aug, 2008

1 commit


31 Jul, 2008

12 commits

  • Fixes problems identified in a code review:
    - add comment with high level dscription of the GRU
    - prepend "gru_" to all global names
    - delete unused function
    - couple of trivial bug fixes

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Jack Steiner
    Cc: Nick Piggin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • This patch adds the GRU driver makefile

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • This file contains the functions for handlinf GRU TLB flushing, This
    includes functions to handle the MMUOPS callouts.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • This file externalizes some GRU state & statistics to the user using the
    /proc file system.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • This file contains functions realted to managing GRU resources provided to
    the user. Examples include GRU context assignment, load, unload,
    migration, etc..

    Signed-off-by: Jack Steiner
    Cc: Nick Piggin
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • This file contains functions for handling services provided to other
    kernel modules that use the GRU.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • This file contains the functions that manage GRU page faults and
    exceptions.

    Signed-off-by: Jack Steiner
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • This file contains the functions for initializing the driver, handling
    file & vma operations and for processing IOCTL requests from the user.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • This patch contains the header file used to export GRU services to other
    kernel drivers such as XPMEM or XPNET.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • This patch contains header files internal to the GRU driver.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • This patchs contains macros & inline functions used to issue instructions
    to the GRU.

    Signed-off-by: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner
     
  • This series of patches adds a driver for the SGI UV GRU. The driver is
    still in development but it currently compiles for both x86_64 & IA64.
    All simple regression tests pass on IA64. Although features remain to be
    added, I'd like to start the process of getting the driver into the
    kernel. Additional kernel drivers will depend on services provide by the
    GRU driver.

    The GRU is a hardware resource located in the system chipset. The GRU
    contains memory that is mmaped into the user address space. This memory
    is used to communicate with the GRU to perform functions such as
    load/store, scatter/gather, bcopy, AMOs, etc. The GRU is directly
    accessed by user instructions using user virtual addresses. GRU
    instructions (ex., bcopy) use user virtual addresses for operands.

    The GRU contains a large TLB that is functionally very similar to
    processor TLBs. Because the external contains a TLB with user virtual
    address, it requires callouts from the core VM system when certain types
    of changes are made to the process page tables. There are several MMUOPS
    patches currently being discussed but none has been accepted into the
    kernel. The GRU driver is built using version V18 from Andrea Arcangeli.

    This patch:

    Contains the definitions of the hardware GRU data structures that are used
    by the driver to manage the GRU.

    [akpm@linux-foundation;org: export hpage_shift]
    Signed-off-by: Jack Steiner
    Cc: "Luck, Tony"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jack Steiner