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: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to