1. 16 3月, 2011 4 次提交
    • D
      IB/srp: rework mapping engine to use multiple FMR entries · 8f26c9ff
      David Dillow 提交于
      Instead of forcing all of the S/G entries to fit in one FMR, and falling
      back to indirect descriptors if that fails, allow the use of as many
      FMRs as needed to map the request. This lays the groundwork for allowing
      indirect descriptor tables that are larger than can fit in the command
      IU, but should marginally improve performance now by reducing the number
      of indirect descriptors needed.
      
      We increase the minimum page size for the FMR pool to 4K, as larger
      pages help increase the coverage of each FMR, and it is rare that the
      kernel would send down a request with scattered 512 byte fragments.
      
      This patch also move some of the target initialization code afte the
      parsing of options, to keep it together with the new code that needs to
      allocate memory based on the options given.
      Signed-off-by: NDavid Dillow <dillowda@ornl.gov>
      8f26c9ff
    • D
      IB/srp: allow sg_tablesize to be set for each target · 49248644
      David Dillow 提交于
      Different configurations of target software allow differing max sizes of
      the command IU. Allowing this to be changed per-target allows all
      targets on an initiator to get an optimal setting.
      
      We deprecate srp_sg_tablesize and replace it with cmd_sg_entries in
      preparation for allowing more indirect descriptors than can fit in the
      IU.
      Signed-off-by: NDavid Dillow <dillowda@ornl.gov>
      49248644
    • D
      IB/srp: move IB CM setup completion into its own function · 961e0be8
      David Dillow 提交于
      This is to clean up prior to further changes.
      Signed-off-by: NDavid Dillow <dillowda@ornl.gov>
      961e0be8
    • D
      IB/srp: always avoid non-zero offsets into an FMR · 8c4037b5
      David Dillow 提交于
      It is unclear exactly how this code works around Mellanox SRP targets,
      or if the problem is on the target side or in the HCA itself. In an
      abundance of caution, we should always enable the workaround.
      Signed-off-by: NDavid Dillow <dillowda@ornl.gov>
      8c4037b5
  2. 21 1月, 2011 1 次提交
    • D
      kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT · 6a108a14
      David Rientjes 提交于
      The meaning of CONFIG_EMBEDDED has long since been obsoleted; the option
      is used to configure any non-standard kernel with a much larger scope than
      only small devices.
      
      This patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes
      references to the option throughout the kernel.  A new CONFIG_EMBEDDED
      option is added that automatically selects CONFIG_EXPERT when enabled and
      can be used in the future to isolate options that should only be
      considered for embedded systems (RISC architectures, SLOB, etc).
      
      Calling the option "EXPERT" more accurately represents its intention: only
      expert users who understand the impact of the configuration changes they
      are making should enable it.
      Reviewed-by: NIngo Molnar <mingo@elte.hu>
      Acked-by: NDavid Woodhouse <david.woodhouse@intel.com>
      Signed-off-by: NDavid Rientjes <rientjes@google.com>
      Cc: Greg KH <gregkh@suse.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Robin Holt <holt@sgi.com>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6a108a14
  3. 17 1月, 2011 1 次提交
    • T
      RDMA: Update workqueue usage · f0626710
      Tejun Heo 提交于
      * ib_wq is added, which is used as the common workqueue for infiniband
        instead of the system workqueue.  All system workqueue usages
        including flush_scheduled_work() callers are converted to use and
        flush ib_wq.
      
      * cancel_delayed_work() + flush_scheduled_work() converted to
        cancel_delayed_work_sync().
      
      * qib_wq is removed and ib_wq is used instead.
      
      This is to prepare for deprecation of flush_scheduled_work().
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      f0626710
  4. 14 1月, 2011 1 次提交
  5. 13 1月, 2011 1 次提交
  6. 11 1月, 2011 7 次提交
  7. 06 1月, 2011 3 次提交
  8. 17 11月, 2010 1 次提交
    • J
      SCSI host lock push-down · f281233d
      Jeff Garzik 提交于
      Move the mid-layer's ->queuecommand() invocation from being locked
      with the host lock to being unlocked to facilitate speeding up the
      critical path for drivers who don't need this lock taken anyway.
      
      The patch below presents a simple SCSI host lock push-down as an
      equivalent transformation.  No locking or other behavior should change
      with this patch.  All existing bugs and locking orders are preserved.
      
      Additionally, add one parameter to queuecommand,
      	struct Scsi_Host *
      and remove one parameter from queuecommand,
      	void (*done)(struct scsi_cmnd *)
      
      Scsi_Host* is a convenient pointer that most host drivers need anyway,
      and 'done' is redundant to struct scsi_cmnd->scsi_done.
      
      Minimal code disturbance was attempted with this change.  Most drivers
      needed only two one-line modifications for their host lock push-down.
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      Acked-by: NJames Bottomley <James.Bottomley@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f281233d
  9. 27 10月, 2010 1 次提交
  10. 25 10月, 2010 4 次提交
  11. 24 10月, 2010 1 次提交
  12. 23 10月, 2010 2 次提交
  13. 18 10月, 2010 1 次提交
  14. 14 10月, 2010 1 次提交
  15. 29 9月, 2010 1 次提交
  16. 05 8月, 2010 4 次提交
  17. 07 7月, 2010 1 次提交
  18. 05 7月, 2010 1 次提交
  19. 13 5月, 2010 4 次提交
    • D
      IB/iser: Fix error flow in iser_create_ib_conn_res() · 9fda1ac5
      Dan Carpenter 提交于
      We shouldn't free things here because we free them later.
      The call tree looks like this:
      	iser_connect() ==> initiating the connection establishment
      and later
      	iser_cma_handler() => iser_route_handler() => iser_create_ib_conn_res()
      if we fail here, eventually iser_conn_release() is called, resulting
      in a double free.
      Signed-off-by: NDan Carpenter <error27@gmail.com>
      Signed-off-by: NOr Gerlitz <ogerlitz@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      9fda1ac5
    • O
      IB/iser: Enhance disconnection logic for multi-pathing · 39ff05db
      Or Gerlitz 提交于
      The iser connection teardown flow isn't over until the underlying
      Connection Manager (e.g the IB CM) delivers a disconnected or timeout
      event through the RDMA-CM.  When the remote (target) side isn't
      reachable, e.g when some HW e.g port/hca/switch isn't functioning or
      taken down administratively, the CM timeout flow is used and the event
      may be generated only after relatively long time -- on the order of
      tens of seconds.
      
      The current iser code exposes this possibly long delay to higher
      layers, specifically to the iscsid daemon and iscsi kernel stack. As a
      result, the iscsi stack doesn't respond well: this low-level CM delay
      is added to the fail-over time under HA schemes such as the one
      provided by DM multipath through the multipathd(8) service.
      
      This patch enhances the reference counting scheme on iser's IB
      connections so that the disconnect flow initiated by iscsid from user
      space (ep_disconnect) doesn't wait for the CM to deliver the
      disconnect/timeout event.  (The connection teardown isn't done from
      iser's view point until the event is delivered)
      
      The iser ib (rdma) connection object is destroyed when its reference
      count reaches zero.  When this happens on the RDMA-CM callback
      context, extra care is taken so that the RDMA-CM does the actual
      destroying of the associated ID, since doing it in the callback is
      prohibited.
      
      The reference count of iser ib connection normally reaches three,
      where the <ref, deref> relations are
      
       1. conn <init, terminate>
       2. conn <bind, stop/destroy>
       3. cma id <create, disconnect/error/timeout callbacks>
      
      With this patch, multipath fail-over time is about 30 seconds, while
      without this patch, multipath fail-over time is about 130 seconds.
      Signed-off-by: NOr Gerlitz <ogerlitz@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      39ff05db
    • O
      IB/iser: Remove buggy back-pointer setting · d265b980
      Or Gerlitz 提交于
      The iscsi connection object life cycle includes binding and unbinding
      (conn_stop) to/from the iscsi transport connection object.  Since
      iscsi connection objects are recycled, at the time the transport
      connection (e.g iser's IB connection) is released, it is not valid to
      touch the iscsi connection tied to the transport back-pointer since it
      may already point to a different transport connection.
      Signed-off-by: NOr Gerlitz <ogerlitz@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      d265b980
    • O
      IB/iser: Add asynchronous event handler · 2110f9bf
      Or Gerlitz 提交于
      Add handler to handle events such as port up and down.  This is useful
      when testing high-availability schemes such as multi-pathing.
      Signed-off-by: NOr Gerlitz <ogerlitz@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      2110f9bf