| 1 |
|
| 2 | #ifndef _NET_ALIGNED_DATA_H
|
| 3 | #define _NET_ALIGNED_DATA_H
|
| 4 |
|
| 5 | #include <linux/atomic.h>
|
| 6 | #include <linux/types.h>
|
| 7 |
|
| 8 | |
| 9 | * Each field or group should have an ____cacheline_aligned_in_smp
|
| 10 | * attribute to ensure no accidental false sharing can happen.
|
| 11 |
|
| 12 | struct net_aligned_data {
|
| 13 | atomic64_t net_cookie ____cacheline_aligned_in_smp;
|
| 14 | #if defined(CONFIG_INET)
|
| 15 | atomic_long_t tcp_memory_allocated ____cacheline_aligned_in_smp;
|
| 16 | atomic_long_t udp_memory_allocated ____cacheline_aligned_in_smp;
|
| 17 | #endif
|
| 18 | };
|
| 19 |
|
| 20 | extern struct net_aligned_data net_aligned_data;
|
| 21 |
|
| 22 | #endif
|