• Michael S. Tsirkin's avatar
    IB/mthca: prevent event queue overrun · 92898522
    Michael S. Tsirkin authored
    I am seeing EQ overruns in SDP stress tests: if the CQ completion
    handler arms a CQ, this could generate more EQEs, so that EQ will
    never get empty and consumer index will never get updated.
    
    This is similiar to what we have with command interface:
    		/*
    		 * cmd_event() may add more commands.
    		 * The card will think the queue has overflowed if
    		 * we don't tell it we've been processing events.
    		 */
    However, for completion events, we *don't* want to update the consumer
    index on each event. So, perform EQ doorbell coalescing: allocate EQs
    with some spare EQEs, and update once we run out of them.
    
    The value 0x80 was selected to avoid any performance impact.
    Signed-off-by: default avatarMichael S. Tsirkin <mst@mellanox.co.il>
    Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
    92898522
mthca_eq.c 26.6 KB