1. 11 4月, 2006 4 次提交
    • M
      IB/mthca: Disable tuning PCI read burst size · abf45dbb
      Michael S. Tsirkin 提交于
      The PCI spec recommends against drivers playing with a device's PCI
      read burst size, and says that systems software should configure it.
      And we actually have users that report that changing it from the
      default set by BIOS hurts performance and/or stability for them.  On
      the other hand, the Mellanox Programmer's Reference Manual recommends
      turning it up all the way to the maximum value.  Some tests conducted
      here in the lab do not show performance improvement from this tuning,
      but this might be just me.
      
      As a work-around, make this tuning an option, off by default (safe
      value), with an eye towards removing it completely one day if no one
      complains.
      Signed-off-by: NMichael S. Tsirkin <mst@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      abf45dbb
    • S
      IPoIB: Make send and receive queue sizes tunable · 0f485251
      Shirley Ma 提交于
      Make IPoIB's send and receive queue sizes tunable via module
      parameters ("send_queue_size" and "recv_queue_size").  This allows the
      queue sizes to be enlarged to fix disastrously bad performance on some
      platforms and workloads, without bloating memory usage when large
      queues aren't needed.
      Signed-off-by: NShirley Ma <xma@us.ibm.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      0f485251
    • E
      IPoIB: Wait for join to finish before freeing mcast struct · f2de3b06
      Eli Cohen 提交于
      ipoib_mcast_restart_task() might free an mcast object while a join
      request is still outstanding, leading to an oops when the query
      completes.  Fix this by waiting for query to complete, similar to what
      ipoib_stop_thread() is doing.  The wait for mcast completion code is
      consolidated in wait_for_mcast_join().
      Signed-off-by: NEli Cohen <eli@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      f2de3b06
    • J
      IB: simplify static rate encoding · bf6a9e31
      Jack Morgenstein 提交于
      Push translation of static rate to HCA format into low-level drivers,
      where it belongs.  For static rate encoding, use encoding of rate
      field from IB standard PathRecord, with addition of value 0, for
      backwards compatibility with current usage.  The changes are:
      
       - Add enum ib_rate to midlayer includes.
       - Get rid of static rate translation in IPoIB; just use static rate
         directly from Path and MulticastGroup records.
       - Update mthca driver to translate absolute static rate into the
         format used by hardware.  This also fixes mthca's static rate
         handling for HCAs that are capable of 4X DDR.
      Signed-off-by: NJack Morgenstein <jackm@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      bf6a9e31
  2. 05 4月, 2006 1 次提交
    • M
      IPoIB: Consolidate private neighbour data handling · d2e0655e
      Michael S. Tsirkin 提交于
      Consolidate IPoIB's private neighbour data handling into
      ipoib_neigh_alloc() and ipoib_neigh_free().  This will make it easier
      to keep track of the neighbour structures that IPoIB is handling, and
      is a nice cleanup of the code:
      
      add/remove: 2/1 grow/shrink: 1/8 up/down: 100/-178 (-78)
      function                                     old     new   delta
      ipoib_neigh_alloc                              -      61     +61
      ipoib_neigh_free                               -      36     +36
      ipoib_mcast_join_finish                     1288    1291      +3
      path_rec_completion                          575     573      -2
      ipoib_mcast_join_task                        664     660      -4
      ipoib_neigh_destructor                       101      92      -9
      ipoib_neigh_setup_dev                         14       3     -11
      ipoib_neigh_setup                             17       -     -17
      path_free                                    238     215     -23
      ipoib_mcast_free                             329     306     -23
      ipoib_mcast_send                             718     684     -34
      neigh_add_path                               705     650     -55
      Signed-off-by: NMichael S. Tsirkin <mst@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      d2e0655e
  3. 04 4月, 2006 1 次提交
  4. 03 4月, 2006 3 次提交
    • R
      IB/mthca: Always build debugging code unless CONFIG_EMBEDDED=y · 227c939b
      Roland Dreier 提交于
      Change the mthca debugging trace output code so that it can enabled
      and disabled at runtime with the debug_level module parameter in
      sysfs.  Also, don't allow CONFIG_INFINIBAND_MTHCA_DEBUG to be disabled
      unless CONFIG_EMBEDDED is selected.  We want users (and especially
      distros) to have this turned on unless they really need to save space,
      because by the time we want debugging output, it's usually too late to
      rebuild a kernel.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      227c939b
    • R
      IPoIB: Always build debugging code unless CONFIG_EMBEDDED=y · f5545d24
      Roland Dreier 提交于
      Don't allow CONFIG_INFINIBAND_IPOIB_DEBUG to be disabled unless
      CONFIG_EMBEDDED is selected.  We want users (and especially distros)
      to have this turned on unless they really need to save space, because
      by the time we want debugging output, it's usually too late to rebuild
      a kernel.  The debugging output can be controlled at runtime via the
      debug_level module parameter in sysfs.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      f5545d24
    • M
      IB/mad: fix oops in cancel_mads · 37289efe
      Michael S. Tsirkin 提交于
      We have seen the following OOPs in cancel_mads, when restarting opensm
      multiple times:
      
          Call Trace:
            [<c010549b>] show_stack+0x9b/0xb0
            [<c01055ec>] show_registers+0x11c/0x190
            [<c01057cd>] die+0xed/0x160
            [<c031b966>] do_page_fault+0x3f6/0x5d0
            [<c010511f>] error_code+0x4f/0x60
            [<f8ac4e38>] cancel_mads+0x128/0x150 [ib_mad]
            [<f8ac2811>] unregister_mad_agent+0x11/0x130 [ib_mad]
            [<f8ac2a12>] ib_unregister_mad_agent+0x12/0x20 [ib_mad]
            [<f8b10f23>] ib_umad_close+0xf3/0x130 [ib_umad]
            [<c0162937>] __fput+0x187/0x1c0
            [<c01627a9>] fput+0x19/0x20
            [<c0160f7a>] filp_close+0x3a/0x60
            [<c0121ca8>] put_files_struct+0x68/0xa0
            [<c0103cf7>] do_signal+0x47/0x100
            [<c0103ded>] do_notify_resume+0x3d/0x40
            [<c0103f9e>] work_notifysig+0x13/0x25
      
      We traced this back to local_completions unlocking mad_agent_priv->lock
      while still keeping a pointer into local_list. A later call to
      list_del(&local->completion_list) would then corrupt the list.
      
      To fix this, remove the entry from local_list after looking it up but
      before releasing mad_agent_priv->lock, to prevent cancel_mads from
      finding and freeing it.
      Signed-off-by: NJack Morgenstein <jackm@mellanox.co.il>
      Signed-off-by: NMichael S. Tsirkin <mst@mellanox.co.il>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      37289efe
  5. 01 4月, 2006 16 次提交
  6. 30 3月, 2006 6 次提交
  7. 25 3月, 2006 9 次提交