Commit 2dfb1952 authored by Mohit P. Tahiliani's avatar Mohit P. Tahiliani Committed by David S. Miller
Browse files

pie: rearrange structure members and their initializations



Rearrange the members of the structure such that closely
referenced members appear together and/or fit in the same
cacheline. Also, change the order of their initializations to
match the order in which they appear in the structure.

Signed-off-by: default avatarMohit P. Tahiliani <tahiliani@nitk.edu.in>
Signed-off-by: default avatarLeslie Monis <lesliemonis@gmail.com>
Signed-off-by: default avatarGautam Ramakrishnan <gautamramk@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1dbfc5e0
Loading
Loading
Loading
Loading
+10 −10
Original line number Original line Diff line number Diff line
@@ -28,13 +28,13 @@ struct pie_params {


/* variables used */
/* variables used */
struct pie_vars {
struct pie_vars {
	u64 prob;		/* probability but scaled by u64 limit. */
	psched_time_t burst_time;
	psched_time_t qdelay;
	psched_time_t qdelay;
	psched_time_t qdelay_old;
	psched_time_t qdelay_old;
	u64 dq_count;		/* measured in bytes */
	psched_time_t burst_time;
	psched_time_t dq_tstamp;	/* drain rate */
	psched_time_t dq_tstamp;	/* drain rate */
	u64 prob;		/* probability but scaled by u64 limit. */
	u64 accu_prob;		/* accumulated drop probability */
	u64 accu_prob;		/* accumulated drop probability */
	u64 dq_count;		/* measured in bytes */
	u32 avg_dq_rate;	/* bytes per pschedtime tick,scaled */
	u32 avg_dq_rate;	/* bytes per pschedtime tick,scaled */
	u32 qlen_old;		/* in bytes */
	u32 qlen_old;		/* in bytes */
	u8 accu_prob_overflows;	/* overflows of accu_prob */
	u8 accu_prob_overflows;	/* overflows of accu_prob */
@@ -45,8 +45,8 @@ struct pie_stats {
	u32 packets_in;		/* total number of packets enqueued */
	u32 packets_in;		/* total number of packets enqueued */
	u32 dropped;		/* packets dropped due to pie_action */
	u32 dropped;		/* packets dropped due to pie_action */
	u32 overlimit;		/* dropped due to lack of space in queue */
	u32 overlimit;		/* dropped due to lack of space in queue */
	u32 maxq;		/* maximum queue size */
	u32 ecn_mark;		/* packets marked with ECN */
	u32 ecn_mark;		/* packets marked with ECN */
	u32 maxq;		/* maximum queue size */
};
};


/* private skb vars */
/* private skb vars */
@@ -56,11 +56,11 @@ struct pie_skb_cb {


static inline void pie_params_init(struct pie_params *params)
static inline void pie_params_init(struct pie_params *params)
{
{
	params->alpha = 2;
	params->target = PSCHED_NS2TICKS(15 * NSEC_PER_MSEC);	/* 15 ms */
	params->beta = 20;
	params->tupdate = usecs_to_jiffies(15 * USEC_PER_MSEC);	/* 15 ms */
	params->tupdate = usecs_to_jiffies(15 * USEC_PER_MSEC);	/* 15 ms */
	params->limit = 1000;	/* default of 1000 packets */
	params->limit = 1000;	/* default of 1000 packets */
	params->target = PSCHED_NS2TICKS(15 * NSEC_PER_MSEC);	/* 15 ms */
	params->alpha = 2;
	params->beta = 20;
	params->ecn = false;
	params->ecn = false;
	params->bytemode = false;
	params->bytemode = false;
	params->dq_rate_estimator = false;
	params->dq_rate_estimator = false;
@@ -68,12 +68,12 @@ static inline void pie_params_init(struct pie_params *params)


static inline void pie_vars_init(struct pie_vars *vars)
static inline void pie_vars_init(struct pie_vars *vars)
{
{
	vars->dq_count = DQCOUNT_INVALID;
	/* default of 150 ms in pschedtime */
	vars->burst_time = PSCHED_NS2TICKS(150 * NSEC_PER_MSEC);
	vars->dq_tstamp = DTIME_INVALID;
	vars->dq_tstamp = DTIME_INVALID;
	vars->accu_prob = 0;
	vars->accu_prob = 0;
	vars->dq_count = DQCOUNT_INVALID;
	vars->avg_dq_rate = 0;
	vars->avg_dq_rate = 0;
	/* default of 150 ms in pschedtime */
	vars->burst_time = PSCHED_NS2TICKS(150 * NSEC_PER_MSEC);
	vars->accu_prob_overflows = 0;
	vars->accu_prob_overflows = 0;
}
}


+1 −1
Original line number Original line Diff line number Diff line
@@ -23,8 +23,8 @@


/* private data for the Qdisc */
/* private data for the Qdisc */
struct pie_sched_data {
struct pie_sched_data {
	struct pie_params params;
	struct pie_vars vars;
	struct pie_vars vars;
	struct pie_params params;
	struct pie_stats stats;
	struct pie_stats stats;
	struct timer_list adapt_timer;
	struct timer_list adapt_timer;
	struct Qdisc *sch;
	struct Qdisc *sch;