mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
@ 2005-08-11 18:39 Guillaume Foliard
  2005-08-12 12:53 ` Ingo Molnar
  0 siblings, 1 reply; 18+ messages in thread
From: Guillaume Foliard @ 2005-08-11 18:39 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 677 bytes --]

Hi,

Here is the compilation error I had with 0.7.53-02 :


kernel/rcupdate.c: In function 'rcu_init':
kernel/rcupdate.c:818: error: invalid storage class for function 'rcu_torture_init'
kernel/rcupdate.c:820: warning: implicit declaration of function 'rcu_torture_init'
kernel/rcupdate.c: At top level:
kernel/rcupdate.c:1187: warning: conflicting types for 'rcu_torture_init'
kernel/rcupdate.c:1187: error: static declaration of 'rcu_torture_init' follows non-static declaration
kernel/rcupdate.c:820: error: previous implicit declaration of 'rcu_torture_init' was here

The .config is attached.
"gcc --version" gives : gcc (GCC) 4.0.2 20050806 (prerelease) (Debian 4.0.1-4)

[-- Attachment #2: config.gz --]
[-- Type: application/x-gzip, Size: 9055 bytes --]

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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-11 18:39 [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features Guillaume Foliard
@ 2005-08-12 12:53 ` Ingo Molnar
  2005-08-12 19:27   ` Guillaume Foliard
  0 siblings, 1 reply; 18+ messages in thread
From: Ingo Molnar @ 2005-08-12 12:53 UTC (permalink / raw)
  To: Guillaume Foliard; +Cc: linux-kernel


On Thu, 11 Aug 2005, Guillaume Foliard wrote:

> Hi,
> 
> Here is the compilation error I had with 0.7.53-02 :

thanks - i've uploaded the -53-05 patch which should fix this - does it
build/work for you now?

	Ingo

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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-12 12:53 ` Ingo Molnar
@ 2005-08-12 19:27   ` Guillaume Foliard
  2005-08-12 19:47     ` Guillaume Foliard
  2005-08-12 20:07     ` Chuck Harding
  0 siblings, 2 replies; 18+ messages in thread
From: Guillaume Foliard @ 2005-08-12 19:27 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel

On Friday 12 August 2005 14:53, Ingo Molnar wrote:
> On Thu, 11 Aug 2005, Guillaume Foliard wrote:
> > Hi,
> >
> > Here is the compilation error I had with 0.7.53-02 :
>
> thanks - i've uploaded the -53-05 patch which should fix this - does it
> build/work for you now?

I've tried -53-07. Build is ok. Kernel has booted and is running.

Thank you.

Guillaume


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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-12 19:27   ` Guillaume Foliard
@ 2005-08-12 19:47     ` Guillaume Foliard
  2005-08-12 20:07     ` Chuck Harding
  1 sibling, 0 replies; 18+ messages in thread
From: Guillaume Foliard @ 2005-08-12 19:47 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: linux-kernel

On Friday 12 August 2005 21:27, Guillaume Foliard wrote:
> On Friday 12 August 2005 14:53, Ingo Molnar wrote:
> > On Thu, 11 Aug 2005, Guillaume Foliard wrote:
> > > Hi,
> > >
> > > Here is the compilation error I had with 0.7.53-02 :
> >
> > thanks - i've uploaded the -53-05 patch which should fix this - does it
> > build/work for you now?
>
> I've tried -53-07. Build is ok. Kernel has booted and is running.

I'm running dmesg from times to times and just catched this one :

BUG: kblockd/0/84: leaked RT prio 98 (110)?
 [<c0139e02>] up_mutex+0xd1/0x11e (8)
 [<c014b0a1>] kmem_cache_alloc+0x5d/0xe1 (32)
 [<c02efd97>] __scsi_get_command+0x23/0x66 (32)
 [<c02efe0f>] scsi_get_command+0x35/0x9e (28)
 [<c02f5a97>] scsi_prep_fn+0x120/0x220 (28)
 [<c02a35f8>] elv_next_request+0x5c/0x1bd (36)
 [<c029e7ff>] get_device+0x1b/0x24 (12)
 [<c02f5c8b>] scsi_request_fn+0x4b/0x3a0 (16)
 [<c02ac92f>] as_work_handler+0x2b/0x3d (40)
 [<c013093d>] worker_thread+0x193/0x259 (16)
 [<c02ac904>] as_work_handler+0x0/0x3d (32)
 [<c011b8e2>] default_wake_function+0x0/0x22 (32)
 [<c01307aa>] worker_thread+0x0/0x259 (32)
 [<c0135b73>] kthread+0x98/0x9c (4)
 [<c0135adb>] kthread+0x0/0x9c (24)
 [<c0101011>] kernel_thread_helper+0x5/0xb (16)
---------------------------
| preempt count: 00000001 ]
| 1-level deep critical section nesting:
----------------------------------------
.. [<c0139d4e>] .... up_mutex+0x1d/0x11e
.....[<00000000>] ..   ( <= _stext+0x3feffde0/0x47)


Also, during boot this one occured :

WARNING: swapper/1 changed soft IRQ-flags.
 [<c032ce28>] rh_call_control+0xd9/0x3f2 (8)
 [<c013a82b>] sub_preempt_count+0x18/0x1c (20)
 [<c0139da4>] up_mutex+0x73/0x11e (28)
 [<c032df0b>] hcd_submit_urb+0x1e1/0x22e (32)
 [<c032ee5a>] usb_start_wait_urb+0x69/0x10c (44)
 [<c013a82b>] sub_preempt_count+0x18/0x1c (64)
 [<c013934d>] __init_rt_mutex+0x37/0x56 (12)
 [<c013a440>] _spin_lock_init+0x30/0x3c (16)
 [<c032ef8c>] usb_internal_control_msg+0x8f/0x9b (28)
 [<c032f02c>] usb_control_msg+0x94/0xa8 (28)
 [<c032f8ed>] usb_get_descriptor+0x94/0xc8 (56)
 [<c014b001>] cache_flusharray+0x6a/0xad (40)
 [<c032fd2a>] usb_get_device_descriptor+0x62/0x8e (32)
 [<c032abda>] usb_set_device_state+0x18/0x54 (24)
 [<c032d860>] register_root_hub+0x6e/0x148 (20)
 [<c032e69c>] usb_add_hcd+0x1ef/0x3aa (40)
 [<c0332c9d>] usb_hcd_pci_probe+0x1cd/0x2f9 (56)
 [<c02445de>] pci_match_device+0x1e/0xc8 (20)
 [<c02446cc>] __pci_device_probe+0x44/0x4f (28)
 [<c0244700>] pci_device_probe+0x29/0x3f (20)
 [<c029fa56>] driver_probe_device+0x3d/0xa7 (20)
 [<c048c86f>] klist_dec_and_del+0x1a/0x1e (12)
 [<c029fb34>] __driver_attach+0x0/0x4e (16)
 [<c029fb73>] __driver_attach+0x3f/0x4e (4)
 [<c029f17c>] bus_for_each_dev+0x5b/0x7b (20)
 [<c029fba8>] driver_attach+0x26/0x2a (44)
 [<c029fb34>] __driver_attach+0x0/0x4e (16)
 [<c029f61a>] bus_add_driver+0x6e/0xce (4)
 [<c0244932>] pci_register_driver+0x89/0xab (32)
 [<c0617b70>] init+0x1d/0x25 (24)
 [<c05fe83d>] do_initcalls+0x54/0xce (8)
 [<c01002a2>] init+0x0/0x1ae (16)
 [<c01002d5>] init+0x33/0x1ae (16)
 [<c010100c>] kernel_thread_helper+0x0/0xb (12)
 [<c0101011>] kernel_thread_helper+0x5/0xb (4)
---------------------------
| preempt count: 00000000 ]
| 0-level deep critical section nesting:
----------------------------------------



Guillaume


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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-12 19:27   ` Guillaume Foliard
  2005-08-12 19:47     ` Guillaume Foliard
@ 2005-08-12 20:07     ` Chuck Harding
  1 sibling, 0 replies; 18+ messages in thread
From: Chuck Harding @ 2005-08-12 20:07 UTC (permalink / raw)
  To: Linux Kernel Discussion List; +Cc: Ingo Molnar

On Fri, 12 Aug 2005, Guillaume Foliard wrote:

> On Friday 12 August 2005 14:53, Ingo Molnar wrote:
>> On Thu, 11 Aug 2005, Guillaume Foliard wrote:
>>> Hi,
>>>
>>> Here is the compilation error I had with 0.7.53-02 :
>>
>> thanks - i've uploaded the -53-05 patch which should fix this - does it
>> build/work for you now?
>
> I've tried -53-07. Build is ok. Kernel has booted and is running.
>
> Thank you.
>
> Guillaume
>

I still get a compile error in drivers/ide/ide-taskfile.c because the
conditionals around references to flag are not consistant. The patch
I sent for -53-06 should still work to correct this.

-- 
Charles D. (Chuck) Harding <charding@llnl.gov>  Voice: 925-423-8879
Senior Computer Associate         ICCD            Fax: 925-423-6961
Lawrence Livermore National Laboratory      Computation Directorate
Livermore, CA USA  http://www.llnl.gov  GPG Public Key ID: B9EB6601
------------------ http://tinyurl.com/5w5ey -----------------------
-- Fad: In one era and out the other. --

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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-15 23:39           ` George Anzinger
@ 2005-08-16  6:36             ` Thomas Gleixner
  0 siblings, 0 replies; 18+ messages in thread
From: Thomas Gleixner @ 2005-08-16  6:36 UTC (permalink / raw)
  To: george
  Cc: Ingo Molnar, Lee Revell, Ryan Brown, linux-kernel, Paul E. McKenney

On Mon, 2005-08-15 at 16:39 -0700, George Anzinger wrote:
> I haven't looked at this new code all that closely as yet.  One thing I 
> did notice is that there is an assumption that the "timer being 
> delivered flag" can be shared between LR timers and HR timers.  I 
> suspect this is wrong as the delivery code is in seperate threads (I 
> assume).  This could lead to del_timer_async missing a timer.

You're right, I found this yesterday night. Silly me.

This happened when I moved the hr timers into the tvec_t_base_s
structure due to Olegs  changes to the timer_list and the deletion code.

tglx



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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-15  6:29         ` Ingo Molnar
@ 2005-08-15 23:39           ` George Anzinger
  2005-08-16  6:36             ` Thomas Gleixner
  0 siblings, 1 reply; 18+ messages in thread
From: George Anzinger @ 2005-08-15 23:39 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Lee Revell, Ryan Brown, linux-kernel, Thomas Gleixner, Paul E. McKenney

Ingo Molnar wrote:
> * Ingo Molnar <mingo@elte.hu> wrote:
> 
> 
>>* George Anzinger <george@mvista.com> wrote:
>>
>>
>>>Ingo, all
>>>
>>>I, silly person that I am, configured an RT, SMP, PREEMPT_DEBUG system. 
>>> Someone put code in the NMI path to modify the preempt count which, 
>>>often as not will generate a PREEMPT_DEBUG message as there is no tell 
>>>what state the preempt count is in on an NMI interrupt.  I have sent 
>>>the attached patch to Andrew on this, but meanwhile, if you want RT, 
>>>SMP, PREEMPT_DEBUG you will be much better off with this.
>>
>>ah - thanks, applied. Might explain some of the recent SMP weirdnesses 
>>i'm seeing. Attributed them to the HRT patch ;-)
> 
> 
> i'm still seeing weird crashes under SMP, which go away if i disable 
> CONFIG_HIGH_RES_TIMERS. (this after i fixed a couple of other SMP bugs 
> in the HRT code) It happens sometime during the bootup, after enabling 
> the network but before users can log in. There's no good debug info, 
> just a hang that comes from all CPUs trying to get some debug info out 
> but crashing deeply.
> 
I haven't looked at this new code all that closely as yet.  One thing I 
did notice is that there is an assumption that the "timer being 
delivered flag" can be shared between LR timers and HR timers.  I 
suspect this is wrong as the delivery code is in seperate threads (I 
assume).  This could lead to del_timer_async missing a timer.

In the prior patch we just ignored the del_timer_async issue for HR 
timers (code I plan to do soon).  This WAS taken care of in earlier 
kernels by a reuse of one of the list link fields, but Andrew convince 
me that this was _not_ good.

So, my guess, a nanosleep for an RT task (I think you said these are 
promoted to HR) is completing and over writing the deliver in progress 
flag for a LR timer which just happens to have a del_timer_sync going on 
at the same time.
-- 
George Anzinger   george@mvista.com
HRT (High-res-timers):  http://sourceforge.net/projects/high-res-timers/

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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-14  2:12       ` Ingo Molnar
@ 2005-08-15  6:29         ` Ingo Molnar
  2005-08-15 23:39           ` George Anzinger
  0 siblings, 1 reply; 18+ messages in thread
From: Ingo Molnar @ 2005-08-15  6:29 UTC (permalink / raw)
  To: George Anzinger
  Cc: Lee Revell, Ryan Brown, linux-kernel, Thomas Gleixner, Paul E. McKenney


* Ingo Molnar <mingo@elte.hu> wrote:

> * George Anzinger <george@mvista.com> wrote:
> 
> > Ingo, all
> > 
> > I, silly person that I am, configured an RT, SMP, PREEMPT_DEBUG system. 
> >  Someone put code in the NMI path to modify the preempt count which, 
> > often as not will generate a PREEMPT_DEBUG message as there is no tell 
> > what state the preempt count is in on an NMI interrupt.  I have sent 
> > the attached patch to Andrew on this, but meanwhile, if you want RT, 
> > SMP, PREEMPT_DEBUG you will be much better off with this.
> 
> ah - thanks, applied. Might explain some of the recent SMP weirdnesses 
> i'm seeing. Attributed them to the HRT patch ;-)

i'm still seeing weird crashes under SMP, which go away if i disable 
CONFIG_HIGH_RES_TIMERS. (this after i fixed a couple of other SMP bugs 
in the HRT code) It happens sometime during the bootup, after enabling 
the network but before users can log in. There's no good debug info, 
just a hang that comes from all CPUs trying to get some debug info out 
but crashing deeply.

	Ingo

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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-13  0:57     ` George Anzinger
@ 2005-08-14  2:12       ` Ingo Molnar
  2005-08-15  6:29         ` Ingo Molnar
  0 siblings, 1 reply; 18+ messages in thread
From: Ingo Molnar @ 2005-08-14  2:12 UTC (permalink / raw)
  To: George Anzinger
  Cc: Lee Revell, Ryan Brown, linux-kernel, Thomas Gleixner, Paul E. McKenney


* George Anzinger <george@mvista.com> wrote:

> Ingo, all
> 
> I, silly person that I am, configured an RT, SMP, PREEMPT_DEBUG system. 
>  Someone put code in the NMI path to modify the preempt count which, 
> often as not will generate a PREEMPT_DEBUG message as there is no tell 
> what state the preempt count is in on an NMI interrupt.  I have sent 
> the attached patch to Andrew on this, but meanwhile, if you want RT, 
> SMP, PREEMPT_DEBUG you will be much better off with this.

ah - thanks, applied. Might explain some of the recent SMP weirdnesses 
i'm seeing. Attributed them to the HRT patch ;-)

	Ingo

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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-13  0:32   ` Lee Revell
@ 2005-08-13  0:57     ` George Anzinger
  2005-08-14  2:12       ` Ingo Molnar
  0 siblings, 1 reply; 18+ messages in thread
From: George Anzinger @ 2005-08-13  0:57 UTC (permalink / raw)
  To: Lee Revell
  Cc: Ryan Brown, Ingo Molnar, linux-kernel, Thomas Gleixner, Paul E. McKenney

[-- Attachment #1: Type: text/plain, Size: 538 bytes --]

Ingo, all

I, silly person that I am, configured an RT, SMP, PREEMPT_DEBUG system. 
  Someone put code in the NMI path to modify the preempt count which, 
often as not will generate a PREEMPT_DEBUG message as there is no tell 
what state the preempt count is in on an NMI interrupt.  I have sent the 
attached patch to Andrew on this, but meanwhile, if you want RT, SMP, 
PREEMPT_DEBUG you will be much better off with this.
-- 
George Anzinger   george@mvista.com
HRT (High-res-timers):  http://sourceforge.net/projects/high-res-timers/

[-- Attachment #2: fix-nmi-enter.patch --]
[-- Type: text/plain, Size: 1296 bytes --]

Source: MontaVista Software, Inc. George Anzinger <george@mvista.com>
Type: Defect Fix 

Description:

    Modifying a word from NMI code runs the very real risk of loosing
    either then new or the old bits.  Remember, we can not prevent an
    NMI interrupt from ANYWHERE, inparticular between the read and the
    write of a read modify write sequence.

    This patch removes the update of the preempt count from the NMI
    path.

Signed-off-by: George Anzinger<george@mvista.com>

 hardirq.h |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

Index: linux-2.6.13-rc/include/linux/hardirq.h
===================================================================
--- linux-2.6.13-rc.orig/include/linux/hardirq.h
+++ linux-2.6.13-rc/include/linux/hardirq.h
@@ -98,9 +98,12 @@ extern void synchronize_irq(unsigned int
 #else
 # define synchronize_irq(irq)	barrier()
 #endif
-
-#define nmi_enter()		irq_enter()
-#define nmi_exit()		sub_preempt_count(HARDIRQ_OFFSET)
+/*
+ * Re think these.  NMI _must_not_ share data words with non-nmi code
+ * Meanwhile, just do a no-op.
+ */
+#define nmi_enter()	/*	irq_enter()  */
+#define nmi_exit()	/*	sub_preempt_count(HARDIRQ_OFFSET) */
 
 #ifndef CONFIG_VIRT_CPU_ACCOUNTING
 static inline void account_user_vtime(struct task_struct *tsk)

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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-13  0:28 ` Ryan Brown
@ 2005-08-13  0:32   ` Lee Revell
  2005-08-13  0:57     ` George Anzinger
  0 siblings, 1 reply; 18+ messages in thread
From: Lee Revell @ 2005-08-13  0:32 UTC (permalink / raw)
  To: Ryan Brown
  Cc: Ingo Molnar, linux-kernel, Thomas Gleixner, Paul E. McKenney,
	george anzinger

On Sat, 2005-08-13 at 12:28 +1200, Ryan Brown wrote:
> is there a patch available for -rc6?
> 

Not yet.  Whatever you see here:

http://people.redhat.com/mingo/realtime-preempt/

is the latest version.

Lee


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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-11 11:00 Ingo Molnar
  2005-08-12  3:07 ` Lee Revell
@ 2005-08-13  0:28 ` Ryan Brown
  2005-08-13  0:32   ` Lee Revell
  1 sibling, 1 reply; 18+ messages in thread
From: Ryan Brown @ 2005-08-13  0:28 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Thomas Gleixner, Paul E. McKenney, george anzinger

is there a patch available for -rc6?

On 8/11/05, Ingo Molnar <mingo@elte.hu> wrote:
> 
> i have released the -53-01 Real-Time Preemption patch, which can be
> downloaded from:
> 
>   http://redhat.com/~mingo/realtime-preempt/
> 
> there are two new features in this release, which justified the jump
> from .52 to .53:
> 
>  - the inclusion of the High Resolution Timers patch, written by
>    George Anzinger, and ported/improved/cleaned-up by Thomas Gleixner.
> 
>  - the inclusion of the RCU tasklist_lock patch from Paul McKenney.
> 
> the HRT patch from George Anzinger is a crutial piece of real-time
> infrastructure. The version included in the -RT tree supports both PIT
> and local APIC timer driven variable-rate timer interrupts.
> 
> Thomas Glexiner, besides porting it to PREEMPT_RT, cleaning it up,
> adding the local APIC timer support has also added the
> CONFIG_HIGH_RES_TIMERS_DYN_PRIO feature, which pushes priority
> inheritance into the high-res timer space. Furthermore, Thomas has
> extended nanosleep to use HR timers, if the task is RT. This makes it
> easier to test HRT functionality.
> 
> NOTE: there's a new softirq, softirq-hrtimer (PID 8 on UP x86), which
> should be chrt-ed to higher than SCHED_FIFO-50 if HR timer interrupts
> are the most important latencies in the system. E.g.:
> 
>   chrt -f 90 -p 8
> 
> the RCU tasklist-lock patch is a small but important feature from Paul
> McKenney which enables good HRT latencies: the HRT patch, when using
> POSIX timers, would use a signal-sending codepath that depends on the
> tasklist_lock, and thus the (quite high) tasklist_lock latencies
> controlled the latency of HR timers - defeating much of the benefits of
> HR timers. With the RCU tasklist-lock the signal sending path is now
> RCU-read locked, with no locking dependency, and thus excellent
> worst-case latencies.
> 
> given these changes, some (mostly build-related) regressions are to be
> expected. Only the x86 architecture is expected to work for now.
> 
> to build a -V0.7.53-01 tree, the following patches should to be applied:
> 
>    http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.12.tar.bz2
>    http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.13-rc4.bz2
>    http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.13-rc4-RT-V0.7.53-01
> 
> patches, bugreports and any other feedback welcome,
> 
>         Ingo
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>

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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-12  3:19   ` Lee Revell
  2005-08-12  7:03     ` Ingo Molnar
@ 2005-08-12  7:48     ` Thomas Gleixner
  1 sibling, 0 replies; 18+ messages in thread
From: Thomas Gleixner @ 2005-08-12  7:48 UTC (permalink / raw)
  To: Lee Revell; +Cc: Ingo Molnar, linux-kernel, Paul E. McKenney, george anzinger

On Thu, 2005-08-11 at 23:19 -0400, Lee Revell wrote:
> On Thu, 2005-08-11 at 23:07 -0400, Lee Revell wrote:
> > Very nice to see this going in (via) the RT patch.
> > 
> 
> Also, does not compile for me with ACPI PM timer selected:

I did not come around yet to adapt the PM timer to the overall changes I
made.

tglx



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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-12  3:07 ` Lee Revell
  2005-08-12  3:19   ` Lee Revell
@ 2005-08-12  7:07   ` Ingo Molnar
  1 sibling, 0 replies; 18+ messages in thread
From: Ingo Molnar @ 2005-08-12  7:07 UTC (permalink / raw)
  To: Lee Revell
  Cc: linux-kernel, Thomas Gleixner, Paul E. McKenney, george anzinger


* Lee Revell <rlrevell@joe-job.com> wrote:

> On Thu, 2005-08-11 at 13:00 +0200, Ingo Molnar wrote:
> > i have released the -53-01 Real-Time Preemption patch, which can be 
> > downloaded from:
> > 
> >   http://redhat.com/~mingo/realtime-preempt/
> > 
> > there are two new features in this release, which justified the jump 
> > from .52 to .53:
> > 
> >  - the inclusion of the High Resolution Timers patch, written by
> >    George Anzinger, and ported/improved/cleaned-up by Thomas Gleixner.
> > 
> 
> George,
> 
> Very nice to see this going in (via) the RT patch.
> 
> Can we get a real help text here:
> 
> Clock & Timer Selection
> > 1. Legacy Timer Support (LEGACY_TIMER) (NEW)
>   2. HPET Timer Support (HPET_TIMER)
>   3. High Resolution Timer Support (HIGH_RES_TIMERS) (NEW)
> choice[1-3?]: ?
> 
> You may have either HPET, High Resolution, or Legacy timer support.
> 
> This would be a great place to put some of your extensive docs about the
> various timer sources and issues on x86.  I have always thought the HRT
> docs were the best source on the net for this info, and I refer people
> to it whenever someone has a question about timers on the linux audio
> lists.
> 
> The docs for "High Resolution Timer clock source" are great.
> 
> Can we get more docs here:
> 
> HRT Softirg dynamic priority adjustment (HIGH_RES_TIMERS_DYN_PRIO) 
>         ^^^ typo
> [N/y/?] (NEW) ?
> 
> This option enables the dynamic priority adjustment of the
> high resolution timer soft interrupt
> 
> No point documenting this one if it's expected to go away though.

this feature is from Thomas - and most of the PREEMPT_RT integration 
work too (and hence all the bugs are purely his fault too! ;-).

In the -53-03 patch i've made HIGH_RES_TIMERS_DYN_PRIO always-on for 
PREEMPT_RT, but for other preemption models it's still selectable 
individually, so some more docs would indeed be useful.

	Ingo

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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-12  3:19   ` Lee Revell
@ 2005-08-12  7:03     ` Ingo Molnar
  2005-08-12  7:48     ` Thomas Gleixner
  1 sibling, 0 replies; 18+ messages in thread
From: Ingo Molnar @ 2005-08-12  7:03 UTC (permalink / raw)
  To: Lee Revell
  Cc: linux-kernel, Thomas Gleixner, Paul E. McKenney, george anzinger


* Lee Revell <rlrevell@joe-job.com> wrote:

> On Thu, 2005-08-11 at 23:07 -0400, Lee Revell wrote:
> > Very nice to see this going in (via) the RT patch.
> > 
> 
> Also, does not compile for me with ACPI PM timer selected:

i fixed the build errors, but HIGH_RES_TIMER_ACPI_PM does not boot - so 
i've disabled it in the -53-03 patch for the time being.

	Ingo

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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-12  3:07 ` Lee Revell
@ 2005-08-12  3:19   ` Lee Revell
  2005-08-12  7:03     ` Ingo Molnar
  2005-08-12  7:48     ` Thomas Gleixner
  2005-08-12  7:07   ` Ingo Molnar
  1 sibling, 2 replies; 18+ messages in thread
From: Lee Revell @ 2005-08-12  3:19 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Thomas Gleixner, Paul E. McKenney, george anzinger

On Thu, 2005-08-11 at 23:07 -0400, Lee Revell wrote:
> Very nice to see this going in (via) the RT patch.
> 

Also, does not compile for me with ACPI PM timer selected:

  CC      arch/i386/kernel/timers/hrtimer_pm.o
In file included from include/asm/hrtime.h:220,
                 from include/linux/hrtime.h:58,
                 from arch/i386/kernel/timers/hrtimer_pm.c:11:
include/asm/hrtime-Macpi.h: In function 'stake_cpuctr':
include/asm/hrtime-Macpi.h:110: warning: no return statement in function
returning non-void
arch/i386/kernel/timers/hrtimer_pm.c: In function 'high_res_init_pm':
arch/i386/kernel/timers/hrtimer_pm.c:141: warning: format '%lu' expects
type 'long unsigned int', but argument 2 has type 'unsigned int'
arch/i386/kernel/timers/hrtimer_pm.c:141: warning: format '%03lu'
expects type 'long unsigned int', but argument 3 has type 'unsigned int'
arch/i386/kernel/timers/hrtimer_pm.c:182: error: invalid lvalue in
assignment
make[2]: *** [arch/i386/kernel/timers/hrtimer_pm.o] Error 1
make[1]: *** [arch/i386/kernel/timers] Error 2
make: *** [arch/i386/kernel] Error 2

Lee


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

* Re: [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
  2005-08-11 11:00 Ingo Molnar
@ 2005-08-12  3:07 ` Lee Revell
  2005-08-12  3:19   ` Lee Revell
  2005-08-12  7:07   ` Ingo Molnar
  2005-08-13  0:28 ` Ryan Brown
  1 sibling, 2 replies; 18+ messages in thread
From: Lee Revell @ 2005-08-12  3:07 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: linux-kernel, Thomas Gleixner, Paul E. McKenney, george anzinger

On Thu, 2005-08-11 at 13:00 +0200, Ingo Molnar wrote:
> i have released the -53-01 Real-Time Preemption patch, which can be 
> downloaded from:
> 
>   http://redhat.com/~mingo/realtime-preempt/
> 
> there are two new features in this release, which justified the jump 
> from .52 to .53:
> 
>  - the inclusion of the High Resolution Timers patch, written by
>    George Anzinger, and ported/improved/cleaned-up by Thomas Gleixner.
> 

George,

Very nice to see this going in (via) the RT patch.

Can we get a real help text here:

Clock & Timer Selection
> 1. Legacy Timer Support (LEGACY_TIMER) (NEW)
  2. HPET Timer Support (HPET_TIMER)
  3. High Resolution Timer Support (HIGH_RES_TIMERS) (NEW)
choice[1-3?]: ?

You may have either HPET, High Resolution, or Legacy timer support.

This would be a great place to put some of your extensive docs about the
various timer sources and issues on x86.  I have always thought the HRT
docs were the best source on the net for this info, and I refer people
to it whenever someone has a question about timers on the linux audio
lists.

The docs for "High Resolution Timer clock source" are great.

Can we get more docs here:

HRT Softirg dynamic priority adjustment (HIGH_RES_TIMERS_DYN_PRIO) 
        ^^^ typo
[N/y/?] (NEW) ?

This option enables the dynamic priority adjustment of the
high resolution timer soft interrupt

No point documenting this one if it's expected to go away though.

Lee



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

* [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features
@ 2005-08-11 11:00 Ingo Molnar
  2005-08-12  3:07 ` Lee Revell
  2005-08-13  0:28 ` Ryan Brown
  0 siblings, 2 replies; 18+ messages in thread
From: Ingo Molnar @ 2005-08-11 11:00 UTC (permalink / raw)
  To: linux-kernel; +Cc: Thomas Gleixner, Paul E. McKenney, george anzinger


i have released the -53-01 Real-Time Preemption patch, which can be 
downloaded from:

  http://redhat.com/~mingo/realtime-preempt/

there are two new features in this release, which justified the jump 
from .52 to .53:

 - the inclusion of the High Resolution Timers patch, written by
   George Anzinger, and ported/improved/cleaned-up by Thomas Gleixner.

 - the inclusion of the RCU tasklist_lock patch from Paul McKenney.

the HRT patch from George Anzinger is a crutial piece of real-time 
infrastructure. The version included in the -RT tree supports both PIT 
and local APIC timer driven variable-rate timer interrupts.

Thomas Glexiner, besides porting it to PREEMPT_RT, cleaning it up, 
adding the local APIC timer support has also added the 
CONFIG_HIGH_RES_TIMERS_DYN_PRIO feature, which pushes priority 
inheritance into the high-res timer space. Furthermore, Thomas has 
extended nanosleep to use HR timers, if the task is RT. This makes it 
easier to test HRT functionality.

NOTE: there's a new softirq, softirq-hrtimer (PID 8 on UP x86), which 
should be chrt-ed to higher than SCHED_FIFO-50 if HR timer interrupts 
are the most important latencies in the system. E.g.:

  chrt -f 90 -p 8

the RCU tasklist-lock patch is a small but important feature from Paul 
McKenney which enables good HRT latencies: the HRT patch, when using 
POSIX timers, would use a signal-sending codepath that depends on the 
tasklist_lock, and thus the (quite high) tasklist_lock latencies 
controlled the latency of HR timers - defeating much of the benefits of 
HR timers. With the RCU tasklist-lock the signal sending path is now 
RCU-read locked, with no locking dependency, and thus excellent 
worst-case latencies.

given these changes, some (mostly build-related) regressions are to be 
expected. Only the x86 architecture is expected to work for now.

to build a -V0.7.53-01 tree, the following patches should to be applied:

   http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.12.tar.bz2
   http://kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.13-rc4.bz2
   http://redhat.com/~mingo/realtime-preempt/realtime-preempt-2.6.13-rc4-RT-V0.7.53-01

patches, bugreports and any other feedback welcome,

	Ingo

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

end of thread, other threads:[~2005-08-16  6:36 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-08-11 18:39 [patch] Real-Time Preemption, -RT-2.6.13-rc4-V0.7.53-01, High Resolution Timers & RCU-tasklist features Guillaume Foliard
2005-08-12 12:53 ` Ingo Molnar
2005-08-12 19:27   ` Guillaume Foliard
2005-08-12 19:47     ` Guillaume Foliard
2005-08-12 20:07     ` Chuck Harding
  -- strict thread matches above, loose matches on Subject: below --
2005-08-11 11:00 Ingo Molnar
2005-08-12  3:07 ` Lee Revell
2005-08-12  3:19   ` Lee Revell
2005-08-12  7:03     ` Ingo Molnar
2005-08-12  7:48     ` Thomas Gleixner
2005-08-12  7:07   ` Ingo Molnar
2005-08-13  0:28 ` Ryan Brown
2005-08-13  0:32   ` Lee Revell
2005-08-13  0:57     ` George Anzinger
2005-08-14  2:12       ` Ingo Molnar
2005-08-15  6:29         ` Ingo Molnar
2005-08-15 23:39           ` George Anzinger
2005-08-16  6:36             ` Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®