notes: Patch C2 Phase 4 plan — ieee80211_rx_irqsafe → ieee80211_rx_list #14
Reference in New Issue
Block a user
Delete Branch "claude-noether-12"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
After Patch C v3 / D / E / F / G all merged, the remaining cleanup target is the per-RX-frame tasklet defer that
ieee80211_rx_irqsafeintroduces.TL;DR
Migrate all 6
ieee80211_rx_irqsafecall sites in bes2600 toieee80211_rx_list. Wrap withlocal_bh_disable + rcu_read_lockper-batch (mt76/iwl idiom). Predicted throughput delta: +5-15% over v3's 2.352 MB/s baseline.Why this is bigger than D or E
Kerneldoc constraint (verified per task #19 from
include/net/mac80211.h:5324-5345):_listand_irqsafefor the same hardware → all 6 sites convert atomically, no per-site progressive migrationlocal_bh_disable() + rcu_read_lock()wrapOpen questions for the reviewer (please read §4.6 risks)
rx_listdraining semantics. Does mainline expectnetif_receive_skb_list_internalat end-of-batch, or does mac80211 internal-deliver? Need to read mt76 / iwl_pcie usage before Phase 6 lands.Beacon path SKB ownership (wsm.c:2415).
hw_priv->beaconis a long-lived SKB. After_rx_listconsumes it (passes ownership to mac80211), the field would be dangling. Audit before Phase 6.Per-batch wrap vs per-call wrap (§4.2). Per-batch wrap (Option B) is the upstream idiom; per-call wrap (Option A) is simpler but loses the batch benefit. Recommend B.
Predicted Phase 7 outcome
+5-15% over v3's 2.352 MB/s. Honest acknowledgment: I don't have data on the actual tasklet hop cost. Smaller-than-expected delta = "marginal but no regression, ship for upstream-cleanliness anyway".
Out of scope
sw_mci_check_r1_ready(Task #25)Status of cleanups branch
Tip = 42fd0ce (Patch E merged). C v3 + F + G + D + E all in cleanups. C2 branches off cleanups.
rx_list draining semantics. Does mainline expect netif_receive_skb_list_internal at end-of-batch, or does mac80211 internal-deliver? Need to read mt76 / iwl_pcie usage before Phase 6 lands. What does mainline cw1200 do? It helped for tx.
Beacon path SKB ownership (wsm.c:2415). hw_priv->beacon is a long-lived SKB. After _rx_list consumes it (passes ownership to mac80211), the field would be dangling. Audit before Phase 6. Agreed.
Per-batch wrap vs per-call wrap (§4.2). Per-batch wrap (Option B) is the upstream idiom; per-call wrap (Option A) is simpler but loses the batch benefit. Option B