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

David Hildenbrand
2023-01-31T08:32:39Z

On 30.01.23 23:15, Jens Axboe wrote:
> On 1/30/23 3:12 PM, David Howells wrote:
>> John Hubbard <jhubbard@nvidia.com> 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