• David Vernet's avatar
    bpf: Remove now-defunct task kfuncs · f85671c6
    David Vernet authored
    In commit 22df776a ("tasks: Extract rcu_users out of union"), the
    'refcount_t rcu_users' field was extracted out of a union with the
    'struct rcu_head rcu' field. This allows us to safely perform a
    refcount_inc_not_zero() on task->rcu_users when acquiring a reference on
    a task struct. A prior patch leveraged this by making struct task_struct
    an RCU-protected object in the verifier, and by bpf_task_acquire() to
    use the task->rcu_users field for synchronization.
    
    Now that we can use RCU to protect tasks, we no longer need
    bpf_task_kptr_get(), or bpf_task_acquire_not_zero(). bpf_task_kptr_get()
    is truly completely unnecessary, as we can just use RCU to get the
    object. bpf_task_acquire_not_zero() is now equivalent to
    bpf_task_acquire().
    
    In addition to these changes, this patch also updates the associated
    selftests to no longer use these kfuncs.
    Signed-off-by: default avatarDavid Vernet <void@manifault.com>
    Link: https://lore.kernel.org/r/20230331195733.699708-3-void@manifault.comSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    f85671c6
helpers.c 62.4 KB