diff options
Diffstat (limited to 'kernel/latencytop.c')
| -rw-r--r-- | kernel/latencytop.c | 17 | 
1 files changed, 8 insertions, 9 deletions
diff --git a/kernel/latencytop.c b/kernel/latencytop.c index 877fb306d41..17110a4a4fc 100644 --- a/kernel/latencytop.c +++ b/kernel/latencytop.c @@ -194,14 +194,7 @@ __account_scheduler_latency(struct task_struct *tsk, int usecs, int inter)  	account_global_scheduler_latency(tsk, &lat); -	/* -	 * short term hack; if we're > 32 we stop; future we recycle: -	 */ -	tsk->latency_record_count++; -	if (tsk->latency_record_count >= LT_SAVECOUNT) -		goto out_unlock; - -	for (i = 0; i < LT_SAVECOUNT; i++) { +	for (i = 0; i < tsk->latency_record_count; i++) {  		struct latency_record *mylat;  		int same = 1; @@ -227,8 +220,14 @@ __account_scheduler_latency(struct task_struct *tsk, int usecs, int inter)  		}  	} +	/* +	 * short term hack; if we're > 32 we stop; future we recycle: +	 */ +	if (tsk->latency_record_count >= LT_SAVECOUNT) +		goto out_unlock; +  	/* Allocated a new one: */ -	i = tsk->latency_record_count; +	i = tsk->latency_record_count++;  	memcpy(&tsk->latency_record[i], &lat, sizeof(struct latency_record));  out_unlock:  |