On Tue, Dec 03, 2024 at 07:56:34PM +0000, Matthew Wilcox wrote: > On Tue, Dec 03, 2024 at 08:02:26PM +0100, Uladzislau Rezki wrote: > > I think there are a few other things we can try here. > > First, if the copy is small (and I still don't have an answer to that > ...), we can skip the vmalloc lookup if the copy doesn't cross a page > boundary. > > Second, we could try storing this in a maple tree rather than an rbtree. > That gives us RCU protected lookups rather than under a spinlock. > > It might even be worth going to a rwlock first, in case the problem is > that there's severe lock contention. > > But I've asked for data on spinlock contention and not received an > answer on that either, so I don't know what to suggest. > I think, it is not about contention. It is about the extra "attached load" when a data is heavily copied force and back. On each copy path you need to do a scan. Maple tree is not that something can help here :) Indeed, no contention data. Zuoze, please share this if you can. -- Uladzislau Rezki