• Ursula Braun's avatar
    smc: no consumer update in tasklet context · 6b5771aa
    Ursula Braun authored
    The SMC protocol requires to send a separate consumer cursor update,
    if it cannot be piggybacked to updates of the producer cursor.
    When receiving a blocked signal from the sender, this update is sent
    already in tasklet context. In addition consumer cursor updates are
    sent after data receival.
    Sending of cursor updates is controlled by sequence numbers.
    Assuming receiving stray messages the receiver drops updates with older
    sequence numbers than an already received cursor update with a higher
    sequence number.
    Sending consumer cursor updates in tasklet context may result in
    wrong order sends and its corresponding drops at the receiver. Since
    it is sufficient to send consumer cursor updates once the data is
    received, this patch gets rid of the consumer cursor update in tasklet
    context to guarantee in-sequence arrival of cursor updates.
    Signed-off-by: default avatarUrsula Braun <ubraun@linux.vnet.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6b5771aa
smc_tx.c 14.4 KB