[ntp:questions] A proposal to use NIC launch time support to improve NTP

Ulf Samuelsson ulf at invalid.emagii.com
Tue Dec 18 15:29:29 UTC 2012

Rick Jones skrev 2012-12-13 02:57:
> It would seem that at least one NIC has the ability to allow one to
> "schedule" the time at which a packet will be transmitted.  This is
> called "launch time support."  Someone in Linux-land has started
> asking about the prospect of enabling support of that in the stack,
> with his stated use case being to improve the jitter of NTP-based
> timekeeping.
> The initial posting can be found at:
> http://www.spinics.net/lists/netdev/msg219770.html
> rick jones

Yes, My post regarding the new i210 chip from Intel.
I am sitting facing Jonatan right now...

One of the main points that Jonatan and I are thinking about is whether 
launch time should be supported:
* inside the kernel, or
* NTPD should be rewritten to become a userspace application.
   -- Allows use of accelerated networking using "netmap", "pf-ring" or

Would be interested in people's opinion!

Anyone working on NTPD as userspace right now?

If people think that the kernel approach is the best,
then the question is how to implement it.

In my proposal, I add a new flag to "socket.c:sendto".
While the launchtime is proposed to configurable using Kconfig,
this adds a small performance penalty to every other packet sent over 

An alternative would be to extend the kernel with a new syscall, which 
would not impose a penalty to "sendto".
Then "sendto" would not be burdened with "launchtime" which for most 
applications is unneeded.
I do have a feeling that proposing adding syscall's is not the easy 
route forward.

Regardless of which route to go, the driver will need fixes as well.
In my proposal, each driver supporting launchtime would have to be 
extended with a operation similar to "ndo_start_xmit" but with a 
launchtime parameter.

Later in the stack, one would have to select between the normal
"ndo_start_xmit" and the new driver operation.
I do not think that everything in the networking stack can be duplicated 
to support launchtime, so this will always introduce another small 
performance penalty.

Ulf Samuelsson

More information about the questions mailing list