On Wed, Dec 04, 2024 at 05:21:12PM +0800, zuoze wrote: > > > 在 2024/12/4 15:55, Uladzislau Rezki 写道: > > 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. > > We have enabled perf lock contention and are currently debugging the > environment. We will share the results as soon as we have them. > Sounds good and thank you for helping to improve this :) -- Uladzislau Rezki