lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f58385a3-866f-424b-b6ad-ee04edf9aeb9@linux.dev>
Date: Fri, 1 Aug 2025 18:15:33 -0700
From: Martin KaFai Lau <martin.lau@...ux.dev>
To: Amery Hung <ameryhung@...il.com>
Cc: netdev@...r.kernel.org, alexei.starovoitov@...il.com, andrii@...nel.org,
 daniel@...earbox.net, memxor@...il.com, kpsingh@...nel.org,
 martin.lau@...nel.org, yonghong.song@...ux.dev, song@...nel.org,
 haoluo@...gle.com, kernel-team@...a.com, bpf@...r.kernel.org
Subject: Re: [RFC PATCH bpf-next v1 06/11] bpf: Remove task local storage
 percpu counter

On 7/29/25 11:25 AM, Amery Hung wrote:
>   kernel/bpf/bpf_task_storage.c | 149 ++++------------------------------

nice.

> +BPF_CALL_5(bpf_task_storage_get, struct bpf_map *, map, struct task_struct *,
> +	   task, void *, value, u64, flags, gfp_t, gfp_flags)
>   {
>   	struct bpf_local_storage_data *sdata;
>   
> -	sdata = task_storage_lookup(task, map, nobusy);
> +	WARN_ON_ONCE(!bpf_rcu_lock_held());
> +	if (flags & ~BPF_LOCAL_STORAGE_GET_F_CREATE || !task)
> +		return (unsigned long)NULL;
> +
> +	sdata = task_storage_lookup(task, map, true);
>   	if (sdata)
> -		return sdata->data;
> +		return (unsigned long)sdata->data;
>   
>   	/* only allocate new storage, when the task is refcounted */
>   	if (refcount_read(&task->usage) &&
> -	    (flags & BPF_LOCAL_STORAGE_GET_F_CREATE) && nobusy) {
> +	    (flags & BPF_LOCAL_STORAGE_GET_F_CREATE)) {
>   		sdata = bpf_local_storage_update(
>   			task, (struct bpf_local_storage_map *)map, value,
>   			BPF_NOEXIST, false, gfp_flags);
> -		return IS_ERR(sdata) ? NULL : sdata->data;
> +		WARN_ON(IS_ERR(sdata));

A nit for now. ok during development/RFC. This will eventually need to be 
removed. e.g. it should not WARN_ON ENOMEM.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ