On Tue, Dec 19, 2023 at 8:06 AM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote: > > On Tue, Dec 19, 2023 at 11:23:50AM +0100, Christian Brauner wrote: > > Alexei, Andrii, this is a massive breach of trust and flatout > > disrespectful. I barely reword mails and believe me I've reworded this > > mail many times. I'm furious. > > > > Over the last couple of months since LSFMM in May 2023 until almost last > > week I've given you extensive design and review for this whole approach > > to get this into even remotely sane shape from a VFS perspective. > > This isn't new behaviour from the BPF people. They always go their own > way on everything. They refuse to collaborate with anyone in MM to make > the memory allocators work with their constraints; instead they implement > their own. It feels like they're on a Mission From God to implement the > BPF Operating System and dealing with everyone else is an inconvenience. > > https://lore.kernel.org/bpf/20220623003230.37497-1-alexei.starovoitov@xxxxxxxxx/ Matthew, I thought I answered in that thread that it is not a memory allocator. It's small free list of cached elements that bpf prog peeks from when prog runs in unknown context == tracing deep inside the kernel. Do you want to design a memory allocator that is fully re-entrant ? Meaning that kmalloc(GFP_REENTRANT) can be called from any context deep inside slab, inside arch code, inside _any_ and all code of the kernel? If the answer is yes, please go ahead. We'll happily switch to your thing. We used to preallocate all memory for such tracing use cases which was wasteful. This thingy is preallocating a few elements instead of preallocating them all. That's all there is.