From: Oliver Hartkopp <socketcan@hartkopp.net>
To: Patrick Ohly <patrick.ohly@intel.com>
Cc: Octavian Purdila <opurdila@ixiacom.com>,
Oliver Hartkopp <oliver@hartkopp.net>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: hardware time stamping with extra skb->hwtstamp
Date: Mon, 01 Dec 2008 17:45:24 +0100 [thread overview]
Message-ID: <493414A4.8010804@hartkopp.net> (raw)
In-Reply-To: <1228127861.16263.590.camel@ecld0pohly>
Patrick Ohly wrote:
>
> Oliver asked:
>
>> One additional question for Patrick:
>> As you wrote that your hw timestamp contained in the new skbuff-field is
>> already cocked ... is there any identifier that tells the userspace
>> application about the type of hw timestamp he gets (e.g. cocked, raw
>> registers, offset to whatever, etc.) ?
>>
>
> In the proposed API the userspace application gets three time stamps:
> software, "cooked" hardware time stamp (converted to nanoseconds by the
> driver, but not tampered with in any other way), hardware time stamp
> converted to system time. Each of these may be missing (not available,
> couldn't be calculated). So yes, the userspace application knows what it
> got and can pick the value that it needs.
>
That's really fine. Sorry that i did not go that deep into your code
myself :-]
> Oliver suggested:
>
>> What about just creating a new pointer in the struct skbuff that points
>> to a struct hwstamp when it is available OR the pointer is NULL when no
>> hwstamps are available.
>>
>
> I like this better than tampering with the data buffer pointers
> implicitly because it enables usages of the additional information
> inside the kernel itself. It's similar to skb_shared_info, except that
> it is not allocated for all skbs.
>
> The skb_shared_info is always at the end of the data buffer. Assume that
> we have a new __netdev_alloc_hw_skb() which increases the allocated data
> buffer to make room for the additional struct hwtstamp (either before
> skb_shared_info or after). I cannot think of a way how the rest of the
> kernel can tell that this additional data is available by just looking
> at the existing head/data/end fields in a skb - if I missed something,
> please let me know.
>
>
I'm not very familiar with skb fields but hiding this with a new
__netdev_alloc_hw_skb() looks very good to me and creates a proper way
to add hw-specific netdevice information in a generic way and - that's
probably the best news - only when it's really needed.
> So it seems to me that we need the additional 32 bit offset (or pointer,
> on 32 bit architectures) in skb which points towards the struct
> hwtstamp. But that's actually less than the additional 64 bit which hold
> the time stamp value, as in the current patch. I'll give it a few more
> days for further debate, then try out this approach.
>
I'll be on a business trip until Thursday, so from my side you would get
a 'go ahead' right now ;-)
Best regards,
Oliver
prev parent reply other threads:[~2008-12-01 16:45 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-19 12:08 hardware time stamping with extra skb->hwtstamp Patrick Ohly
2008-11-19 12:08 ` [RFC PATCH 01/11] put_cmsg_compat + SO_TIMESTAMP[NS]: use same name for value as caller Patrick Ohly
2008-11-19 12:08 ` [RFC PATCH 02/11] net: new user space API for time stamping of incoming and outgoing packets Patrick Ohly
2008-11-19 12:08 ` [RFC PATCH 03/11] net: infrastructure for hardware time stamping Patrick Ohly
2008-11-19 12:08 ` [RFC PATCH 04/11] net: socket infrastructure for SO_TIMESTAMPING Patrick Ohly
2008-11-19 12:08 ` [RFC PATCH 05/11] ip: support for TX timestamps on UDP and RAW sockets Patrick Ohly
2008-11-19 12:08 ` [RFC PATCH 06/11] net: pass new SIOCSHWTSTAMP through to device drivers Patrick Ohly
2008-11-19 12:08 ` [RFC PATCH 07/11] igb: stub support for SIOCSHWTSTAMP Patrick Ohly
2008-11-19 12:08 ` [RFC PATCH 08/11] clocksource: allow usage independent of timekeeping.c Patrick Ohly
2008-11-19 12:08 ` [RFC PATCH 09/11] igb: infrastructure for hardware time stamping Patrick Ohly
2008-11-19 12:08 ` [RFC PATCH 10/11] time sync: generic infrastructure to map between time stamps generated by a clock source and system time Patrick Ohly
2008-11-19 12:08 ` [RFC PATCH 11/11] igb: use clocksync to implement hardware time stamping Patrick Ohly
2008-11-20 1:14 ` [RFC PATCH 10/11] time sync: generic infrastructure to map between time stamps generated by a clock source and system time Andrew Morton
2008-11-20 7:08 ` Ohly, Patrick
2008-12-05 21:05 ` [RFC PATCH 08/11] clocksource: allow usage independent of timekeeping.c john stultz
2008-12-11 12:11 ` Patrick Ohly
2008-12-11 22:23 ` john stultz
2008-12-12 8:50 ` Patrick Ohly
2008-11-19 15:21 ` [RFC PATCH 03/11] net: infrastructure for hardware time stamping Patrick Ohly
2008-11-27 6:14 ` hardware time stamping with extra skb->hwtstamp Oliver Hartkopp
2008-11-27 10:07 ` Patrick Ohly
2008-11-27 14:02 ` Octavian Purdila
2008-11-27 15:31 ` Patrick Ohly
2008-11-27 18:53 ` Octavian Purdila
2008-11-27 22:13 ` Oliver Hartkopp
2008-11-28 12:55 ` Octavian Purdila
2008-11-28 15:38 ` Oliver Hartkopp
2008-11-28 16:00 ` Octavian Purdila
2008-12-01 10:37 ` Patrick Ohly
2008-12-01 16:31 ` Patrick Ohly
2008-12-01 16:45 ` Oliver Hartkopp [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=493414A4.8010804@hartkopp.net \
--to=socketcan@hartkopp.net \
--cc=netdev@vger.kernel.org \
--cc=oliver@hartkopp.net \
--cc=opurdila@ixiacom.com \
--cc=patrick.ohly@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).