Messages in this thread | | | Date | Wed, 9 Sep 2020 15:03:24 -0300 | From | Jason Gunthorpe <> | Subject | Re: [RFC PATCH v2 1/3] mm/gup: fix gup_fast with dynamic page table folding |
| |
On Wed, Sep 09, 2020 at 07:25:34PM +0200, Gerald Schaefer wrote: > I actually had to draw myself a picture to get some hold of > this, or rather a walk-through with a certain pud-crossing > range in a folded 3-level scenario. Not sure if I would have > understood my explanation above w/o that, but I hope you can > make some sense out of it. Or draw yourself a picture :-)
What I don't understand is how does anything work with S390 today?
If the fix is only to change pxx_addr_end() then than generic code like mm/pagewalk.c will iterate over a *different list* of page table entries.
It's choice of entries to look at is entirely driven by pxx_addr_end().
Which suggest to me that mm/pagewalk.c also doesn't work properly today on S390 and this issue is not really about stack variables?
Fundamentally if pXX_offset() and pXX_addr_end() must be consistent together, if pXX_offset() is folded then pXX_addr_end() must cause a single iteration of that level.
Jason
| |