• David Laight's avatar
    net: sctp: Optimise the way 'sctp_arg_t' values are initialised. · b9420e1c
    David Laight authored
    Even if memset() is inlined (as on x86) using it to zero the union
    generates a memory word write of zero, followed by a write of the
    smaller field, and then a read of the word.
    As well as being a lot of instructions the sequence is unlikely to
    be optimised by the store-load forward hardware so will be slow.
    
    Instead allocate a field of the union that is the same size as the
    entire union and write a zero value to it. The compiler will then
    generate the required value in a register.
    
    Zeroing the union shouldn't be necessary, but this patch series isn't
    intended to have a behavioural change.
    Signed-off-by: default avatarDavid Laight <david.laight@aculab.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b9420e1c
command.h 9.06 KB