Re: [PATCH 0/3] resource: find_next_iomem_res() improvements

From: Nadav Amit
Date: Tue Jul 16 2019 - 18:13:14 EST


> On Jul 16, 2019, at 3:07 PM, Dan Williams <dan.j.williams@xxxxxxxxx> wrote:
>
> On Tue, Jul 16, 2019 at 3:01 PM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
>> On Tue, 18 Jun 2019 21:56:43 +0000 Nadav Amit <namit@xxxxxxxxxx> wrote:
>>
>>>> ...and is constant for the life of the device and all subsequent mappings.
>>>>
>>>>> Perhaps you want to cache the cachability-mode in vma->vm_page_prot (which I
>>>>> see being done in quite a few cases), but I donât know the code well enough
>>>>> to be certain that every vma should have a single protection and that it
>>>>> should not change afterwards.
>>>>
>>>> No, I'm thinking this would naturally fit as a property hanging off a
>>>> 'struct dax_device', and then create a version of vmf_insert_mixed()
>>>> and vmf_insert_pfn_pmd() that bypass track_pfn_insert() to insert that
>>>> saved value.
>>>
>>> Thanks for the detailed explanation. Iâll give it a try (the moment I find
>>> some free time). I still think that patch 2/3 is beneficial, but based on
>>> your feedback, patch 3/3 should be dropped.
>>
>> It has been a while. What should we do with
>>
>> resource-fix-locking-in-find_next_iomem_res.patch
>
> This one looks obviously correct to me, you can add:
>
> Reviewed-by: Dan Williams <dan.j.williams@xxxxxxxxx>
>
>> resource-avoid-unnecessary-lookups-in-find_next_iomem_res.patch
>
> This one is a good bug report that we need to go fix pgprot lookups
> for dax, but I don't think we need to increase the trickiness of the
> core resource lookup code in the meantime.

I think that traversing big parts of the tree that are known to be
irrelevant is wasteful no matter what, and this code is used in other cases.

I donât think the new code is so tricky - can you point to the part of the
code that you find tricky?