be2net: move rss_flags field in rss_info to ensure proper alignment
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: Ivan Vecera <cera@cera.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
03d231a963
commit
28ace84b10
@ -436,10 +436,10 @@ struct be_port_resources {
|
|||||||
#define be_is_os2bmc_enabled(adapter) (adapter->flags & BE_FLAGS_OS2BMC)
|
#define be_is_os2bmc_enabled(adapter) (adapter->flags & BE_FLAGS_OS2BMC)
|
||||||
|
|
||||||
struct rss_info {
|
struct rss_info {
|
||||||
u64 rss_flags;
|
|
||||||
u8 rsstable[RSS_INDIR_TABLE_LEN];
|
u8 rsstable[RSS_INDIR_TABLE_LEN];
|
||||||
u8 rss_queue[RSS_INDIR_TABLE_LEN];
|
u8 rss_queue[RSS_INDIR_TABLE_LEN];
|
||||||
u8 rss_hkey[RSS_HASH_KEY_LEN];
|
u8 rss_hkey[RSS_HASH_KEY_LEN];
|
||||||
|
u64 rss_flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define BE_INVALID_DIE_TEMP 0xFF
|
#define BE_INVALID_DIE_TEMP 0xFF
|
||||||
|
|||||||
Reference in New Issue
Block a user