Re: [patch] Real-Time Preemption, -RT-2.6.12-rc3-V0.7.46-01

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



t
On Fri, 22 Apr 2005, Inaky Perez-Gonzalez wrote:

> >>>>> Ingo Molnar <[email protected]> writes:
> 
> >> this includes fixes from Daniel Walker, which could fix the plist
> >> related slowdown bugs:
> 
> > there are still some problems remaining: i just ran Esben Nielsen's
> > priority-inheritance validation testsuite, and the plist code gives
> > a worst-case latency of 9.0 msecs.
> 
> With which machine is this? 
> 
> I tried to reproduce with V0.7.45-01 in my 2xPIII 0.9 Ghz I cannot get
> more than 1.9ms when doing 2000 samples repeatedly (60 iterations and
> counting). 
> 
> Did you use other parameters to 'test'?
> 
> # cnt=0 
> # while true
> > do echo -n "$cnt "
> > ./test --samples 2000 file.hist 2>&1 | grep maximum; cnt=$(($cnt+1))
> > done
> 
> With 2.6.12-rc3-V0.7.46-02 I get:

It's still to high , it should be under a millisecond .. 

 
I'm still testing but the times get better with this patch . I was 
initializing the lists to 0, instead of MAX_INT . Let me know if it 
changes anything.


Daniel

Index: linux-2.6.11/include/linux/plist.h
===================================================================
--- linux-2.6.11.orig/include/linux/plist.h	2005-04-22 19:36:54.000000000 +0000
+++ linux-2.6.11/include/linux/plist.h	2005-04-22 19:38:29.000000000 +0000
@@ -251,7 +251,7 @@
 static inline void plist_del_init(struct plist *pl, struct plist *plist)
 {
         plist_del (pl, plist);
-        plist_init(pl, 0);
+        plist_init(pl, INT_MAX);
 }
 
 /* Return the priority a pl node */
Index: linux-2.6.11/kernel/rt.c
===================================================================
--- linux-2.6.11.orig/kernel/rt.c	2005-04-22 15:05:33.000000000 +0000
+++ linux-2.6.11/kernel/rt.c	2005-04-22 19:36:29.000000000 +0000
@@ -939,6 +939,7 @@
 
 	set_task_state(task, TASK_UNINTERRUPTIBLE);
 
+	plist_init (&waiter.list, task->prio);
 	task_blocks_on_lock(&waiter, task, lock, eip);
 
 	TRACE_BUG_ON(!irqs_disabled());

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux