Re: [PATCH v3 11/19] unwind: Add deferred user space unwinding API
Andrii Nakryiko <[email protected]>
| Newsgroups | org.kernel.vger.linux-toolchains,org.kernel.vger.linux-kernel,org.kernel.vger.linux-perf-users |
|---|---|
| Message-ID | <CAEf4BzYCwvm0PTpoB7L5xKMaFTVUqNo8VuMHy7sRwpc4opXJzw@mail.gmail.com> |
On Fri, Nov 1, 2024 at 10:41 AM Josh Poimboeuf <[email protected]> wrote: > > On Thu, Oct 31, 2024 at 04:28:08PM -0700, Andrii Nakryiko wrote: > > So all task_structs on the system using 104 bytes more, *permanently* > > Either way it's permanent, we don't know when to free it until the task > struct is freed... > I'm not sure if we are arguing for the sake of arguing at this point :) Yes, for *those tasks* for which we at least once requested stack trace, that memory will stay, sure. But there are normally tons of threads that are almost completely idle and/or use so little CPU, that they won't ever be caught in the profiler, so their stack trace will never be requested. Sure, you can come up with a use case where you'll just go over each task and ask for stack trace for each of them, but that's not a common case. So, sorry, but no, I don't agree that these are equivalent things. Lazy memory allocation is a must, IMO. > > and *unconditionally*, is not a concern > > Of course it's a concern, that's why we're looking for something > better... > > > but lazy GFP_ATOMIC allocation when you actually need it is? > > We don't want to dip into the GFP_ATOMIC emergency reserves, those are > kept for more important things. > > Actually, I think I can just use GFP_NOWAIT here. Whatever semantics works for being called from NMI (even if it can fail). > > -- > Josh