1. 24 Feb, 2012 16 commits
  2. 17 Feb, 2012 1 commit
  3. 16 Feb, 2012 4 commits
  4. 15 Feb, 2012 7 commits
    • Greg Kroah-Hartman's avatar
      staging: clean up Greg's email address in some TODO files · 2140dc9c
      Greg Kroah-Hartman authored
      My old email address was in some TODO files, so this fixes that issue.
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2140dc9c
    • Dan Magenheimer's avatar
      staging: ramster: ramster-specific new files · 83bc7a7c
      Dan Magenheimer authored
      RAMster implements peer-to-peer transcendent memory, allowing a "cluster"
      of kernels to dynamically pool their RAM.
      
      This patch adds new files necessary for ramster support:  The file
      ramster.h declares externs and some pampd bitfield manipulation.  The
      file zcache.h declares some zcache functions that now must be accessed
      from the ramster glue code.  The file r2net.c is the glue between zcache
      and the messaging layer, providing routines called from zcache that
      initiate messages, and routines that handle messages by calling zcache.
      TODO explains future plans for merging.
      Signed-off-by: default avatarDan Magenheimer <dan.magenheimer@oracle.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      83bc7a7c
    • Dan Magenheimer's avatar
      staging: ramster: ramster-specific changes to zcache/tmem · c89126ea
      Dan Magenheimer authored
      RAMster implements peer-to-peer transcendent memory, allowing a "cluster"
      of kernels to dynamically pool their RAM.
      
      This patch incorporates changes transforming zcache to work with
      a remote store.
      
      In tmem.[ch], new "repatriate" (provoke async get) and "localify" (handle
      incoming data resulting from an async get) routines combine with a handful
      of changes to existing pamops interfaces allow the generic tmem code
      to support asynchronous operations.  Also, a new tmem_xhandle struct
      groups together key information that must be passed to remote tmem stores.
      
      Zcache-main.c is augmented with a large amount of ramster-specific code
      to handle remote operations and "foreign" pages on both ends of the
      "remotify" protocol.  New "foreign" pools are auto-created on demand.
      A "selfshrinker" thread periodically repatriates remote persistent pages
      when local memory conditions allow.  For certain operations, a queue is
      necessary to guarantee strict ordering as out-of-order puts/flushes can
      cause strange race conditions.  Pampd pointers now either point to local
      memory OR describe a remote page; to allow the same 64-bits to describe
      either, the LSB is used to differentiate.  Some acrobatics must be performed
      to ensure local memory is available to handle a remote persistent get,
      or deal with the data directly anyway if the malloc failed.  Lots
      of ramster-specific statistics are available via sysfs.
      
      Note: Some debug ifdefs left in for now.
      Signed-off-by: default avatarDan Magenheimer <dan.magenheimer@oracle.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c89126ea
    • Dan Magenheimer's avatar
      staging: ramster: xvmalloc allocation files · b95e141a
      Dan Magenheimer authored
      RAMster implements peer-to-peer transcendent memory, allowing a "cluster"
      of kernels to dynamically pool their RAM.
      
      Zcache is in the process of converting allocators, from xvmalloc to zsmalloc.
      Further, RAMster V5 testing to date has been done only with xvmalloc.
      To avoid merging problems, a linux-3.2 copy of xvmalloc is incorporated by
      this patch.  Later patches will be able to eliminate xvmalloc and use zsmalloc.
      Signed-off-by: default avatarDan Magenheimer <dan.magenheimer@oracle.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b95e141a
    • Dan Magenheimer's avatar
      staging: ramster: local compression + tmem · 19ee3ef5
      Dan Magenheimer authored
      RAMster implements peer-to-peer transcendent memory, allowing a "cluster"
      of kernels to dynamically pool their RAM.
      
      This patch copies files from drivers/staging/zcache.  RAMster compresses
      pages locally before transmitting them to another node, so we can
      leverage the zcache and tmem code directly.  Note: there are
      no ramster-specific changes yet to these files.
      
      (Why copy?  The ramster tmem.c/tmem.h changes are definitely shareable
      between zcache and ramster; the eventual destination for tmem.c
      is the linux lib directory.  Ramster changes to zcache are more substantial
      and zcache is currently undergoing some significant unrelated changes
      (including a new allocator and breaking zcache-main.c into smaller files),
      so it seemed best to branch temporarily and merge later.)
      Signed-off-by: default avatarDan Magenheimer <dan.magenheimer@oracle.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      19ee3ef5
    • Dan Magenheimer's avatar
      staging: ramster: cluster/messaging foundation · b605c962
      Dan Magenheimer authored
      RAMster implements peer-to-peer transcendent memory, allowing a "cluster"
      of kernels to dynamically pool their RAM.
      
      This patch provides the cluster and messaging foundation for RAMster,
      implementing the basic cluster discovery, mapping, heartbeat / keepalive,
      and messaging ("r2net") that RAMster requires for internode communication.
      This code heavily leverages code from the ocfs2 cluster layer but
      has been extended, interfaces to userland changed, and external functions
      renamed so that RAMster and ocfs2 can co-exist in the kernel and userland.
      Signed-off-by: default avatarDan Magenheimer <dan.magenheimer@oracle.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b605c962
    • Dan Magenheimer's avatar
      staging: ramster: enable as staging driver · 9a68e9a4
      Dan Magenheimer authored
      RAMster implements peer-to-peer transcendent memory, allowing a "cluster"
      of kernels to dynamically pool their RAM.
      
      Enable build of ramster as a staging driver
      Signed-off-by: default avatarDan Magenheimer <dan.magenheimer@oracle.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9a68e9a4
  5. 14 Feb, 2012 12 commits