Re: [GIT PULL] iov_iter: Improve page extraction (pin or just list)

From: David Hildenbrand
Date: Tue Jan 31 2023 - 03:33:32 EST


On 30.01.23 23:15, Jens Axboe wrote:
On 1/30/23 3:12 PM, David Howells wrote:
John Hubbard <jhubbard@xxxxxxxxxx> wrote:

This is something that we say when adding pin_user_pages_fast(),
yes. I doubt that I can quickly find the email thread, but we
measured it and weren't immediately able to come up with a way
to make it faster.

percpu counters maybe - add them up at the point of viewing?

They are percpu, see my last email. But for every 108 changes (on
my system), they will do two atomic_long_adds(). So not very
useful for anything but low frequency modifications.


Can we just treat the whole acquired/released accounting as a debug mechanism to detect missing releases and do it only for debug kernels?


The pcpu counter is an s8, so we have to flush on a regular basis and cannot really defer it any longer ... but I'm curious if it would be of any help to only have a single PINNED counter that goes into both directions (inc/dec on pin/release), to reduce the flushing.

Of course, once we pin/release more than ~108 pages in one go or we switch CPUs frequently it won't be that much of a help ...

--
Thanks,

David / dhildenb