Re: [PATCH v2] mm/hmm/test: use xa_for_each_range instead of looping

From: Jason Gunthorpe
Date: Tue May 19 2020 - 15:50:45 EST


On Fri, May 15, 2020 at 06:04:24PM -0700, Ralph Campbell wrote:
> The test driver uses an xa_array to store virtual to physical address
> translations for a simulated hardware device. The MMU notifier
> invalidation callback is used to keep the table consistent with the CPU
> page table and is frequently called only for a page or two. However, if
> the test process exits unexpectedly or is killed, the range can be
> [0..ULONG_MAX] in which case calling xa_erase() for every possible PFN
> results in CPU timeouts.
> Use xa_for_each_range() to efficiently erase entries in the range.
>
> Signed-off-by: Ralph Campbell <rcampbell@xxxxxxxxxx>
> ---
>
> This patch is based on Jason Gunthorpe's hmm tree and should be folded
> into the ("mm/hmm/test: add selftest driver for HMM") patch once this
> patch is reviewed, etc.
>
> v1 -> v2:
> Use xa_for_each_range() instead of special casing [0..ULONG_MAX].
>
> lib/test_hmm.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)

I squashed this in

Thanks,
Jason