Messages in this thread | | | Date | Wed, 10 Sep 2014 12:09:40 -0700 (PDT) | From | Hugh Dickins <> | Subject | Re: mm: BUG in unmap_page_range |
| |
On Wed, 10 Sep 2014, Sasha Levin wrote: > On 09/09/2014 10:45 PM, Hugh Dickins wrote: > > Sasha, you say you're getting plenty of these now, but I've only seen > > the dump for one of them, on Aug26: please post a few more dumps, so > > that we can look for commonality. > > I wasn't saving older logs for this issue so I only have 2 traces from > tonight. If that's not enough please let me know and I'll try to add > a few more.
Thanks, these two are useful, mainly because the register contents most likely to be ptes are in both of these ...900, with no sign of a ...902.
So the RW bit I got excited about yesterday is clearly not necessary for the bug (though it's still possible that it was good for implicating page migration, and page migration still play a part in the story).
> > And please attach a disassembly of change_protection_range() (noting > > which of the dumps it corresponds to, in case it has changed around): > > "Code" just shows a cluster of ud2s for the unlikely bugs at end of the > > function, we cannot tell at all what should be in the registers by then. > > change_protection_range() got inlined into change_protection(), it applies to > both traces above:
Thanks for supplying, but the change in inlining means that change_protection_range() and change_protection() are no longer relevant for these traces, we now need to see change_pte_range() instead, to confirm that what I expect are ptes are indeed ptes.
If you can include line numbers (objdump -ld) in the disassembly, so much the better, but should be decipherable without. (Or objdump -Sd for source, but I often find that harder to unscramble, can't say why.)
Thanks, Hugh
| |