On Tue, Nov 3, 2020 at 7:59 PM KP Singh <kpsi...@chromium.org> wrote: > > On Tue, Nov 3, 2020 at 7:47 PM Alexei Starovoitov > <alexei.starovoi...@gmail.com> wrote: > > > > On Tue, Nov 03, 2020 at 04:31:31PM +0100, KP Singh wrote: > > > + > > > +struct storage { > > > + void *inode; > > > + unsigned int value; > > > + /* Lock ensures that spin locked versions of local stoage operations > > > + * also work, most operations in this tests are still single > > > threaded > > > + */ > > > + struct bpf_spin_lock lock; > > > +}; > > > > I think it's a good idea to test spin_lock in local_storage, > > but it seems the test is not doing it fully. > > It's only adding it to the storage, but the program is not accessing it. > > I added it here just to check if the offset calculations (map->spin_lock_off) > are correctly happening for these new maps. > > As mentioned in the updates, I do intend to generalize > tools/testing/selftests/bpf/map_tests/sk_storage_map.c which already has > the threading logic to exercise bpf_spin_lock in storage maps. >
Actually, after I added simple bpf_spin_{lock, unlock} to the test programs, I ended up realizing that we have not exposed spin locks to LSM programs for now, this is because they inherit the tracing helpers. I saw the docs mention that these are not exposed to tracing programs due to insufficient preemption checks. Do you think it would be okay to allow them for LSM programs? - KP > Hope this is an okay plan?