Messages in this thread | | | Date | Mon, 11 May 2020 19:02:12 +0200 | From | Peter Zijlstra <> | Subject | Re: [RFC PATCH 0/7] mm: Get rid of vmalloc_sync_(un)mappings() |
| |
On Mon, May 11, 2020 at 08:52:04AM -0700, Matthew Wilcox wrote: > On Mon, May 11, 2020 at 09:31:34AM +0200, Peter Zijlstra wrote: > > On Sat, May 09, 2020 at 06:11:57PM -0700, Matthew Wilcox wrote: > > > Iterating an XArray (whether the entire thing > > > or with marks) is RCU-safe and faster than iterating a linked list, > > > so this should solve the problem? > > > > It can hardly be faster if you want all elements -- which is I think the > > case here. We only call into this if we change an entry, and then we > > need to propagate that change to all. > > Of course it can be faster. Iterating an array is faster than iterating > a linked list because caches. While an XArray is a segmented array > (so slower than a plain array), it's plainly going to be faster than > iterating a linked list.
Fair enough, mostly also because the actual work (setting a single PTE) doesn't dominate in this case.
| |