1. 26 4月, 2017 1 次提交
    • C
      svcrdma: Introduce local rdma_rw API helpers · f13193f5
      Chuck Lever 提交于
      The plan is to replace the local bespoke code that constructs and
      posts RDMA Read and Write Work Requests with calls to the rdma_rw
      API. This shares code with other RDMA-enabled ULPs that manages the
      gory details of buffer registration and posting Work Requests.
      
      Some design notes:
      
       o The structure of RPC-over-RDMA transport headers is flexible,
         allowing multiple segments per Reply with arbitrary alignment,
         each with a unique R_key. Write and Send WRs continue to be
         built and posted in separate code paths. However, one whole
         chunk (with one or more RDMA segments apiece) gets exactly
         one ib_post_send and one work completion.
      
       o svc_xprt reference counting is modified, since a chain of
         rdma_rw_ctx structs generates one completion, no matter how
         many Write WRs are posted.
      
       o The current code builds the transport header as it is construct-
         ing Write WRs. I've replaced that with marshaling of transport
         header data items in a separate step. This is because the exact
         structure of client-provided segments may not align with the
         components of the server's reply xdr_buf, or the pages in the
         page list. Thus parts of each client-provided segment may be
         written at different points in the send path.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      f13193f5
  2. 05 6月, 2015 1 次提交
    • C
      rpcrdma: Merge svcrdma and xprtrdma modules into one · ffe1f0df
      Chuck Lever 提交于
      Bi-directional RPC support means code in svcrdma.ko invokes a bit of
      code in xprtrdma.ko, and vice versa. To avoid loader/linker loops,
      merge the server and client side modules together into a single
      module.
      
      When backchannel capabilities are added, the combined module will
      register all needed transport capabilities so that Upper Layer
      consumers automatically have everything needed to create a
      bi-directional transport connection.
      
      Module aliases are added for backwards compatibility with user
      space, which still may expect svcrdma.ko or xprtrdma.ko to be
      present.
      
      This commit reverts commit 2e8c12e1 ("xprtrdma: add separate
      Kconfig options for NFSoRDMA client and server support") and
      provides a single CONFIG option for enabling the new module.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      ffe1f0df
  3. 16 4月, 2015 1 次提交
  4. 28 11月, 2014 1 次提交
    • J
      sunrpc: add debugfs file for displaying client rpc_task queue · b4b9d2cc
      Jeff Layton 提交于
      It's possible to get a dump of the RPC task queue by writing a value to
      /proc/sys/sunrpc/rpc_debug. If you write any value to that file, you get
      a dump of the RPC client task list into the log buffer. This is a rather
      inconvenient interface however, and makes it hard to get immediate info
      about the task queue.
      
      Add a new directory hierarchy under debugfs:
      
          sunrpc/
              rpc_clnt/
                  <clientid>/
      
      Within each clientid directory we create a new "tasks" file that will
      dump info similar to what shows up in the log buffer, but with a few
      small differences -- we avoid printing raw kernel addresses in favor of
      symbolic names and the XID is also displayed.
      Signed-off-by: NJeff Layton <jlayton@primarydata.com>
      Signed-off-by: NTrond Myklebust <trond.myklebust@primarydata.com>
      b4b9d2cc
  5. 29 3月, 2014 1 次提交
  6. 06 4月, 2013 1 次提交
  7. 30 3月, 2013 1 次提交
    • C
      SUNRPC: Load GSS kernel module by OID · f783288f
      Chuck Lever 提交于
      The current GSS mech switch can find and load GSS pseudoflavor
      modules by name ("krb5") or pseudoflavor number ("390003"), but
      cannot find GSS modules by GSS tuple:
      
        [ "1.2.840.113554.1.2.2", GSS_C_QOP_DEFAULT, RPC_GSS_SVC_NONE ]
      
      This is important when dealing with a SECINFO request.  A SECINFO
      reply contains a list of flavors the server supports for the
      requested export, but GSS flavors also have a GSS tuple that maps
      to a pseudoflavor (like 390003 for krb5).
      
      If the GSS module that supports the OID in the tuple is not loaded,
      our client is not able to load that module dynamically to support
      that pseudoflavor.
      
      Add a way for the GSS mech switch to load GSS pseudoflavor support
      by OID before searching for the pseudoflavor that matches the OID
      and service.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Cc: David Howells <dhowells@redhat.com>
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      f783288f
  8. 12 1月, 2013 1 次提交
  9. 01 8月, 2012 1 次提交
    • M
      nfs: enable swap on NFS · a564b8f0
      Mel Gorman 提交于
      Implement the new swapfile a_ops for NFS and hook up ->direct_IO.  This
      will set the NFS socket to SOCK_MEMALLOC and run socket reconnect under
      PF_MEMALLOC as well as reset SOCK_MEMALLOC before engaging the protocol
      ->connect() method.
      
      PF_MEMALLOC should allow the allocation of struct socket and related
      objects and the early (re)setting of SOCK_MEMALLOC should allow us to
      receive the packets required for the TCP connection buildup.
      
      [jlayton@redhat.com: Restore PF_MEMALLOC task flags in all cases]
      [dfeng@redhat.com: Fix handling of multiple swap files]
      [a.p.zijlstra@chello.nl: Original patch]
      Signed-off-by: NMel Gorman <mgorman@suse.de>
      Acked-by: NRik van Riel <riel@redhat.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Eric B Munson <emunson@mgebm.net>
      Cc: Eric Paris <eparis@redhat.com>
      Cc: James Morris <jmorris@namei.org>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Mike Christie <michaelc@cs.wisc.edu>
      Cc: Neil Brown <neilb@suse.de>
      Cc: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
      Cc: Trond Myklebust <Trond.Myklebust@netapp.com>
      Cc: Xiaotian Feng <dfeng@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a564b8f0
  10. 21 3月, 2012 1 次提交
  11. 15 7月, 2011 1 次提交
  12. 16 4月, 2011 1 次提交
  13. 02 10月, 2010 1 次提交
    • J
      nfsd4: remove spkm3 · 1e7af1b8
      J. Bruce Fields 提交于
      Unfortunately, spkm3 never got very far; while interoperability with one
      other implementation was demonstrated at some point, problems were found
      with the spec that were deemed not worth fixing.
      
      The kernel code is useless on its own without nfs-utils patches which
      were never merged into nfs-utils, and were only ever available from
      citi.umich.edu.  They appear not to have been updated since 2005.
      
      Therefore it seems safe to assume that this code has no users, and never
      will.
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      1e7af1b8
  14. 18 8月, 2010 1 次提交
  15. 30 3月, 2009 1 次提交
  16. 29 3月, 2009 1 次提交
  17. 04 2月, 2009 1 次提交
    • R
      sunrpc: fix rdma dependencies · 55128bc2
      Randy Dunlap 提交于
      Fix sunrpc/rdma build dependencies.
      Survives 12 build combinations of INET, IPV6, SUNRPC,
      INFINIBAND, and INFINIBAND_ADDR_TRANS.
      
      ERROR: "rdma_destroy_id" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
      ERROR: "rdma_connect" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
      ERROR: "rdma_destroy_qp" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
      ERROR: "rdma_create_id" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
      ERROR: "rdma_create_qp" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
      ERROR: "rdma_resolve_route" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
      ERROR: "rdma_disconnect" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
      ERROR: "rdma_resolve_addr" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!
      ERROR: "rdma_accept" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!
      ERROR: "rdma_destroy_id" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!
      ERROR: "rdma_listen" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!
      ERROR: "rdma_create_id" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!
      ERROR: "rdma_create_qp" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!
      ERROR: "rdma_bind_addr" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!
      ERROR: "rdma_disconnect" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      55128bc2
  18. 28 1月, 2009 1 次提交
  19. 22 1月, 2009 1 次提交