* [Xenomai-help] CLOCK_REALTIME synchronized to NTP
@ 2011-03-23 0:59 Jeff Weber
2011-03-23 7:34 ` Jan Kiszka
2011-03-23 7:37 ` Gilles Chanteperdrix
0 siblings, 2 replies; 9+ messages in thread
From: Jeff Weber @ 2011-03-23 0:59 UTC (permalink / raw)
To: xenomai
[-- Attachment #1: Type: text/plain, Size: 294 bytes --]
I need to timetag events from a realtime context with a NPT-synchronized
system clock. This topic comes up periodically on the mailing list. Last I
recall, there was talk of adding the capability via an alternate
(non-CLOCK_REALTIME) clock_id. What is the status of this topic?
thanks,
Jeff
[-- Attachment #2: Type: text/html, Size: 331 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] CLOCK_REALTIME synchronized to NTP
2011-03-23 0:59 [Xenomai-help] CLOCK_REALTIME synchronized to NTP Jeff Weber
@ 2011-03-23 7:34 ` Jan Kiszka
2011-03-23 7:37 ` Gilles Chanteperdrix
1 sibling, 0 replies; 9+ messages in thread
From: Jan Kiszka @ 2011-03-23 7:34 UTC (permalink / raw)
To: Jeff Weber; +Cc: xenomai
[-- Attachment #1: Type: text/plain, Size: 578 bytes --]
On 2011-03-23 01:59, Jeff Weber wrote:
> I need to timetag events from a realtime context with a NPT-synchronized
> system clock. This topic comes up periodically on the mailing list. Last I
> recall, there was talk of adding the capability via an alternate
> (non-CLOCK_REALTIME) clock_id. What is the status of this topic?
>
The special POSIX clock CLOCK_HOST_REALTIME is part of xenomai head (2.6
development tree), ipipe back-end support is available for x86 so far.
That clock allows to read the Linux CLOCK_REALTIME without leaving the
RT context.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] CLOCK_REALTIME synchronized to NTP
2011-03-23 0:59 [Xenomai-help] CLOCK_REALTIME synchronized to NTP Jeff Weber
2011-03-23 7:34 ` Jan Kiszka
@ 2011-03-23 7:37 ` Gilles Chanteperdrix
2011-03-30 21:56 ` Jeff Weber
1 sibling, 1 reply; 9+ messages in thread
From: Gilles Chanteperdrix @ 2011-03-23 7:37 UTC (permalink / raw)
To: Jeff Weber; +Cc: xenomai
Jeff Weber wrote:
> I need to timetag events from a realtime context with a NPT-synchronized
> system clock. This topic comes up periodically on the mailing list. Last I
> recall, there was talk of adding the capability via an alternate
> (non-CLOCK_REALTIME) clock_id. What is the status of this topic?
The CLOCK_HOST_REALTIME is available in the xenomai-head branch (to be
2.6 branch, soon). It requires modifications of the I-pipe patch which
are available, at least, on x86, but are probably not really hard to
implement on other platforms.
--
Gilles.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] CLOCK_REALTIME synchronized to NTP
2011-03-23 7:37 ` Gilles Chanteperdrix
@ 2011-03-30 21:56 ` Jeff Weber
2011-03-30 22:00 ` Gilles Chanteperdrix
0 siblings, 1 reply; 9+ messages in thread
From: Jeff Weber @ 2011-03-30 21:56 UTC (permalink / raw)
To: Gilles Chanteperdrix; +Cc: xenomai
[-- Attachment #1: Type: text/plain, Size: 1360 bytes --]
On Wed, Mar 23, 2011 at 2:37 AM, Gilles Chanteperdrix <
gilles.chanteperdrix@xenomai.org> wrote:
> Jeff Weber wrote:
> > I need to timetag events from a realtime context with a NPT-synchronized
> > system clock. This topic comes up periodically on the mailing list.
> Last I
> > recall, there was talk of adding the capability via an alternate
> > (non-CLOCK_REALTIME) clock_id. What is the status of this topic?
>
> The CLOCK_HOST_REALTIME is available in the xenomai-head branch (to be
> 2.6 branch, soon). It requires modifications of the I-pipe patch which
> are available, at least, on x86, but are probably not really hard to
> implement on other platforms.
>
clock_gettime(CLOCK_HOST_REALTIME) fails when called from kernel, and from
clocktest. Any ideas why?
Does the CLOCK_HOST_REALTIME need to be initialized in some way?
Test and config follow.
TIA,
Jeff
# /usr/xenomai/bin/clocktest -D -C 42
hostrt data area is not live
clock_gettime failed for clock id 42
hostrt data area is not live
# grep -rw CLOCK_HOST_REALTIME /usr/xenomai/include/
/usr/xenomai/include/posix/time.h:#define CLOCK_HOST_REALTIME 42
# zgrep HOSTRT /proc/config.gz
CONFIG_XENO_OPT_HOSTRT=y
CONFIG_HAVE_IPIPE_HOSTRT=y
# cat /proc/xenomai/version
2.5.90
# cat /proc/ipipe/version
2.9-00
# uname -r
2.6.37.3-xeno-head-smp
Architecture is x86 32-bit SMP with TSC.
[-- Attachment #2: Type: text/html, Size: 2130 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] CLOCK_REALTIME synchronized to NTP
2011-03-30 21:56 ` Jeff Weber
@ 2011-03-30 22:00 ` Gilles Chanteperdrix
2011-03-30 22:05 ` Jeff Weber
0 siblings, 1 reply; 9+ messages in thread
From: Gilles Chanteperdrix @ 2011-03-30 22:00 UTC (permalink / raw)
To: Jeff Weber; +Cc: xenomai
Jeff Weber wrote:
> On Wed, Mar 23, 2011 at 2:37 AM, Gilles Chanteperdrix <
> gilles.chanteperdrix@xenomai.org> wrote:
>
>> Jeff Weber wrote:
>>> I need to timetag events from a realtime context with a NPT-synchronized
>>> system clock. This topic comes up periodically on the mailing list.
>> Last I
>>> recall, there was talk of adding the capability via an alternate
>>> (non-CLOCK_REALTIME) clock_id. What is the status of this topic?
>> The CLOCK_HOST_REALTIME is available in the xenomai-head branch (to be
>> 2.6 branch, soon). It requires modifications of the I-pipe patch which
>> are available, at least, on x86, but are probably not really hard to
>> implement on other platforms.
>>
>
> clock_gettime(CLOCK_HOST_REALTIME) fails when called from kernel, and from
> clocktest. Any ideas why?
> Does the CLOCK_HOST_REALTIME need to be initialized in some way?
> Test and config follow.
>
> TIA,
> Jeff
>
>
>
> # /usr/xenomai/bin/clocktest -D -C 42
> hostrt data area is not live
> clock_gettime failed for clock id 42
> hostrt data area is not live
>
> # grep -rw CLOCK_HOST_REALTIME /usr/xenomai/include/
> /usr/xenomai/include/posix/time.h:#define CLOCK_HOST_REALTIME 42
>
> # zgrep HOSTRT /proc/config.gz
> CONFIG_XENO_OPT_HOSTRT=y
> CONFIG_HAVE_IPIPE_HOSTRT=y
>
> # cat /proc/xenomai/version
> 2.5.90
>
> # cat /proc/ipipe/version
> 2.9-00
>
> # uname -r
> 2.6.37.3-xeno-head-smp
>
> Architecture is x86 32-bit SMP with TSC.
CLOCK_HOST_REALTIME will work, only if the Linux kernel also uses the
TSC as its clocksource. So, check the "Switching to clocksource"
messages, or "disabling.*tsc" in the kernel log to see if the kernel has
not decided to use another clock source.
--
Gilles.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] CLOCK_REALTIME synchronized to NTP
2011-03-30 22:00 ` Gilles Chanteperdrix
@ 2011-03-30 22:05 ` Jeff Weber
2011-03-30 22:19 ` Gilles Chanteperdrix
0 siblings, 1 reply; 9+ messages in thread
From: Jeff Weber @ 2011-03-30 22:05 UTC (permalink / raw)
To: Gilles Chanteperdrix; +Cc: xenomai
[-- Attachment #1: Type: text/plain, Size: 2171 bytes --]
On Wed, Mar 30, 2011 at 5:00 PM, Gilles Chanteperdrix <
gilles.chanteperdrix@xenomai.org> wrote:
> Jeff Weber wrote:
> > On Wed, Mar 23, 2011 at 2:37 AM, Gilles Chanteperdrix <
> > gilles.chanteperdrix@xenomai.org> wrote:
> >
> >> Jeff Weber wrote:
> >>> I need to timetag events from a realtime context with a
> NPT-synchronized
> >>> system clock. This topic comes up periodically on the mailing list.
> >> Last I
> >>> recall, there was talk of adding the capability via an alternate
> >>> (non-CLOCK_REALTIME) clock_id. What is the status of this topic?
> >> The CLOCK_HOST_REALTIME is available in the xenomai-head branch (to be
> >> 2.6 branch, soon). It requires modifications of the I-pipe patch which
> >> are available, at least, on x86, but are probably not really hard to
> >> implement on other platforms.
> >>
> >
> > clock_gettime(CLOCK_HOST_REALTIME) fails when called from kernel, and
> from
> > clocktest. Any ideas why?
> > Does the CLOCK_HOST_REALTIME need to be initialized in some way?
> > Test and config follow.
> >
> > TIA,
> > Jeff
> >
> >
> >
> > # /usr/xenomai/bin/clocktest -D -C 42
> > hostrt data area is not live
> > clock_gettime failed for clock id 42
> > hostrt data area is not live
> >
> > # grep -rw CLOCK_HOST_REALTIME /usr/xenomai/include/
> > /usr/xenomai/include/posix/time.h:#define CLOCK_HOST_REALTIME 42
> >
> > # zgrep HOSTRT /proc/config.gz
> > CONFIG_XENO_OPT_HOSTRT=y
> > CONFIG_HAVE_IPIPE_HOSTRT=y
> >
> > # cat /proc/xenomai/version
> > 2.5.90
> >
> > # cat /proc/ipipe/version
> > 2.9-00
> >
> > # uname -r
> > 2.6.37.3-xeno-head-smp
> >
> > Architecture is x86 32-bit SMP with TSC.
>
> CLOCK_HOST_REALTIME will work, only if the Linux kernel also uses the
> TSC as its clocksource. So, check the "Switching to clocksource"
> messages, or "disabling.*tsc" in the kernel log to see if the kernel has
> not decided to use another clock source.
>
>
The kernel is using the TSC:
# dmesg | grep -i -e tsc -e clock -e switching
[ 0.000000] Fast TSC calibration using PIT
[ 0.204507] Switching to clocksource tsc
[ 2.602836] rtc_cmos 00:06: setting system clock to 2011-03-30 19:24:03
UTC (1301513043)
Jeff
[-- Attachment #2: Type: text/html, Size: 3002 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] CLOCK_REALTIME synchronized to NTP
2011-03-30 22:05 ` Jeff Weber
@ 2011-03-30 22:19 ` Gilles Chanteperdrix
2011-03-30 22:40 ` Gilles Chanteperdrix
0 siblings, 1 reply; 9+ messages in thread
From: Gilles Chanteperdrix @ 2011-03-30 22:19 UTC (permalink / raw)
To: Jeff Weber; +Cc: xenomai
Jeff Weber wrote:
> On Wed, Mar 30, 2011 at 5:00 PM, Gilles Chanteperdrix <
> gilles.chanteperdrix@xenomai.org> wrote:
>
>> Jeff Weber wrote:
>>> On Wed, Mar 23, 2011 at 2:37 AM, Gilles Chanteperdrix <
>>> gilles.chanteperdrix@xenomai.org> wrote:
>>>
>>>> Jeff Weber wrote:
>>>>> I need to timetag events from a realtime context with a
>> NPT-synchronized
>>>>> system clock. This topic comes up periodically on the mailing list.
>>>> Last I
>>>>> recall, there was talk of adding the capability via an alternate
>>>>> (non-CLOCK_REALTIME) clock_id. What is the status of this topic?
>>>> The CLOCK_HOST_REALTIME is available in the xenomai-head branch (to be
>>>> 2.6 branch, soon). It requires modifications of the I-pipe patch which
>>>> are available, at least, on x86, but are probably not really hard to
>>>> implement on other platforms.
>>>>
>>> clock_gettime(CLOCK_HOST_REALTIME) fails when called from kernel, and
>> from
>>> clocktest. Any ideas why?
>>> Does the CLOCK_HOST_REALTIME need to be initialized in some way?
>>> Test and config follow.
It definitely works here with clocktest. I get, for instance:
# clocktest -C 42 -D
hostrt data area is live
Sequence counter : 66552
wall_time_sec : 1301523397
wall_time_nsec : 660000002
wall_to_monotonic
tv_sec : -1301523264
tv_nsec : 785932050
cycle_last : 465912010644
mask : 0xffffffffffffffff
mult : 1345300900
shift : 31
== Tested clock: 42 (CLOCK_HOST_REALTIME)
CPU ToD offset [us] ToD drift [us/s] warps max delta [us]
--- -------------------- ---------------- ---------- --------------
0 1.2 -0.001 0 0.0
1 1.4 0.002 0 0.0
^C
--
Gilles.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] CLOCK_REALTIME synchronized to NTP
2011-03-30 22:19 ` Gilles Chanteperdrix
@ 2011-03-30 22:40 ` Gilles Chanteperdrix
2011-03-30 23:19 ` Gilles Chanteperdrix
0 siblings, 1 reply; 9+ messages in thread
From: Gilles Chanteperdrix @ 2011-03-30 22:40 UTC (permalink / raw)
To: Jeff Weber; +Cc: xenomai
Gilles Chanteperdrix wrote:
> Jeff Weber wrote:
>> On Wed, Mar 30, 2011 at 5:00 PM, Gilles Chanteperdrix <
>> gilles.chanteperdrix@xenomai.org> wrote:
>>
>>> Jeff Weber wrote:
>>>> On Wed, Mar 23, 2011 at 2:37 AM, Gilles Chanteperdrix <
>>>> gilles.chanteperdrix@xenomai.org> wrote:
>>>>
>>>>> Jeff Weber wrote:
>>>>>> I need to timetag events from a realtime context with a
>>> NPT-synchronized
>>>>>> system clock. This topic comes up periodically on the mailing list.
>>>>> Last I
>>>>>> recall, there was talk of adding the capability via an alternate
>>>>>> (non-CLOCK_REALTIME) clock_id. What is the status of this topic?
>>>>> The CLOCK_HOST_REALTIME is available in the xenomai-head branch (to be
>>>>> 2.6 branch, soon). It requires modifications of the I-pipe patch which
>>>>> are available, at least, on x86, but are probably not really hard to
>>>>> implement on other platforms.
>>>>>
>>>> clock_gettime(CLOCK_HOST_REALTIME) fails when called from kernel, and
>>> from
>>>> clocktest. Any ideas why?
>>>> Does the CLOCK_HOST_REALTIME need to be initialized in some way?
>>>> Test and config follow.
>
> It definitely works here with clocktest. I get, for instance:
... and it definitely does not work with a 32 bits kernel.
--
Gilles.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] CLOCK_REALTIME synchronized to NTP
2011-03-30 22:40 ` Gilles Chanteperdrix
@ 2011-03-30 23:19 ` Gilles Chanteperdrix
0 siblings, 0 replies; 9+ messages in thread
From: Gilles Chanteperdrix @ 2011-03-30 23:19 UTC (permalink / raw)
To: Jeff Weber; +Cc: xenomai
Gilles Chanteperdrix wrote:
> Gilles Chanteperdrix wrote:
>> Jeff Weber wrote:
>>> On Wed, Mar 30, 2011 at 5:00 PM, Gilles Chanteperdrix <
>>> gilles.chanteperdrix@xenomai.org> wrote:
>>>
>>>> Jeff Weber wrote:
>>>>> On Wed, Mar 23, 2011 at 2:37 AM, Gilles Chanteperdrix <
>>>>> gilles.chanteperdrix@xenomai.org> wrote:
>>>>>
>>>>>> Jeff Weber wrote:
>>>>>>> I need to timetag events from a realtime context with a
>>>> NPT-synchronized
>>>>>>> system clock. This topic comes up periodically on the mailing list.
>>>>>> Last I
>>>>>>> recall, there was talk of adding the capability via an alternate
>>>>>>> (non-CLOCK_REALTIME) clock_id. What is the status of this topic?
>>>>>> The CLOCK_HOST_REALTIME is available in the xenomai-head branch (to be
>>>>>> 2.6 branch, soon). It requires modifications of the I-pipe patch which
>>>>>> are available, at least, on x86, but are probably not really hard to
>>>>>> implement on other platforms.
>>>>>>
>>>>> clock_gettime(CLOCK_HOST_REALTIME) fails when called from kernel, and
>>>> from
>>>>> clocktest. Any ideas why?
>>>>> Does the CLOCK_HOST_REALTIME need to be initialized in some way?
>>>>> Test and config follow.
>> It definitely works here with clocktest. I get, for instance:
>
> ... and it definitely does not work with a 32 bits kernel.
>
The problem is that in the x86_32 patch, nobody calls
ipipe_update_hostrt. The following patch should get it working. Though
may not be the cleanest way to do it.
And except for the "if (clock == clocksource_tsc)", is probably the way
we could get it working for other architectures.
I am not sure it really works, since the clocktest output seemed to have
much more jitter than on x86_64, though the jitter decreased over time.
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index cef6fde..4ac1073 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -154,7 +154,7 @@ config GENERIC_CALIBRATE_DELAY
config GENERIC_TIME_VSYSCALL
bool
- default X86_64
+ default X86_64 || HAVE_IPIPE_HOSTRT
config ARCH_HAS_CPU_RELAX
def_bool y
diff --git a/arch/x86/kernel/ipipe.c b/arch/x86/kernel/ipipe.c
index d1d4544..04de06d 100644
--- a/arch/x86/kernel/ipipe.c
+++ b/arch/x86/kernel/ipipe.c
@@ -30,6 +30,7 @@
#include <linux/irq.h>
#include <linux/clockchips.h>
#include <linux/kprobes.h>
+#include <linux/ipipe_tickdev.h>
#include <asm/unistd.h>
#include <asm/processor.h>
#include <asm/system.h>
@@ -49,6 +50,7 @@
#include <asm/apic.h>
#endif /* CONFIG_X86_LOCAL_APIC */
#include <asm/traps.h>
+#include <asm/tsc.h>
int __ipipe_tick_irq = 0; /* Legacy timer */
@@ -814,6 +816,19 @@ int __ipipe_check_tickdev(const char *devname)
return ret;
}
+#ifdef CONFIG_X86_32
+void update_vsyscall(struct timespec *wall_time, struct timespec *wtm,
+ struct clocksource *clock, u32 mult)
+{
+ if (clock == &clocksource_tsc)
+ ipipe_update_hostrt(wall_time, clock);
+}
+
+void update_vsyscall_tz(void)
+{
+}
+#endif /* CONFIG_X86_32 */
+
EXPORT_SYMBOL(__ipipe_tick_irq);
EXPORT_SYMBOL_GPL(irq_to_desc);
--
Gilles.
^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2011-03-30 23:19 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-23 0:59 [Xenomai-help] CLOCK_REALTIME synchronized to NTP Jeff Weber
2011-03-23 7:34 ` Jan Kiszka
2011-03-23 7:37 ` Gilles Chanteperdrix
2011-03-30 21:56 ` Jeff Weber
2011-03-30 22:00 ` Gilles Chanteperdrix
2011-03-30 22:05 ` Jeff Weber
2011-03-30 22:19 ` Gilles Chanteperdrix
2011-03-30 22:40 ` Gilles Chanteperdrix
2011-03-30 23:19 ` Gilles Chanteperdrix
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.