mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
net: move dev_tx_weight to net_hotdata
dev_tx_weight is used in tx fast path. Move it to net_hotdata for better cache locality. Signed-off-by: Eric Dumazet <edumazet@google.com> Acked-by: Soheil Hassas Yeganeh <soheil@google.com> Reviewed-by: David Ahern <dsahern@kernel.org> Link: https://lore.kernel.org/r/20240306160031.874438-9-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
0139806eeb
commit
26722dc74b
@ -4794,7 +4794,6 @@ void dev_fetch_sw_netstats(struct rtnl_link_stats64 *s,
|
||||
void dev_get_tstats64(struct net_device *dev, struct rtnl_link_stats64 *s);
|
||||
|
||||
extern int dev_rx_weight;
|
||||
extern int dev_tx_weight;
|
||||
|
||||
enum {
|
||||
NESTED_SYNC_IMM_BIT,
|
||||
|
@ -21,6 +21,7 @@ struct net_hotdata {
|
||||
int netdev_budget_usecs;
|
||||
int tstamp_prequeue;
|
||||
int max_backlog;
|
||||
int dev_tx_weight;
|
||||
};
|
||||
|
||||
extern struct net_hotdata net_hotdata;
|
||||
|
@ -4409,7 +4409,6 @@ int weight_p __read_mostly = 64; /* old backlog weight */
|
||||
int dev_weight_rx_bias __read_mostly = 1; /* bias for backlog weight */
|
||||
int dev_weight_tx_bias __read_mostly = 1; /* bias for output_queue quota */
|
||||
int dev_rx_weight __read_mostly = 64;
|
||||
int dev_tx_weight __read_mostly = 64;
|
||||
|
||||
/* Called with irq disabled */
|
||||
static inline void ____napi_schedule(struct softnet_data *sd,
|
||||
|
@ -16,5 +16,6 @@ struct net_hotdata net_hotdata __cacheline_aligned = {
|
||||
|
||||
.tstamp_prequeue = 1,
|
||||
.max_backlog = 1000,
|
||||
.dev_tx_weight = 64,
|
||||
};
|
||||
EXPORT_SYMBOL(net_hotdata);
|
||||
|
@ -302,7 +302,7 @@ static int proc_do_dev_weight(struct ctl_table *table, int write,
|
||||
if (!ret && write) {
|
||||
weight = READ_ONCE(weight_p);
|
||||
WRITE_ONCE(dev_rx_weight, weight * dev_weight_rx_bias);
|
||||
WRITE_ONCE(dev_tx_weight, weight * dev_weight_tx_bias);
|
||||
WRITE_ONCE(net_hotdata.dev_tx_weight, weight * dev_weight_tx_bias);
|
||||
}
|
||||
mutex_unlock(&dev_weight_mutex);
|
||||
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include <net/sch_generic.h>
|
||||
#include <net/pkt_sched.h>
|
||||
#include <net/dst.h>
|
||||
#include <net/hotdata.h>
|
||||
#include <trace/events/qdisc.h>
|
||||
#include <trace/events/net.h>
|
||||
#include <net/xfrm.h>
|
||||
@ -409,7 +410,7 @@ static inline bool qdisc_restart(struct Qdisc *q, int *packets)
|
||||
|
||||
void __qdisc_run(struct Qdisc *q)
|
||||
{
|
||||
int quota = READ_ONCE(dev_tx_weight);
|
||||
int quota = READ_ONCE(net_hotdata.dev_tx_weight);
|
||||
int packets;
|
||||
|
||||
while (qdisc_restart(q, &packets)) {
|
||||
|
Loading…
Reference in New Issue
Block a user