* [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.