Getting the time of day in init_module() and synchronizing this forever
after is somewhat idealistic. do_gettimeofday() is necessary if you
want to maintain a standard time-base between both Linux apps and
RT tasks. Among other things, the time reported by do_gettimeofday()
follows NTP ... so unless the RT tasks start doing the same or that
any function provided by the RT layer does the same, we may have to
stick with an rt-proofed do_gettimeofday() as I've previously explained.
Karim
[EMAIL PROTECTED] wrote:
>
> Unless I am missing something, do_gettimeofday() sounds like a big, bloated
> Linux system call to me. Shouldn't be in real time to start with. Why not
> just get the time of day once in the init_module() (which is not real time
> mode) and synchronize with a counter that you update constantly in a
> periodic thread that you create at whatever rate you like. When the
> interrupt comes in, the ISR just looks at the value of the counter and
> knows what time it is by differencing with the original time. The rest is
> just reformatting for printout. I apologize if I answered the wrong
> question.
>
> Oliver
>
> Karim Yaghmour <[EMAIL PROTECTED]>@fsmlabs.com on 05/03/2001 11:04:09 AM
>
> Please respond to [EMAIL PROTECTED]
>
> Sent by: [EMAIL PROTECTED]
>
> To: [EMAIL PROTECTED]
> cc: [EMAIL PROTECTED], [EMAIL PROTECTED]
> Subject: Re: [rtl] do_gettimeofday().
>
> Hello Thomas,
>
> This is a known problem. If you want more information about it take a
> look at this posting I did a while ago:
> http://www.rtlinux.org/mailing_list/rtl.w5archive/0008/msg00239.html
>
> One can't use use do_gettimeoday from real-time kernel modules because
> it uses normal Linux locks to ensure exclusive access to xtime_lock.
>
> Changing the Linux locks to real-time locks fixes the problem. This is
> done in the LTT patch for RTAI and works great. It provides accurate
> timing and enables hard-real-time tasks to access do_gettimeofday without
> problems.
>
> Cheers,
>
> Karim
>
> Thomas Folkers wrote:
> >
> > Victor,
> > How come I can't get the time of day from the kernel? If I use
> > do_gettimeofday(), eventually the system will hang. It may not happen
> > right away, but it will hang. I'm trying to time external events and
> > record the exact time an interrupt comes in and the only way to compare
> > that time to other events and to other systems is to have the exact
> > system time. The clock_gettime() routine returns something close to
> > the real system clock time, but then proceeds to gain time at the rate of
> > 35,000 nsecs/sec. That's probably due to a miss calibration in the cpu HZ
> > value. I have looked over the rtl_time.c file and can see where you
> 'sync'
> > the CLOCK_REALTIME to the results of a do_gettimeofday() call, but then
> > there doesn't seem to be any other 'tweeks' to the time to keep it in
> > sync. So, while the clock_gettime() produces a nice monotonic clock, it
> > bear little resemblance to actual time.
> > So, how do I get the time of day from the kernel?
> >
> > Thanks for you help,
> > Tom
> >
> > --
> >
> >
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> > _/_/_/_/ _/_/ _/_/ _/_/_/_/_/ _/_/_/_/ Thomas W. Folkers
> > _/ _/ _/ _/ _/ _/ _/ _/ Telescope Operations
> Mgr.
> > _/_/_/_/ _/ _/ _/ _/ _/ _/ Sub-Millimeter Telescope
> > _/ _/ _/ _/ _/ _/ Kitt Peak 12M Radio
> Telescope
> > _/ _/ _/ _/ _/ _/ 933 N. Cherry Ave. Rm. 486
> > _/_/_/_/ _/ _/ _/ _/_/_/_/ Tucson, Arizona 85721
> > ------------------------------------------- email:
> [EMAIL PROTECTED]
> > ------------------------------------------ Voice: (520) 626-7837
> > -- http://maisel.as.arizona.edu:8080/ --- Fax: 621-5554 Pager:
> 446-0760
> > -- http://kp12m.as.arizona.edu/ --- Mobil: 909-1113 Home:
> 742-9279
> >
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> > -- [rtl] ---
> > To unsubscribe:
> > echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> > echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> > --
> > For more information on Real-Time Linux see:
> > http://www.rtlinux.org/rtlinux/
>
> --
> ===================================================
> Karim Yaghmour
> [EMAIL PROTECTED]
> Embedded and Real-Time Linux Expert
> ===================================================
>
> -- [rtl] ---
> To unsubscribe:
> echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> --
> For more information on Real-Time Linux see:
> http://www.rtlinux.org/rtlinux/
>
> -- [rtl] ---
> To unsubscribe:
> echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> --
> For more information on Real-Time Linux see:
> http://www.rtlinux.org/rtlinux/
--
===================================================
Karim Yaghmour
[EMAIL PROTECTED]
Embedded and Real-Time Linux Expert
===================================================
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/