netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
  • * Re: [PATCH net/for-next V1 1/1] IB/ipoib: break linkage to neighbouring system
           [not found] ` <1342703938-29904-2-git-send-email-ogerlitz@mellanox.com>
           [not found]   ` <alpine.DEB.2.00.1207190938190.28115@router.home>
    @ 2012-07-20 15:49   ` Or Gerlitz
           [not found]     ` <CAJZOPZ+kRcBjJgB_HaMqeuB5E-SLSqskgoaLZ_hvVx4KffHgpA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
      1 sibling, 1 reply; 9+ messages in thread
    From: Or Gerlitz @ 2012-07-20 15:49 UTC (permalink / raw)
      To: roland, davem; +Cc: linux-rdma, erezsh, Shlomo Pongratz, Or Gerlitz, netdev
    
    On Thu, Jul 19, 2012 at 4:18 PM, Or Gerlitz <ogerlitz@mellanox.com> wrote:
    > From: Shlomo Pongratz <shlomop@mellanox.com>
    >
    > Dave Miller <davem@davemloft.net> provided a detailed description of why the
    > way IPoIB is using neighbours for its own ipoib_neigh struct is buggy:
    [...]
    
    > This patch aims to solve the race conditions found in the IPoIB driver.
    >
    > The patch breaks the connection between the core networking neighbour structure
    > and the ipoib_neigh structure. Except for avoiding the race, it allows to in
    > under a setup where SKBs carrying IP packets that don't have any associated
    > neighbour are transmitted through IPoIB.
    >
    > We add an ipoib_neigh hash table with 1024 buckets. The hash table key is the destin
    > hardware address. Thus the ipoib_neigh is fetched from the hash table and not
    > dereferenced from the stashed location at the neighbour structure. The hash table uses
    > both RCU and reference count mechanisms to guarantee that no ipoib_neigh instance is
    > ever deleted while in use.
    >
    > Fetching the ipoib_neigh structure instance from the hash also makes the special
    > code in ipoib_start_xmit that handles remote and local bonding failover redundant.
    >
    > Aged ipoib_neigh instances are deleted by a garbage collection task that runs every
    > 30 seconds and deletes every ipoib_neigh instance that was idle for at least 60
    > seconds. The deletion is safe since the ipoib_neigh instances are protected
    > using RCU and reference count mechanisms.
    
    Hi Dave, Roland, Eric
    
    So how does this look? in the right direction? anything that need to be fixed?
    
    Or.
    
    ^ permalink raw reply	[flat|nested] 9+ messages in thread

  • end of thread, other threads:[~2012-07-24 14:24 UTC | newest]
    
    Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <1342703938-29904-1-git-send-email-ogerlitz@mellanox.com>
         [not found] ` <1342703938-29904-2-git-send-email-ogerlitz@mellanox.com>
         [not found]   ` <alpine.DEB.2.00.1207190938190.28115@router.home>
         [not found]     ` <50082183.5000402@mellanox.com>
         [not found]       ` <alpine.DEB.2.00.1207191023130.29808@router.home>
         [not found]         ` <alpine.DEB.2.00.1207191023130.29808-sBS69tsa9Uj/9pzu0YdTqQ@public.gmane.org>
    2012-07-19 16:20           ` [PATCH net/for-next V1 1/1] IB/ipoib: break linkage to neighbouring system Or Gerlitz
         [not found]             ` <500833D9.8000001-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
    2012-07-19 17:08               ` David Miller
         [not found]                 ` <20120719.100850.1932622478297549573.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
    2012-07-22  5:29                   ` Or Gerlitz
         [not found]                     ` <500B8FBE.4030600-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
    2012-07-24 14:24                       ` Christoph Lameter
    2012-07-24 14:23               ` Christoph Lameter
    2012-07-20 15:49   ` Or Gerlitz
         [not found]     ` <CAJZOPZ+kRcBjJgB_HaMqeuB5E-SLSqskgoaLZ_hvVx4KffHgpA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
    2012-07-23 16:58       ` Or Gerlitz
    2012-07-23 17:17         ` Eric Dumazet
    2012-07-23 18:37           ` Or Gerlitz
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox;
    as well as URLs for NNTP newsgroup(s).