Re: [PATCH bpf-next v2 01/13] bpf: move linked-scalar flags out of bpf_reg_state->id [NFC]
From: Vineet Gupta
Date: Fri Oct 02 2026 - 04:06:26 EST
On 9/16/26 5:36 PM, Alexei Starovoitov wrote:
On Wed, Sep 16, 2026 at 2:24 PM Vineet Gupta<vineet.gupta@xxxxxxxxx> wrote:
On 9/16/26 2:02 PM, Alexei Starovoitov wrote:NFC is gcc probably lingvo? In kernel people just put in the commit
On Tue Sep 15, 2026 at 1:17 AM UTC, Vineet Gupta wrote:non functional change aka refactoring.
Back when I started, keeping it NFC made more sense. But with all theWhat is NFC ?
nuances discovered in the process, I'm inclined to drop the NFC stance
Like I said when I started I wanted to keep the id / flag breakout
purely non functional. But given that splitting it does change one thing
(mentioned below) - I'm dropping NFC attribution.
Yes understood except that it is no longer refactoring.and make functional changes - there's at least one which is thethat's a red flag, no? The refactoring patch shouldn't have
following accepted pre-series and now rejected.
old {r2.id=A+delta32} vs cur {r2.id=B+delta64}
any changes to selftest and veristat numbers?
Unless I'm missing it again.
log "No functional changes", so it's easier for humans and for AI
to review patches.
So pls skip such unusual tags in the future,
Yes keeping kernel's existing conventions makes sense, although LLMs understand what NFC is.
but keep the first patch as "No functional change".
Just to rehash since the meaning of first has moved significantly.
1. Now the first change (patch 1/x and its test 2/x ) is no longer the compound id conversion, but coerce_reg_to_size_sx / coerce_subreg_to_size_sx change to fix the errno range case, as suggested by you. It is a functional change, with following improvement:
=== VERDICT CHANGES: 3 ===
mov32sx_s8_negative_range failure -> success
mov64sx_s32_negative_range failure -> success
mov64sx_s8_negative_range failure -> success
=== total_insns: 0 changed among 1242 both-passing, 0 worse ===
=== total_states: 0 changed among 1242 both-passing, 0 worse ===
2. The second change (3/x and its test 4/x) is accumulating add_const deltas (w3 = w0; w3 -=1). This makes the 32-bit link with delta special handling of zext unnecessary so its a prereq for the series.
3. I guess you are referring to the patch to convert compound id to broken out id + flags (5/x ) is also technically a functional change - due to the state comparison behavior improvement that fell out of the seemingly mechanical conversion and is clearly called out now. However I verified it in isolation (on top of 4 prior of course) and there are no veristat or selftest changes with it (just a cosmetic name change due to base_id -> id)
=== VERDICT CHANGES: 0 ===
=== total_insns: 0 changed among 1247 both-passing, 0 worse ===
=== total_states: 0 changed among 1247 both-passing, 0 worse ===
I presume that is what you were asking for ?
Thx,
-Vineet