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. 18 2月, 2011 1 次提交
    • M
      IB/qib: Prevent double completions after a timeout or RNR error · c0af2c05
      Mike Marciniszyn 提交于
      There is a double completion associated with error handling for RC QPs.
      
      The sequence is:
      
       - The do_rc_ack() routine fields an RNR nack and there are 0
         rnr_retries configured on the QP.
       - qib_error_qp() stops the pending timer
       - qib_rc_send_complete() is called from sdma_complete()
       - qib_rc_send_complete() starts the timer because the msb of the psn
         just completed says an ack is needed.
       - a bunch of flushes occur as ipoib posts WQEs to an error'ed QP
       - rc_timeout() calls qib_restart_rc()
       - qib_restart_rc() calls qib_send_complete() with a
         IB_WC_RETRY_EXC_ERR on a wqe that has already been completed in the
         past
      
      The fix avoids starting the timer since another packet will never
      arrive.
      Signed-off-by: NMike Marciniszyn <mike.marciniszyn@qlogic.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      c0af2c05
  3. 11 2月, 2011 1 次提交
    • M
      IB/qib: Fix double add_timer() · 414ed90c
      Mike Marciniszyn 提交于
      The following panic BUG_ON occurs during qib testing:
      
          Kernel BUG at include/linux/timer.h:82
      
          RIP  [<ffffffff881f7109>] :ib_qib:start_timer+0x73/0x89
           RSP <ffffffff80425bd0>
           <0>Kernel panic - not syncing: Fatal exception
           <0>Dumping qib trace buffer from panic
          qib_set_lid INFO: IB0:1 got a lid: 0xf8
          Done dumping qib trace buffer
          BUG: warning at kernel/panic.c:137/panic() (Tainted: G
      
      The flaw is due to a missing state test when processing responses that
      results in an add_timer() call when the same timer is already queued.
      This code was executing in parallel with a QP destroy on another CPU
      that had changed the state to reset, but the missing test caused to
      response handling code to run on into the panic.
      Signed-off-by: NMike Marciniszyn <mike.marciniszyn@qlogic.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      414ed90c
  4. 04 2月, 2011 1 次提交
  5. 29 1月, 2011 6 次提交
  6. 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
  7. 17 1月, 2011 5 次提交
  8. 14 1月, 2011 1 次提交
  9. 13 1月, 2011 3 次提交
  10. 12 1月, 2011 1 次提交
  11. 11 1月, 2011 16 次提交