ixgbe_ptp_tx_hwtstamp_work(9)
π ixgbe_ptp_tx_hwtstamp_work β the Kernel API Manual tea π
okay bestie, so this one lives in the Kernel API Manual, and the page header is literally ixgbe_ptp_tx_hwtstamp_work(9) β yes the whole function name is the title, she's that girl. β¨
πΈ NAME πΈ
ixgbe_ptp_tx_hwtstamp_work β and honestly? The manpage leaves the description blank after the dash. Nothing. Empty. A whole dash and then crickets π. So we're gonna get all the lore from the sections below, mwah.
β¨ SYNOPSIS β¨
void ixgbe_ptp_tx_hwtstamp_work (struct work_struct *work );
that's it. that's the whole signature. void return, one argument, she's lowkey minimal about it π
π¦ ARGUMENTS π¦
workβ pointer to the work struct. that's the whole vibe check for this one, bestie. It's astruct work_struct *and that's literally all the manpage says about it. no cap. π«Ά
π₯ DESCRIPTION π₯
so here's the actual plot π¬ β this work item polls the TSYNCTXCTL valid bit to figure out when a Tx hardware timestamp has actually been taken for the current skb. Like, it keeps checking. It's giving "are we there yet" but make it kernel. π
and why do we need this whole polling situation? because the descriptor's "done" bit does not correlate with the timestamp event. π That's the whole reason. The "done" bit lies to you β well, not lies, it just isn't talking about the same thing. They do not line up. So if you trusted it you'd be wrong, and being wrong about timestamps is not the move. So ixgbe_ptp_tx_hwtstamp_work shows up, polls TSYNCTXCTL, and waits for the valid bit to say the timestamp is actually there. main character energy fr fr π
ngl this is exactly the kind of "the obvious flag is not the flag you want" situation that eats people alive, so like... respect the work item. π
π§ SEE ALSO π§
the kernel file this lives in, for your reading pleasure π:
./drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
and the whole entire ixgbe_ptp friend group, alphabetically unbothered, all of them sisters π:
ixgbe_ptp_setup_sdp_X540(9)ixgbe_ptp_setup_sdp_X550(9)ixgbe_ptp_read_X550(9)ixgbe_ptp_read_82599(9)ixgbe_ptp_convert_to_hwtstamp(9)ixgbe_ptp_adjfine_82599(9)ixgbe_ptp_adjfine_X550(9)ixgbe_ptp_adjtime(9)ixgbe_ptp_gettimex(9)ixgbe_ptp_settime(9)ixgbe_ptp_feature_enable(9)ixgbe_ptp_check_pps_event(9)ixgbe_ptp_overflow_check(9)ixgbe_ptp_rx_hang(9)ixgbe_ptp_clear_tx_timestamp(9)ixgbe_ptp_tx_hang(9)ixgbe_ptp_tx_hwtstamp(9)ixgbe_ptp_rx_pktstamp(9)ixgbe_ptp_rx_rgtstamp(9)ixgbe_ptp_hwtstamp_get(9)ixgbe_ptp_set_timestamp_mode(9)ixgbe_ptp_hwtstamp_set(9)ixgbe_ptp_start_cyclecounter(9)ixgbe_ptp_init_systime(9)ixgbe_ptp_reset(9)ixgbe_ptp_create_clock(9)ixgbe_ptp_init(9)ixgbe_ptp_suspend(9)ixgbe_ptp_stop(9)
like okay go off, that's a whole group chat and every single one of them is in it πβ¨
π sign-off π
that's the whole page, bestie! source/version line was ./drivers/net/ethernet/intel/i... and the date stamp is October 2026, and she signs off as ixgbe_ptp_tx_hwtstamp_work(9) one more time, because consistency is iconic. ππ
mwah, go poll your TSYNCTXCTL valid bit responsibly π«Άβ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms