Re: [PATCH 1/5] freepgt: free_pgtables use vma list

Nick Piggin
2005-03-22T23:32:50Z

Hugh Dickins wrote:
> On Tue, 22 Mar 2005, David S. Miller wrote:
>
>>On Tue, 22 Mar 2005 19:36:46 +0000 (GMT)
>>Hugh Dickins <hugh@veritas.com> wrote:
>>
>>
>>>I notice that although both i386 and sparc64 use pgtable-nopud.h, the
>>>i386 pud_clear does nothing at all and the sparc64 pud_clear resets to 0.
>>
>>This was a dead end. I386 doesn't do anything with pud_clear() in
>>order to work around a chip erratum.
>>
>>IA64 does clear in pud_clear() just like sparc64.
>
>
> My mind kept flipping back and forth on whether it was pud_clear().
> I agree, I can't see that it's the issue now.
>

It shouldn't be.

In the case that pud is folded, free_pud_range will only call into
free_pmd_range once, and that function will loop over the required
range of the pud (ie. the pmd). If it then also falls through to
pud_clear in that function, it will also fall through to pgd_clear
in free_pud_range. So it doesn't _really_ matter which one does the
actual clearing in that case.

I think David's on the right track - I think there's something a
bit wrong at the top. In my reply to Andrew in this thread I
posted a patch which may at least get things working...