All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.4
@ 2004-10-27 16:12 Mark_H_Johnson
  2004-10-27 21:04 ` Ingo Molnar
  0 siblings, 1 reply; 40+ messages in thread
From: Mark_H_Johnson @ 2004-10-27 16:12 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Karsten Wiese, Bill Huey, Adam Heath, K.R. Foley, linux-kernel,
	Florian Schmidt, Fernando Pablo Lopez-Lezcano, Lee Revell,
	Rui Nuno Capela, Thomas Gleixner, Michal Schmidt

>i have released the -V0.4 Real-Time Preemption patch, which can be
>downloaded from:

I built with this (and not V0.4.1) and had the following results:

[1] No problems with the build.

[2] Booting to single user without problems.

[3] telinit 3 - still have the atomic counter underflow BUG related
to qdisc_destroy. Otherwise, normal boot messages.

[4] telinit 5 - normal boot messages and display came up OK. Able
to login and start testing.

[5] Running my stress test, the first test (X server) appeared to
run OK. The second test (/proc or top) did not run properly. The
RT audio test appeared to take the whole system (both CPU's) and
the terminal window showing top did not appear until the audio
test finished (and was quickly taken down by the script). Could not
move the mouse at all during that test. The third test (network
output) ran a short period and then the machine locked up. Had
to use the hardware reset to recover.

The only message in the system log that was unusual was
nrpe[4151]: Error: Could not complete SSL handshake.
(no messages after this one)
everything before that was OK in the system log.

Looking at the application level charts from the first two
tests (after rebooting with -T3), the measured CPU time was
VERY SMOOTH, almost no blips until the end of the first test
and start of the second test(680 usec and 570 usec respectively).
The audio loop had some (6) spikes, 4 in the first test and 2 in
the second. The longest spike was over 60 msec in duration.

My script that samples latency traces > 200 usec had no
output. Not sure if that is because it didn't run or if there
were no traces to record.

I looked at the updated patch (V0.4.1) but I am not sure it
fixes this lock up problem. Please advise.

--Mark H Johnson
  <mailto:Mark_H_Johnson@raytheon.com>


^ permalink raw reply	[flat|nested] 40+ messages in thread
* Re: [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.4
@ 2004-10-27 21:48 Remi Colinet
  0 siblings, 0 replies; 40+ messages in thread
From: Remi Colinet @ 2004-10-27 21:48 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel

Hi,

Here is a trivial compile fix :

CC      lib/string.o
  CC      lib/vsprintf.o
  AR      lib/lib.a
  CC      arch/i386/lib/bitops.o
  CC      arch/i386/lib/dec_and_lock.o
  CC      arch/i386/lib/delay.o
  CC      arch/i386/lib/memcpy.o
  CC      arch/i386/lib/usercopy.o
  AR      arch/i386/lib/lib.a
  GEN     .version
  CHK     include/linux/compile.h
  UPD     include/linux/compile.h
  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1
kernel/built-in.o(.text+0x8450): In function `cpu_callback':
kernel/fork.c:1421: undefined reference to `takeover_tasklets'
make: *** [.tmp_vmlinux1] Error 1


--- kernel/softirq.c.orig       2004-10-27 23:44:14.160948016 +0200
+++ kernel/softirq.c    2004-10-27 23:44:34.571845088 +0200
@@ -464,7 +464,7 @@
        BUG();
 }
 
-static void takeover_tasklets(unsigned int cpu)
+void takeover_tasklets(unsigned int cpu)
 {
        struct tasklet_struct **i;
 

Remi

^ permalink raw reply	[flat|nested] 40+ messages in thread
* Re: [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.4
@ 2004-10-27 21:30 Mark_H_Johnson
  2004-10-28  7:03 ` Ingo Molnar
  0 siblings, 1 reply; 40+ messages in thread
From: Mark_H_Johnson @ 2004-10-27 21:30 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Karsten Wiese, Bill Huey, Adam Heath, K.R. Foley, linux-kernel,
	Florian Schmidt, Fernando Pablo Lopez-Lezcano, Lee Revell,
	Rui Nuno Capela, Thomas Gleixner, Michal Schmidt

>the network one could perhaps be related to the network deadlocks
>reported by others. Would be nice to turn on RWSEM_DETECT_DEADLOCKS and
>to use a serial logging if possible.
Would be nice but I don't have serial logging available at this point.
I may be able to set it up in a couple of days though.

>does the audio test use alot of CPU time? In that case it would be
>normal for the RT task to 'lock' the system up. In any case it would be
>nice to try 0.4.2 because it has more check-preemption fixes affecting
>both UP and SMP systems.
I am aware of slow responses normally during tests. However the audio
test should only use one CPU out of two. The other CPU is busy as well
with a cpu burner (nice 10) but that should leave me CPU cycles
to move the mouse, swap windows, etc.  The "lock up" I saw this time
was a lot more severe (no mouse motion for several minutes at a time).
I knew the system was still running since the audio continued to play.

I'll try another build in the morning with whatever your latest is.

--Mark H Johnson
  <mailto:Mark_H_Johnson@raytheon.com>


^ permalink raw reply	[flat|nested] 40+ messages in thread
* [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U5
@ 2004-10-18 14:50 Ingo Molnar
  2004-10-19 12:46 ` [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U6 Ingo Molnar
  0 siblings, 1 reply; 40+ messages in thread
From: Ingo Molnar @ 2004-10-18 14:50 UTC (permalink / raw)
  To: linux-kernel
  Cc: Lee Revell, Rui Nuno Capela, Mark_H_Johnson, K.R. Foley,
	Bill Huey, Adam Heath, Florian Schmidt


i have released the -U5 Real-Time Preemption patch:

  http://redhat.com/~mingo/voluntary-preempt/voluntary-preempt-2.6.9-rc4-mm1-U5

this is a release intended to increase stability, but since it also
includes new debug features and related cleanups it might introduce new
regressions. Be careful.

there are two big changes:

 - debug feature: automatic semaphore/rwsem deadlock detection, based on
   the code from Igor Manyilov and Bill Huey.

this is a very nice feature that should help in debugging the remaining
deadlocks. The deadlock detection feature has already helped me fix a
bug that was causing hangs in the VFS, so it's really useful.

 - generic semaphore implementation

the generic semaphore implementation (which uses rwsems) makes it
possible to use the deadlock detection mechanism for all the mutex types
we currently have: semaphores, rw-semaphores, spinlock-mutexes and
rwlock-mutexes. Another benefit is that PREEMPT_REALTIME becomes much
more portable this way. (although it's still x86-only at the moment.)

other changes since -U4:

 - crash fix: fixed a possible "unbound recursion upon IRQ entry" bug.
   introduced preempt_schedule_irq() which now schedules without
   enabling interrupts again, preventing new IRQs from hitting this
   task again and triggering preemption. This might fix the
   'infinite stackdumps' problem Rui Nuno Capela was seeing.

 - deadlock fix: is_subdir()'s PREEMPT_REALTIME locking was buggy. This 
   could perhaps fix the other problem reported by Rui Nuno Capela.

 - i8253_lock fixes: apm, hd.c, gameport.c and analog.c were all 
   improperly importing the variable while overriding the prototype. 
   This fixes the bug reported by Florian Schmidt.

 - possible crash fix: one particular lock in selinux has to be 
   mutex-based, because while held it calls other mutex-using code.

 - two more selinux locks converted to raw spinlocks, because they were
   called from within raw-critical sections.

 - debug feature: enforce interrupts-enabled upon schedule().
   (Note that this does not break sleep_on() because sleep_on() does not
   disable interrupts in the PREEMPT_REALTIME mode. It might break with 
   !PREEMPT_REALTIME though.)

 - locking cleanup: converted the IPC code from raw spinlocks & RCU to
   spinlock-mutexes.

 - code cleanup: cleaned up the generic rwsem code.

 - debug feature: implemented /proc/sys/kernel/trace_verbose runtime
   flag (default:0), which enables a much more verbose printout in
   /proc/latency_trace.  This trace format can be useful in e.g. 
   debugging timestamp weirdnesses.

 - irqs-off fix: there was one codepath where irqd would call schedule() 
   with interrupts disabled.

 - debug feature: the NMI entries in the latency trace now also include 
   the last-observed-EFLAGS value. Can be useful in figuring out what a
   certain CPU is doing and why.

 - cleanup: fixed preemption-off ordering: often the spinlock (and 
   scheduler) code would re-enable preemption and interrupts in the
   wrong order, opening up a small window for an interrupt handler to
   fit in and increase the latency of that almost-finished critical
   section.

 - cleanup: consolidated various bug-printouts. It should now be easy to
   find whether anything bad happens even amongst lots of preempt-timing
   printouts: 'dmesg | grep BUG'.

to create a -U5 tree from scratch, the patching order is:

   http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.8.tar.bz2
 + http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.9-rc4.bz2
 + http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.9-rc4/2.6.9-rc4-mm1/2.6.9-rc4-mm1.bz2
 + http://redhat.com/~mingo/voluntary-preempt/voluntary-preempt-2.6.9-rc4-mm1-U5

	Ingo

^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2004-10-30  3:23 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-27 16:12 [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.4 Mark_H_Johnson
2004-10-27 21:04 ` Ingo Molnar
  -- strict thread matches above, loose matches on Subject: below --
2004-10-27 21:48 Remi Colinet
2004-10-27 21:30 Mark_H_Johnson
2004-10-28  7:03 ` Ingo Molnar
2004-10-18 14:50 [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U5 Ingo Molnar
2004-10-19 12:46 ` [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U6 Ingo Molnar
2004-10-19 18:00   ` [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U7 Ingo Molnar
2004-10-20  9:45     ` [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U8 Ingo Molnar
2004-10-21 13:27       ` [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U9 Ingo Molnar
2004-10-22 13:35         ` [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U9.3 Ingo Molnar
2004-10-22 15:50           ` [patch] Real-Time Preemption, -RT-2.6.9-mm1-U10 Ingo Molnar
2004-10-22 17:56             ` [patch] Real-Time Preemption, -RT-2.6.9-mm1-U10.2 Ingo Molnar
2004-10-25 10:40               ` [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0 Ingo Molnar
2004-10-27  0:15                 ` [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.3 Ingo Molnar
2004-10-27 12:43                   ` Rui Nuno Capela
2004-10-27 13:53                     ` Ingo Molnar
2004-10-27 15:26                       ` [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.4 Rui Nuno Capela
2004-10-27 15:30                         ` Lee Revell
2004-10-27 17:39                           ` Rui Nuno Capela
2004-10-27 18:57                             ` karsten wiese
2004-10-27 20:28                               ` Rui Nuno Capela
2004-10-27 18:59                             ` karsten wiese
2004-10-27 20:01                         ` Ingo Molnar
2004-10-27 20:51                         ` Ingo Molnar
2004-10-27 21:19                           ` Ingo Molnar
2004-10-27 23:31                             ` Rui Nuno Capela
2004-10-28  6:36                               ` Ingo Molnar
2004-10-28  8:31                                 ` Rui Nuno Capela
2004-10-28  8:56                                   ` Ingo Molnar
2004-10-28  9:17                                     ` Rui Nuno Capela
2004-10-28  9:32                                       ` Ingo Molnar
2004-10-28 16:33                                         ` Rui Nuno Capela
2004-10-28 19:16                                           ` Ingo Molnar
2004-10-28 23:49                                             ` Rui Nuno Capela
2004-10-29  0:07                                               ` Lee Revell
2004-10-29  7:30                                               ` Ingo Molnar
2004-10-29 15:00                                                 ` Rui Nuno Capela
2004-10-29 17:57                                                   ` Lee Revell
2004-10-29 14:31                                           ` Florian Schmidt
2004-10-29 14:25                                             ` Ingo Molnar
2004-10-29 15:09                                               ` Florian Schmidt
2004-10-29 14:53                                             ` Florian Schmidt
2004-10-30  3:09                                             ` Lee Revell
2004-10-30  3:22                                               ` Joe
2004-10-27 13:03                   ` Ingo Molnar
2004-10-27 21:41                     ` Magnus Naeslund(t)
2004-10-28  6:55                       ` Ingo Molnar
2004-10-28  9:31                         ` Magnus Naeslund(t)
2004-10-28  6:58                       ` Ingo Molnar
2004-10-28 14:14                     ` K.R. Foley
2004-10-28 14:20                       ` Ingo Molnar

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.