---

announce: nanokernel for Linux (PPSkit-0.6.0)

Ulrich Windl writes in linux-kernel:

Hello I’m happy to let this off:

PPSkit-0.6.0 for Linux-2.2.5 has been released! This new kit
features nanosecond time resolution (at least in theory) as well as
new NTP kernel routines. The performance seems interesting enough.
See the plots found in nanotest.tgz!

Unfortunately it seems “pcphy4” is down this morning, and I
can’t physically reach it. Head for linux.kernel.org instead.

So here’s the NEWS:

  • Updated BUGS about the “mysterious jitter” effect. Updated
    patch for Linux-2.2.5 after extensive debugging runs. Several tests
    passed without problems.
  • “adjtimex()” accepts any offset for “MOD_OFFSET”, but
    “hardupdate()” will clamp the offsets.
  • Fixed bug with possibly persistent “TIME_ERROR” in
    “adjtimex()”. Moved time functions that are not architecture
    dependent to common “kernel/time.c”.
  • Added nanosecond time resolution (at least for i386
    architecture).
  • Fixed problem in “arch/i386/kernel/time.c” when
    “CONFIG_X86_TSC” was defined, but the processor was buggy
    (uninitialized variables would be used then).
  • Major cleanups with renaming: instead of calling
    “get_fast_time()” you are expected to use “get_exact_time()”
    now (the “fast” version wasn’t faster than the “normal”
    version). Likewise the “slow” versions are called “poor” now.
    To avoid future confusion, “[get]timeoffset” has been renamed to
    “microtime”, because it returns microsecods. Funtions returning
    nanoseconds will have “nanotime” instead. “” won’t include “”
    any longer; only “” will be included. “” will only include the
    NTP interface stuff.
  • Updated serial driver to use “do_clock_gettime()”. Fixed
    memory leak associated with “CIOGETEV”.
  • Added new POSIX.4 compatible functions “do_clock_gettime()”,
    “do_clock_settime()”, and “do_clock_getres()” that deal with
    nanoseconds. Several related cleanups.
  • Merged the new “nanokernel” stuff into “kernel/time.c”
    (took over 4 hours without being complete). Several cleanups and
    changes done.
  • Merged the new “nanokernel” stuff into “”. As some new bit
    definitions clash with older Linux extensions, the latter had to be
    relocated. This will definitely break binary compatibility
    (“adjtime()” is affected), so that I’ll possibly clean up all the
    old mess. “” is purely for “adjtimex()” now.
  • Updated “INSTALL” about xntp. Updated “enable_pps.c” to
    support new nanokernel. Added several new options. Completely
    rewritten logic.

To complete it, here’s an LSM entry:

Begin3
Title:          PPSkit
Version:        0.6.0
Entered-date:   1999-04-07
Description:    kernel time patch for NTP (RFC1305) and PPS support
(RFC1589)
                against Linux 2.2.5+ (kernel patch, documentation, test
                programs)
Keywords:       NTP, PPS, kernel, RFC1305, RFC1589, xntp, time, clock,
                pulse-per-second, synchronization, calibration, adjtimex,
                nanoseconds, POSIX.4, nanokernel
Author:         [email protected] (Ulrich Windl)
Maintained-by:  [email protected] (Ulrich Windl)
Primary-site:   linux.kernel.org /pub/linux/daemons/ntp/PPS
                75kB PPSkit-0.6.0.tar.gz
Alternate-site:
Original-site:  pcphy4.physik.uni-regensburg.de /pub/wiu09524/PPS
                PPSkit-0.6.0.tar.gz
Platform:       RS232-compatible precision pulse-per-second with an error
                less than 500PPM (0.0005%, 0.5ms)
Copying-policy: GPL, but payment welcome!
End

As a special note: I broke the sparc clock due to my lack of
assembly knowledge for the SPARC. In general, all architectures
other than i386 and more exotic subsystems and drivers may be
broken. After all it’s a “dot zero” release. Enjoy anyway!

Regards,
Ulrich

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends, & analysis