[openib-general] Re: [PATCH] IPoIB splitting CQ, increase both send/recv poll NUM_WC & interval

Roland Dreier rdreier at cisco.com
Wed Apr 19 09:05:34 PDT 2006


 > -       struct ipoib_rx_buf *rx_ring;
 > +       struct ipoib_rx_buf *rx_ring    ____cacheline_aligned_in_smp;
 >  
 >         spinlock_t           tx_lock;
 > -       struct ipoib_tx_buf *tx_ring;
 > +       struct ipoib_tx_buf *tx_ring    ____cacheline_aligned_in_smp; 
 >         unsigned             tx_head;
 >         unsigned             tx_tail;
 >         struct ib_sge        tx_sge;
 >         struct ib_send_wr    tx_wr;
 >  
 > -       struct ib_wc ibwc[IPOIB_NUM_WC];
 > +       struct ib_wc send_ibwc[IPOIB_NUM_SEND_WC]  ____cacheline_aligned_in_smp;
 > +       struct ib_wc recv_ibwc[IPOIB_NUM_RECV_WC]  ____cacheline_aligned_in_smp;

This doesn't look right.  It puts tx_lock in the same cacheline as
rx_ring, and then puts send_ibwc and recv_ibwc in completely different
cachelines.  Wouldn't it make more sense to sort the rx and tx stuff
so that they're each in as few non-shared cachelines as possible?

 - R.



More information about the general mailing list