On 20/04/18 16:20, Jason Andryuk wrote: > Adding xen-devel and the Linux Xen maintainers. > > Summary: Some Xen users (and maybe others) are hitting a BUG in > __radix_tree_lookup() under do_swap_page() - example backtrace is > provided at the end. Matthew Wilcox provided a band-aid patch that > prints errors like the following instead of triggering the bug. > > Skylake 32bit PAE Dom0: > Bad swp_entry: 80000000 > mm/swap_state.c:683: bad pte d3a39f1c(8000000400000000) > > Ivy Bridge 32bit PAE Dom0: > Bad swp_entry: 40000000 > mm/swap_state.c:683: bad pte d3a05f1c(8000000200000000) > > Other 32bit DomU: > Bad swp_entry: 4000000 > mm/swap_state.c:683: bad pte e2187f30(8000000200000000) > > Other 32bit: > Bad swp_entry: 2000000 > mm/swap_state.c:683: bad pte ef3a3f38(8000000100000000) > > The Linux bugzilla has more info > https://bugzilla.kernel.org/show_bug.cgi?id=198497 > > This may not be exclusive to Xen Linux, but most of the reports are on > Xen. Matthew wonders if Xen might be stepping on the upper bits of a > pte. Yes - Xen does use the upper bits of a PTE, but only 1 in release builds, and a second in debug builds. I don't understand where you're getting the 3rd bit in there. The use of these bits are dubious, and not adequately described in the ABI, and attempts to improve the state of play has come to nothing in the past. ~Andrew