1. 11 3月, 2016 2 次提交
  2. 23 1月, 2016 1 次提交
    • A
      wrappers for ->i_mutex access · 5955102c
      Al Viro 提交于
      parallel to mutex_{lock,unlock,trylock,is_locked,lock_nested},
      inode_foo(inode) being mutex_foo(&inode->i_mutex).
      
      Please, use those for access to ->i_mutex; over the coming cycle
      ->i_mutex will become rwsem, with ->lookup() done with it held
      only shared.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      5955102c
  3. 20 1月, 2016 3 次提交
    • M
      IB/qib: Improve ipoib UD performance · 967bcfc0
      Mike Marciniszyn 提交于
      Based on profiling, UD performance drops in case of processes
      in a single client due to excess context switches when
      the progress workqueue is scheduled.
      
      This is solved by modifying the heuristic to select the
      direct progress instead of the scheduling progress via
      the workqueue when UD-like situations are detected in
      the heuristic.
      Reviewed-by: NVinit Agnihotri <vinit.abhay.agnihotri@intel.com>
      Signed-off-by: NMike Marciniszyn <mike.marciniszyn@intel.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      967bcfc0
    • V
      IB/qib: Support creating qps with GFP_NOIO flag · fbbeb863
      Vinit Agnihotri 提交于
      The current code is problematic when the QP creation and ipoib is used to
      support NFS and NFS desires to do IO for paging purposes. In that case, the
      GFP_KERNEL allocation in qib_qp.c causes a deadlock in tight memory
      situations.
      
      This fix adds support to create queue pair with GFP_NOIO flag for connected
      mode only to cleanly fail the create queue pair in those situations.
      
      Cc: <stable@vger.kernel.org> # 3.16+
      Reviewed-by: NMike Marciniszyn <mike.marciniszyn@intel.com>
      Signed-off-by: NVinit Agnihotri <vinit.abhay.agnihotri@intel.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      fbbeb863
    • M
      IB/qib: fix mcast detach when qp not attached · 09dc9cd6
      Mike Marciniszyn 提交于
      The code produces the following trace:
      
      [1750924.419007] general protection fault: 0000 [#3] SMP
      [1750924.420364] Modules linked in: nfnetlink autofs4 rpcsec_gss_krb5 nfsv4
      dcdbas rfcomm bnep bluetooth nfsd auth_rpcgss nfs_acl dm_multipath nfs lockd
      scsi_dh sunrpc fscache radeon ttm drm_kms_helper drm serio_raw parport_pc
      ppdev i2c_algo_bit lpc_ich ipmi_si ib_mthca ib_qib dca lp parport ib_ipoib
      mac_hid ib_cm i3000_edac ib_sa ib_uverbs edac_core ib_umad ib_mad ib_core
      ib_addr tg3 ptp dm_mirror dm_region_hash dm_log psmouse pps_core
      [1750924.420364] CPU: 1 PID: 8401 Comm: python Tainted: G D
      3.13.0-39-generic #66-Ubuntu
      [1750924.420364] Hardware name: Dell Computer Corporation PowerEdge
      860/0XM089, BIOS A04 07/24/2007
      [1750924.420364] task: ffff8800366a9800 ti: ffff88007af1c000 task.ti:
      ffff88007af1c000
      [1750924.420364] RIP: 0010:[<ffffffffa0131d51>] [<ffffffffa0131d51>]
      qib_mcast_qp_free+0x11/0x50 [ib_qib]
      [1750924.420364] RSP: 0018:ffff88007af1dd70  EFLAGS: 00010246
      [1750924.420364] RAX: 0000000000000001 RBX: ffff88007b822688 RCX:
      000000000000000f
      [1750924.420364] RDX: ffff88007b822688 RSI: ffff8800366c15a0 RDI:
      6764697200000000
      [1750924.420364] RBP: ffff88007af1dd78 R08: 0000000000000001 R09:
      0000000000000000
      [1750924.420364] R10: 0000000000000011 R11: 0000000000000246 R12:
      ffff88007baa1d98
      [1750924.420364] R13: ffff88003ecab000 R14: ffff88007b822660 R15:
      0000000000000000
      [1750924.420364] FS:  00007ffff7fd8740(0000) GS:ffff88007fc80000(0000)
      knlGS:0000000000000000
      [1750924.420364] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [1750924.420364] CR2: 00007ffff597c750 CR3: 000000006860b000 CR4:
      00000000000007e0
      [1750924.420364] Stack:
      [1750924.420364]  ffff88007b822688 ffff88007af1ddf0 ffffffffa0132429
      000000007af1de20
      [1750924.420364]  ffff88007baa1dc8 ffff88007baa0000 ffff88007af1de70
      ffffffffa00cb313
      [1750924.420364]  00007fffffffde88 0000000000000000 0000000000000008
      ffff88003ecab000
      [1750924.420364] Call Trace:
      [1750924.420364]  [<ffffffffa0132429>] qib_multicast_detach+0x1e9/0x350
      [ib_qib]
      [1750924.568035]  [<ffffffffa00cb313>] ? ib_uverbs_modify_qp+0x323/0x3d0
      [ib_uverbs]
      [1750924.568035]  [<ffffffffa0092d61>] ib_detach_mcast+0x31/0x50 [ib_core]
      [1750924.568035]  [<ffffffffa00cc213>] ib_uverbs_detach_mcast+0x93/0x170
      [ib_uverbs]
      [1750924.568035]  [<ffffffffa00c61f6>] ib_uverbs_write+0xc6/0x2c0 [ib_uverbs]
      [1750924.568035]  [<ffffffff81312e68>] ? apparmor_file_permission+0x18/0x20
      [1750924.568035]  [<ffffffff812d4cd3>] ? security_file_permission+0x23/0xa0
      [1750924.568035]  [<ffffffff811bd214>] vfs_write+0xb4/0x1f0
      [1750924.568035]  [<ffffffff811bdc49>] SyS_write+0x49/0xa0
      [1750924.568035]  [<ffffffff8172f7ed>] system_call_fastpath+0x1a/0x1f
      [1750924.568035] Code: 66 2e 0f 1f 84 00 00 00 00 00 31 c0 5d c3 66 2e 0f 1f
      84 00 00 00 00 00 66 90 0f 1f 44 00 00 55 48 89 e5 53 48 89 fb 48 8b 7f 10
      <f0> ff 8f 40 01 00 00 74 0e 48 89 df e8 8e f8 06 e1 5b 5d c3 0f
      [1750924.568035] RIP  [<ffffffffa0131d51>] qib_mcast_qp_free+0x11/0x50
      [ib_qib]
      [1750924.568035]  RSP <ffff88007af1dd70>
      [1750924.650439] ---[ end trace 73d5d4b3f8ad4851 ]
      
      The fix is to note the qib_mcast_qp that was found.   If none is found, then
      return EINVAL indicating the error.
      
      Cc: <stable@vger.kernel.org>
      Reviewed-by: NDennis Dalessandro <dennis.dalessandro@intel.com>
      Reported-by: NJason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Signed-off-by: NMike Marciniszyn <mike.marciniszyn@intel.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      09dc9cd6
  4. 24 12月, 2015 1 次提交
  5. 08 12月, 2015 2 次提交
  6. 07 11月, 2015 1 次提交
  7. 29 10月, 2015 2 次提交
  8. 08 10月, 2015 1 次提交
    • C
      IB: split struct ib_send_wr · e622f2f4
      Christoph Hellwig 提交于
      This patch split up struct ib_send_wr so that all non-trivial verbs
      use their own structure which embedds struct ib_send_wr.  This dramaticly
      shrinks the size of a WR for most common operations:
      
      sizeof(struct ib_send_wr) (old):	96
      
      sizeof(struct ib_send_wr):		48
      sizeof(struct ib_rdma_wr):		64
      sizeof(struct ib_atomic_wr):		96
      sizeof(struct ib_ud_wr):		88
      sizeof(struct ib_fast_reg_wr):		88
      sizeof(struct ib_bind_mw_wr):		96
      sizeof(struct ib_sig_handover_wr):	80
      
      And with Sagi's pending MR rework the fast registration WR will also be
      down to a reasonable size:
      
      sizeof(struct ib_fastreg_wr):		64
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com> [srp, srpt]
      Reviewed-by: Chuck Lever <chuck.lever@oracle.com> [sunrpc]
      Tested-by: NHaggai Eran <haggaie@mellanox.com>
      Tested-by: NSagi Grimberg <sagig@mellanox.com>
      Tested-by: NSteve Wise <swise@opengridcomputing.com>
      e622f2f4
  9. 11 9月, 2015 1 次提交
  10. 04 9月, 2015 1 次提交
  11. 31 8月, 2015 1 次提交
  12. 29 8月, 2015 3 次提交
  13. 15 7月, 2015 1 次提交
  14. 24 6月, 2015 1 次提交
  15. 13 6月, 2015 5 次提交
  16. 02 6月, 2015 1 次提交
  17. 21 5月, 2015 2 次提交
  18. 19 5月, 2015 1 次提交
  19. 13 5月, 2015 1 次提交
  20. 05 5月, 2015 2 次提交
    • L
      IB/qib: use arch_phys_wc_add() · d4988623
      Luis R. Rodriguez 提交于
      This driver already makes use of ioremap_wc() on PIO buffers,
      so convert it to use arch_phys_wc_add().
      
      The qib driver uses a mmap() special case for when PAT is
      not used, this behaviour used to be determined with a
      module parameter but since we have been asked to just
      remove that module parameter this checks for the WC cookie,
      if not set we can assume PAT was used. If its set we do
      what we used to do for the mmap for when MTRR was enabled.
      
      The removal of the module parameter is OK given that Andy
      notes that even if users of module parameter are still around
      it will not prevent loading of the module on recent kernels.
      
      Cc: Doug Ledford <dledford@redhat.com>
      Cc: Toshi Kani <toshi.kani@hp.com>
      Cc: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
      Cc: Mike Marciniszyn <mike.marciniszyn@intel.com>
      Cc: Roland Dreier <roland@purestorage.com>
      Cc: Sean Hefty <sean.hefty@intel.com>
      Cc: Hal Rosenstock <hal.rosenstock@gmail.com>
      Cc: Dennis Dalessandro <dennis.dalessandro@intel.com>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Suresh Siddha <sbsiddha@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Juergen Gross <jgross@suse.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Cc: Stefan Bader <stefan.bader@canonical.com>
      Cc: konrad.wilk@oracle.com
      Cc: ville.syrjala@linux.intel.com
      Cc: david.vrabel@citrix.com
      Cc: jbeulich@suse.com
      Cc: Roger Pau Monné <roger.pau@citrix.com>
      Cc: infinipath@intel.com
      Cc: linux-rdma@vger.kernel.org
      Cc: linux-fbdev@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Cc: xen-devel@lists.xensource.com
      Signed-off-by: NLuis R. Rodriguez <mcgrof@suse.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      d4988623
    • L
      IB/qib: add acounting for MTRR · 87a26e97
      Luis R. Rodriguez 提交于
      There is no good reason not to, we eventually delete it as well.
      
      Cc: Toshi Kani <toshi.kani@hp.com>
      Cc: Suresh Siddha <sbsiddha@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Juergen Gross <jgross@suse.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: Mike Marciniszyn <infinipath@intel.com>
      Cc: Roland Dreier <roland@kernel.org>
      Cc: Sean Hefty <sean.hefty@intel.com>
      Cc: Hal Rosenstock <hal.rosenstock@gmail.com>
      Cc: linux-rdma@vger.kernel.org
      Cc: linux-fbdev@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NLuis R. Rodriguez <mcgrof@suse.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      87a26e97
  21. 16 4月, 2015 1 次提交
  22. 12 4月, 2015 1 次提交
  23. 26 3月, 2015 1 次提交
  24. 21 2月, 2015 2 次提交
  25. 20 2月, 2015 1 次提交
    • D
      Infiniband: Fix potential NULL d_inode dereference · a95104fd
      David Howells 提交于
      Code that does this:
      
      	if (!(d_unhashed(tmp) && tmp->d_inode)) {
      		...
      		simple_unlink(parent->d_inode, tmp);
      	}
      
      is broken because:
      
      	!(d_unhashed(tmp) && tmp->d_inode)
      
      is equivalent to:
      
      	!d_unhashed(tmp) || !tmp->d_inode
      
      so it is possible to get into simple_unlink() with tmp->d_inode == NULL.
      
      simple_unlink(), however, assumes tmp->d_inode cannot be NULL.
      
      I think that what was meant is this:
      
      	!d_unhashed(tmp) && tmp->d_inode
      
      and that the logical-not operator or the final close-bracket was misplaced.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      cc: Bryan O'Sullivan <bos@pathscale.com>
      cc: Roland Dreier <rolandd@cisco.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      a95104fd
  26. 18 2月, 2015 1 次提交