diff options
| author | Olof Johansson <olof@lixom.net> | 2011-12-15 22:02:34 -0800 | 
|---|---|---|
| committer | Olof Johansson <olof@lixom.net> | 2011-12-15 22:02:34 -0800 | 
| commit | 02735a29d8ce882ec698803f064e17888874780c (patch) | |
| tree | 6a4afa3bc8b6d4334df24910a56f77adf126b0c7 /include/net/red.h | |
| parent | 8d685b7f4d9c9882442bf1b492558d5f17b694fa (diff) | |
| parent | 3d911ad22e8405c1a333a6812e405cb1a5ae9829 (diff) | |
| download | olio-linux-3.10-02735a29d8ce882ec698803f064e17888874780c.tar.xz olio-linux-3.10-02735a29d8ce882ec698803f064e17888874780c.zip  | |
Merge branch 'at91/defconfig' into next/cleanup
Diffstat (limited to 'include/net/red.h')
| -rw-r--r-- | include/net/red.h | 15 | 
1 files changed, 6 insertions, 9 deletions
diff --git a/include/net/red.h b/include/net/red.h index 3319f16b3be..b72a3b83393 100644 --- a/include/net/red.h +++ b/include/net/red.h @@ -116,7 +116,7 @@ struct red_parms {  	u32		qR;		/* Cached random number */  	unsigned long	qavg;		/* Average queue length: A scaled */ -	psched_time_t	qidlestart;	/* Start of current idle period */ +	ktime_t		qidlestart;	/* Start of current idle period */  };  static inline u32 red_rmask(u8 Plog) @@ -148,17 +148,17 @@ static inline void red_set_parms(struct red_parms *p,  static inline int red_is_idling(struct red_parms *p)  { -	return p->qidlestart != PSCHED_PASTPERFECT; +	return p->qidlestart.tv64 != 0;  }  static inline void red_start_of_idle_period(struct red_parms *p)  { -	p->qidlestart = psched_get_time(); +	p->qidlestart = ktime_get();  }  static inline void red_end_of_idle_period(struct red_parms *p)  { -	p->qidlestart = PSCHED_PASTPERFECT; +	p->qidlestart.tv64 = 0;  }  static inline void red_restart(struct red_parms *p) @@ -170,13 +170,10 @@ static inline void red_restart(struct red_parms *p)  static inline unsigned long red_calc_qavg_from_idle_time(struct red_parms *p)  { -	psched_time_t now; -	long us_idle; +	s64 delta = ktime_us_delta(ktime_get(), p->qidlestart); +	long us_idle = min_t(s64, delta, p->Scell_max);  	int  shift; -	now = psched_get_time(); -	us_idle = psched_tdiff_bounded(now, p->qidlestart, p->Scell_max); -  	/*  	 * The problem: ideally, average length queue recalcultion should  	 * be done over constant clock intervals. This is too expensive, so  |