• Ivan Vecera's avatar
    be2net: move rss_flags field in rss_info to ensure proper alignment · 28ace84b
    Ivan Vecera authored
    The current position of .rss_flags field in struct rss_info causes
    that fields .rsstable and .rssqueue (both 128 bytes long) crosses
    cache-line boundaries. Moving it at the end properly align all fields.
    
    Before patch:
    struct rss_info {
            u64                        rss_flags;            /*     0     8 */
            u8                         rsstable[128];        /*     8   128 */
            /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
            u8                         rss_queue[128];       /*   136   128 */
            /* --- cacheline 4 boundary (256 bytes) was 8 bytes ago --- */
            u8                         rss_hkey[40];         /*   264    40 */
    };
    
    After patch:
    struct rss_info {
            u8                         rsstable[128];        /*     0   128 */
            /* --- cacheline 2 boundary (128 bytes) --- */
            u8                         rss_queue[128];       /*   128   128 */
            /* --- cacheline 4 boundary (256 bytes) --- */
            u8                         rss_hkey[40];         /*   256    40 */
            u64                        rss_flags;            /*   296     8 */
    };
    Signed-off-by: default avatarIvan Vecera <cera@cera.cz>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    28ace84b
be.h 27 KB