From: Vladimir Oltean <olteanv@gmail.com>
To: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
Cc: netdev@vger.kernel.org, Paolo Abeni <pabeni@redhat.com>,
Jakub Kicinski <kuba@kernel.org>,
"David S. Miller" <davem@davemloft.net>
Subject: Re: Broken SOF_TIMESTAMPING_OPT_ID in linux-4.19.y and earlier stable branches
Date: Fri, 25 Mar 2022 15:37:22 +0200 [thread overview]
Message-ID: <20220325133722.sicgl3kr5ectveix@skbuf> (raw)
In-Reply-To: <CA+FuTSe9hXG1x0-8e1P8_JmckOFaCFujZbJ=-=WTJW3y1sJQNQ@mail.gmail.com>
Hi Willem,
Thanks for the reply.
On Fri, Mar 25, 2022 at 09:15:30AM -0400, Willem de Bruijn wrote:
> On Thu, Mar 24, 2022 at 5:43 PM Vladimir Oltean <olteanv@gmail.com> wrote:
> >
> > Hello Willem,
> >
> > I have an application which makes use of SOF_TIMESTAMPING_OPT_ID, and I
> > received reports from multiple users that all timestamps are delivered
> > with a tskey of 0 for all stable kernel branches earlier than, and
> > including, 4.19.
> >
> > I bisected this issue down to:
> >
> > | commit 8f932f762e7928d250e21006b00ff9b7718b0a64 (HEAD)
> > | Author: Willem de Bruijn <willemb@google.com>
> > | Date: Mon Dec 17 12:24:00 2018 -0500
> > |
> > | net: add missing SOF_TIMESTAMPING_OPT_ID support
> > |
> > | SOF_TIMESTAMPING_OPT_ID is supported on TCP, UDP and RAW sockets.
> > | But it was missing on RAW with IPPROTO_IP, PF_PACKET and CAN.
> > |
> > | Add skb_setup_tx_timestamp that configures both tx_flags and tskey
> > | for these paths that do not need corking or use bytestream keys.
> > |
> > | Fixes: 09c2d251b707 ("net-timestamp: add key to disambiguate concurrent datagrams")
> > | Signed-off-by: Willem de Bruijn <willemb@google.com>
> > | Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
> > | Signed-off-by: David S. Miller <davem@davemloft.net>
> >
> > and, interestingly, I found this discussion on the topic:
> > https://www.spinics.net/lists/netdev/msg540752.html
> > (copied here in case the link rots in the future)
> >
> > | > Series applied.
> > | >
> > | > What is your opinion about -stable for this?
> > |
> > | Thanks David. Since these are just missing features that no one has
> > | reported as actually having been missing a whole lot, I don't think
> > | that they are worth the effort or risk.
> >
> > So I have 2 questions:
> >
> > Is there a way for user space to validate functional kernel support for
> > SOF_TIMESTAMPING_OPT_ID? What I'm noticing is that (at least with
> > AF_PACKET sockets) the "level == SOL_PACKET && type == PACKET_TX_TIMESTAMP"
> > cmsg is _not_ missing, but instead contains a valid sock_err->ee_data
> > (tskey) of 0.
>
> The commit only fixes missing OPT_ID support for PF_PACKET and various SOCK_RAW.
>
> The cmsg structure returned for timestamps is the same regardless of
> whether the option is set configured. It just uses an otherwise constant field.
>
> On these kernels the feature is supported, and should work on TCP and UDP.
> So a feature check would give the wrong answer.
Ok, I read this as "user space can't detect whether OPT_ID works on PF_PACKET sockets",
except by retroactively looking at the tskeys, and if they're all zero, say
"hmm, something's not right". Pretty complicated.
So we probably need to fix the stable kernels. For the particular case
of my application, I have just about zero control of what kernel the
users are running, so the more stable branches we could cover, the better.
> > If it's not possible, could you please consider sending these fixes as
> > patches to linux-stable?
>
> The first of the two fixes
>
> fbfb2321e9509 ("ipv6: add missing tx timestamping on IPPROTO_RAW")
>
> is in 4.19.y as of 4.19.99
>
> The follow-on fix that you want
>
> 8f932f762e79 ("net: add missing SOF_TIMESTAMPING_OPT_ID support")
>
> applies cleanly to 4.19.236.
>
> I think it's fine to cherry-pick. Not sure how to go about that.
Do you have any particular concerns about sending this patch to the
linux-stable branches for 4.19, 4.14 and 4.9? From https://www.kernel.org/
I see those are the only stable branches left.
next prev parent reply other threads:[~2022-03-25 13:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-24 21:39 Broken SOF_TIMESTAMPING_OPT_ID in linux-4.19.y and earlier stable branches Vladimir Oltean
2022-03-25 13:15 ` Willem de Bruijn
2022-03-25 13:37 ` Vladimir Oltean [this message]
2022-03-25 13:48 ` Willem de Bruijn
2022-03-25 14:05 ` Vladimir Oltean
2022-03-25 14:14 ` Willem de Bruijn
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=20220325133722.sicgl3kr5ectveix@skbuf \
--to=olteanv@gmail.com \
--cc=davem@davemloft.net \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=willemdebruijn.kernel@gmail.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).