From: Alexei Starovoitov Date: Mon, 21 Mar 2022 01:55:05 +0000 (-0700) Subject: Merge branch 'Enable non-atomic allocations in local storage' X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=30630e44b6580f17724b6c5921a2a540bf06d6af;p=linux.git Merge branch 'Enable non-atomic allocations in local storage' Joanne Koong says: ==================== From: Joanne Koong Currently, local storage memory can only be allocated atomically (GFP_ATOMIC). This restriction is too strict for sleepable bpf programs. In this patchset, sleepable programs can allocate memory in local storage using GFP_KERNEL, while non-sleepable programs always default to GFP_ATOMIC. v3 <- v2: * Add extra case to local_storage.c selftest to test associating multiple elements with the local storage, which triggers a GFP_KERNEL allocation in local_storage_update(). * Cast gfp_t to __s32 in verifier to fix the sparse warnings v2 <- v1: * Allocate the memory before/after the raw_spin_lock_irqsave, depending on the gfp flags * Rename mem_flags to gfp_flags * Reword the comment "*mem_flags* is set by the bpf verifier" to "*gfp_flags* is a hidden argument provided by the verifier" * Add a sentence to the commit message about existing local storage selftests covering both the GFP_ATOMIC and GFP_KERNEL paths in bpf_local_storage_update. ==================== Signed-off-by: Alexei Starovoitov --- 30630e44b6580f17724b6c5921a2a540bf06d6af