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 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.