• G
    net/ncsi: Rework the channel monitoring · 83afdc6a
    Gavin Shan 提交于
    The original NCSI channel monitoring was implemented based on a
    backoff algorithm: the GLS response should be received in the
    specified interval. Otherwise, the channel is regarded as dead
    and failover should be taken if current channel is an active one.
    There are several problems in the implementation: (A) On BCM5718,
    we found when the IID (Instance ID) in the GLS command packet
    changes from 255 to 1, the response corresponding to IID#1 never
    comes in. It means we cannot make the unfair judgement that the
    channel is dead when one response is missed. (B) The code's
    readability should be improved. (C) We should do failover when
    current channel is active one and the channel monitoring should
    be marked as disabled before doing failover.
    
    This reworks the channel monitoring to address all above issues.
    The fields for channel monitoring is put into separate struct
    and the state of channel monitoring is predefined. The channel
    is regarded alive if the network controller responses to one of
    two GLS commands or both of them in 5 seconds.
    Signed-off-by: NGavin Shan <gwshan@linux.vnet.ibm.com>
    Reviewed-by: NJoel Stanley <joel@jms.id.au>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    83afdc6a
ncsi-rsp.c 27.1 KB