Re: [PATCH 0/2] Refactor do_fault_around()

From: Andrew Morton
Date: Fri Mar 17 2023 - 19:40:36 EST


On Fri, 17 Mar 2023 21:58:24 +0000 Lorenzo Stoakes <lstoakes@xxxxxxxxx> wrote:

> Refactor do_fault_around() to avoid bitwise tricks and arather difficult to
> follow logic. Additionally, prefer fault_around_pages to
> fault_around_bytes as the operations are performed at a base page
> granularity.
>
> I have run this code against a small program I wrote which generates
> significant input data and compares output with the original function to
> ensure that it behaves the same as the old code across varying vmf, vma and
> fault_around_pages inputs.

Well, what changes were you looking for in that testing?
do_fault_around() could become a no-op and most tests wouldn't notice.
What we'd be looking for to test these changes is performance
differences.

Perhaps one could add a tracepoint to do_fault_around()'s call to
->map_pages, check that the before-and-after traces are identical.


Or, if you're old school and lazy,

if (!strcmp(current->comm, "name-of-my-test-program"))
printk("name-of-my-test-program: %lu %lu\n",
start_pgoff, end_pgoff)

then grep-n-diff the dmesg output.