On Tue, Feb 03, 2015 at 10:55:40PM +0100, Roland Pastorino wrote:
> 2015-02-03 12:23 GMT+01:00 Gilles Chanteperdrix
> <gilles.chanteperd...@xenomai.org>:
> > On Tue, Feb 03, 2015 at 09:09:48AM +0100, Roland Pastorino wrote:
> >> 2015-01-30 12:15 GMT+01:00 Roland Pastorino <rol...@rolandpastorino.com>:
> >> > 2015-01-29 14:04 GMT+01:00 Gilles Chanteperdrix
> >> > <gilles.chanteperd...@xenomai.org>:
> >> >> On Thu, Jan 29, 2015 at 01:59:36PM +0100, Roland Pastorino wrote:
> >> >>> 2015-01-29 13:25 GMT+01:00 Gilles Chanteperdrix
> >> >>> <gilles.chanteperd...@xenomai.org>:
> >> >>> > On Sun, Jan 25, 2015 at 12:15:39PM +0100, Roland Pastorino wrote:
> >> >>> >> Good morning everyone,
> >> >>> >>
> >> >>> >> I would like to know if some of you could give me a hint on how to
> >> >>> >> solve my ToD drift problem.
> >> >>> >> This question is similar to this one ->
> >> >>> >> http://comments.gmane.org/gmane.linux.real-time.xenomai.users/19719
> >> >>> >>
> >> >>> >> Problem:
> >> >>> >> After installing Xenomai and after the first reboot, my ToD drift 
> >> >>> >> was
> >> >>> >> around 500000 us/s.
> >> >>> >> After the second reboot, my ToD drift is around 500 us/s which I
> >> >>> >> presume is still too high.
> >> >>> >> I checked the troubleshooting information on Xenomai website but it 
> >> >>> >> didn't help.
> >> >>> >>
> >> >>> >> Machine and configuration:
> >> >>> >> - PC = Thinkpad w530
> >> >>> >> - cpu = i7-3740QM
> >> >>> >> - kernel configuration file is attached. I followed the Xenomai
> >> >>> >> website for the configuration.
> >> >>> >> - cobalt kernel of Xenomai 3
> >> >>> >> - Linux kernel 3.16
> >> >>> >> - ipipe-core-3.16-x86-1.patch
> >> >>> >> - Ubuntu 14.10
> >> >>> >
> >> >>> > Actually, the kernel configuration is not attached. But probably the
> >> >>> > only interesting item is whether CONFIG_CPU_FREQ is missing.
> >> >>> >
> >> >>> >
> >> >>> > --
> >> >>> >                                             Gilles.
> >> >>>
> >> >>> I've attached the kernel configuration this time...
> >> >>>
> >> >>> CONFIG_CPU_FREQ is like this:
> >> >>> # CPU Frequency scaling
> >> >>> #
> >> >>> # CONFIG_CPU_FREQ is not set
> >> >>>
> >> >>> This is the result of configuring the kernel via 'makemenuconfig'.
> >> >>> Also I noticed that the 'clocktest' can give different results
> >> >>> (without rebooting my machine).
> >> >>> For example now my ToD drift is around 67 us/s which is better but
> >> >>> different from the previously mentioned results.
> >> >>> The best I got was 0.6 us/s.
> >> >>
> >> >> Linux and Xenomai do not necessarily use the same clock source, and
> >> >> when they use the same, do not necessarily use the same frequency,
> >> >> especially when Linux has NTP running. So, unless you launch
> >> >> clocktest to watch CLOCK_HOST_REALTIME, a difference is expected.
> >> >> But 500us/s is abnormal, something is off. You need to look at the
> >> >> frequencies used by Linux and Xenomai, and see which one is off.
> >> >>
> >> >>
> >> >> --
> >> >>                                             Gilles.
> >> >
> >> > I see the point.
> >> > If I run the 'clocktest' with CLOCK_HOST_REALTIME, I get this:
> >> >
> >> > == Tested clock: 8 (CLOCK_HOST_REALTIME)
> >> > CPU      ToD offset [us] ToD drift [us/s]      warps max delta [us]
> >> > --- -------------------- ---------------- ---------- --------------
> >> >   0         -339532135.1       122526.008          0            0.0
> >> >   1         -339532070.5       121839.520          0            0.0
> >> >   2         -339532420.1       122929.781          0            0.0
> >> >   3         -339531750.8       123088.126          0            0.0
> >> >
> >> > The drift is still way off.
> >> > CLOCK_REALTIME gives:
> >> >
> >> > == Tested clock: 0 (CLOCK_REALTIME)
> >> > CPU      ToD offset [us] ToD drift [us/s]      warps max delta [us]
> >> > --- -------------------- ---------------- ---------- --------------
> >> >   0         -302580987.5       330900.325          0            0.0
> >> >   1         -302580653.8       330346.234          0            0.0
> >> >   2         -302580710.2       329623.634          0            0.0
> >> >   3         -302580359.1       329730.306          0            0.0
> >> >
> >> > I verified that NTP is running.
> >> > $ sudo service ntp service
> >> > * NTP server is running
> >> >
> >> > As you mentioned the Linux and/or Xenomai frequencies is/are probably 
> >> > off.
> >> > I have to mention that my Linux clock (=date) can run faster or slower
> >> > than the wall-clock time.
> >> > Could you please tell me where I should start searching for a
> >> > solution? Linux kernel sources, ipipe patch?
> >> >
> >> > Many Thanks.
> >> >
> >> > Roland Pastorino
> >>
> >> I give you more insight into the problem.
> >> I prepared a Linux kernel 3.14.17 with Xenomai 3 (instead of the 3.16
> >> I was using until now) in order to see if the problem disappeared.
> >> The kernel configuration is based on the one provided with Ubuntu
> >> 14.04 for kernel 3.13.
> >> With kernel 3.14.17 the problem remains. The only different is that
> >> the wifi on my PC now works.
> >>
> >> Then I prepared a Linux kernel 3.16 without Xenomai in order to see if
> >> something was wrong with my compilation process.
> >> The kernel configuration is based on the one provided with Ubuntu
> >> 14.10 for kernel 3.16.
> >> This kernel works perfectly.
> >>
> >> I welcome any comment/idea on how to proceed with the issue searching.
> >
> > As I said, you need to look at the frequencies used by Linux and
> > Xenomai, and see which one is off.
> >
> > --
> >                                             Gilles.
> 
> Here goes the 'look into the frequencies'.
> 
> The two commands that I used:
> $ cat /sys/devices/system/clocksource/clocksource0/available_clocksource
> $ cat /sys/devices/system/clocksource/clocksource0/current_clocksource
> 
> Vanilla Ubuntu 14.10 kernel 3.16
> |_ available clock sources -> tsc, hpet, acpi_pm
> |_ current clock source -> tsc
> 
> Ubuntu 14.10  kernel 3.14.17 + Xenomai 3 (cobalt)
> |_ available clock sources -> refined-jiffies, jiffies, tsc
> |_ current clock source -> refined-jiffies
> 
> Then I figured out with 'dmesg' that the kernel gives the following
> errors/warnings during boot-up:
> [    0.577663] [Xenomai] SMI-enabled chipset found, but SMI workaround 
> disabled
>           (see xenomai.smi parameter). You might encounter high latencies!
> [    3.841168] Clocksource tsc unstable (delta = 139968530 ns)
> [    3.868256] Switched to clocksource refined-jiffies
> 
> It is therefore clear that my clock drift problem comes from the fact
> that the Linux kernel is not able to use
> the TSC clock source.

No. Any clocksource should work.

> I will try to figure out why the clock source switches to refined-jiffies.
> Would you have any advice on this matter?

Normally, there is some code in the I-pipe to prevent this from
happening, I do not remember the details.

-- 
                                            Gilles.

_______________________________________________
Xenomai mailing list
Xenomai@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to