All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-core] [BUG] pit clocksource broken under Xenomai
@ 2007-05-13 22:22 Jan Kiszka
  2007-05-14 18:08 ` Jan Kiszka
  0 siblings, 1 reply; 4+ messages in thread
From: Jan Kiszka @ 2007-05-13 22:22 UTC (permalink / raw)
  To: xenomai-core, adeos-main

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

Hi,

just checked on real hardware (found in qemu originally):

When Linux uses the pit clocksource AND Xenomai is attached, the system
time no longer makes progress. Observed under 2.6.20 with 1.7-03 and
newer patches, Xenomai trunk.

I guess not many people will be affected by this and I'm lacking time to
debug, so I'm just dumping the report and running away...

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 249 bytes --]

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

* Re: [Xenomai-core] [BUG] pit clocksource broken under Xenomai
  2007-05-13 22:22 [Xenomai-core] [BUG] pit clocksource broken under Xenomai Jan Kiszka
@ 2007-05-14 18:08 ` Jan Kiszka
  2007-05-14 18:36   ` [Xenomai-core] [Adeos-main] " Jan Kiszka
  0 siblings, 1 reply; 4+ messages in thread
From: Jan Kiszka @ 2007-05-14 18:08 UTC (permalink / raw)
  To: xenomai-core, adeos-main

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

Jan Kiszka wrote:
> Hi,
> 
> just checked on real hardware (found in qemu originally):
> 
> When Linux uses the pit clocksource AND Xenomai is attached, the system
> time no longer makes progress. Observed under 2.6.20 with 1.7-03 and
> newer patches, Xenomai trunk.
> 
> I guess not many people will be affected by this and I'm lacking time to
> debug, so I'm just dumping the report and running away...

Somehow I hate open issues...

I recalled some private thread with you, Philippe, about this particular
line in pid_read(). A look at it again revealed the reason for this bug.

Jan

PS: pending_patches++ ;)


---
 arch/i386/kernel/i8253.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Index: linux-2.6.20/arch/i386/kernel/i8253.c
===================================================================
--- linux-2.6.20.orig/arch/i386/kernel/i8253.c
+++ linux-2.6.20/arch/i386/kernel/i8253.c
@@ -47,7 +47,8 @@ static cycle_t pit_read(void)
 
 #ifdef CONFIG_IPIPE
 	if (!__ipipe_pipeline_head_p(ipipe_root_domain))
-		return 0;	/* We don't really own the PIT. */
+		/* We don't own the PIT, fall back to jiffies. */
+		return (cycle_t)(jiffies * LATCH);
 #endif /* CONFIG_IPIPE */
 
 	spin_lock_irqsave(&i8253_lock, flags);



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

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

* Re: [Xenomai-core] [Adeos-main] [BUG] pit clocksource broken under Xenomai
  2007-05-14 18:08 ` Jan Kiszka
@ 2007-05-14 18:36   ` Jan Kiszka
  2007-05-15  7:57     ` Philippe Gerum
  0 siblings, 1 reply; 4+ messages in thread
From: Jan Kiszka @ 2007-05-14 18:36 UTC (permalink / raw)
  To: xenomai-core, adeos-main

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

Jan Kiszka wrote:
> Jan Kiszka wrote:
>> Hi,
>>
>> just checked on real hardware (found in qemu originally):
>>
>> When Linux uses the pit clocksource AND Xenomai is attached, the system
>> time no longer makes progress. Observed under 2.6.20 with 1.7-03 and
>> newer patches, Xenomai trunk.
>>
>> I guess not many people will be affected by this and I'm lacking time to
>> debug, so I'm just dumping the report and running away...
> 
> Somehow I hate open issues...
> 
> I recalled some private thread with you, Philippe, about this particular
> line in pid_read(). A look at it again revealed the reason for this bug.
> 
> Jan
> 
> PS: pending_patches++ ;)
> 
> 
> ---
>  arch/i386/kernel/i8253.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> Index: linux-2.6.20/arch/i386/kernel/i8253.c
> ===================================================================
> --- linux-2.6.20.orig/arch/i386/kernel/i8253.c
> +++ linux-2.6.20/arch/i386/kernel/i8253.c
> @@ -47,7 +47,8 @@ static cycle_t pit_read(void)
>  
>  #ifdef CONFIG_IPIPE
>  	if (!__ipipe_pipeline_head_p(ipipe_root_domain))
> -		return 0;	/* We don't really own the PIT. */
> +		/* We don't own the PIT, fall back to jiffies. */
> +		return (cycle_t)(jiffies * LATCH);

I think even more correct would be

	return (cycle_t)(jiffies * LATCH) + (LATCH - 1) - old_count;

Should avoid the theoretical chance of a clock backward jump when
Xenomai attaches. I leave it up to the maintainer to decide. :)

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

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

* Re: [Xenomai-core] [Adeos-main] [BUG] pit clocksource broken under Xenomai
  2007-05-14 18:36   ` [Xenomai-core] [Adeos-main] " Jan Kiszka
@ 2007-05-15  7:57     ` Philippe Gerum
  0 siblings, 0 replies; 4+ messages in thread
From: Philippe Gerum @ 2007-05-15  7:57 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: adeos-main, xenomai-core

On Mon, 2007-05-14 at 20:36 +0200, Jan Kiszka wrote:
> Jan Kiszka wrote:
> > Jan Kiszka wrote:
> >> Hi,
> >>
> >> just checked on real hardware (found in qemu originally):
> >>
> >> When Linux uses the pit clocksource AND Xenomai is attached, the system
> >> time no longer makes progress. Observed under 2.6.20 with 1.7-03 and
> >> newer patches, Xenomai trunk.
> >>
> >> I guess not many people will be affected by this and I'm lacking time to
> >> debug, so I'm just dumping the report and running away...
> > 
> > Somehow I hate open issues...
> > 
> > I recalled some private thread with you, Philippe, about this particular
> > line in pid_read(). A look at it again revealed the reason for this bug.
> > 
> > Jan
> > 
> > PS: pending_patches++ ;)
> > 
> > 
> > ---
> >  arch/i386/kernel/i8253.c |    3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > Index: linux-2.6.20/arch/i386/kernel/i8253.c
> > ===================================================================
> > --- linux-2.6.20.orig/arch/i386/kernel/i8253.c
> > +++ linux-2.6.20/arch/i386/kernel/i8253.c
> > @@ -47,7 +47,8 @@ static cycle_t pit_read(void)
> >  
> >  #ifdef CONFIG_IPIPE
> >  	if (!__ipipe_pipeline_head_p(ipipe_root_domain))
> > -		return 0;	/* We don't really own the PIT. */
> > +		/* We don't own the PIT, fall back to jiffies. */
> > +		return (cycle_t)(jiffies * LATCH);
> 
> I think even more correct would be
> 
> 	return (cycle_t)(jiffies * LATCH) + (LATCH - 1) - old_count;
> 
> Should avoid the theoretical chance of a clock backward jump when
> Xenomai attaches. I leave it up to the maintainer to decide. :)
> 

Merged this one, thanks.

> Jan
> 
-- 
Philippe.




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

end of thread, other threads:[~2007-05-15  7:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-13 22:22 [Xenomai-core] [BUG] pit clocksource broken under Xenomai Jan Kiszka
2007-05-14 18:08 ` Jan Kiszka
2007-05-14 18:36   ` [Xenomai-core] [Adeos-main] " Jan Kiszka
2007-05-15  7:57     ` Philippe Gerum

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.