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
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Adeos-main mailing list [email protected] https://mail.gna.org/listinfo/adeos-main
