Re: [apparmor] use per-cpu refcounts for apparmor labels?
From: Vinicius Costa Gomes
Date: Mon Sep 25 2023 - 19:49:30 EST
Hi Mateusz,
Mateusz Guzik <mjguzik@xxxxxxxxx> writes:
> I'm sanity-checking perf in various microbenchmarks and I found
> apparmor to be the main bottleneck in some of them.
>
> For example: will-it-scale open1_processes -t 16, top of the profile:
> 20.17% [kernel] [k] apparmor_file_alloc_security
> 20.08% [kernel] [k] apparmor_file_open
> 20.05% [kernel] [k] apparmor_file_free_security
> 18.39% [kernel] [k] apparmor_current_getsecid_subj
> [snip]
>
> This serializes on refing/unrefing apparmor objs, sounds like a great
> candidate for per-cpu refcounting instead (I'm assuming they are
> expected to be long-lived).
>
> I would hack it up myself, but I failed to find a clear spot to switch
> back from per-cpu to centalized operation and don't want to put
> serious effort into it.
>
> Can you sort this out?
I was looking at this same workload, and proposed a patch[1] some time
ago, see if it helps:
https://lists.ubuntu.com/archives/apparmor/2023-August/012914.html
But my idea was different, in many cases, we are looking at the label
associated with the current task, and there's no need to take the
refcount.
>
> Thanks,
> --
> Mateusz Guzik <mjguzik gmail.com>
>
Cheers,
--
Vinicius