When accessing page frames that are greater than max_pfn using the idle-page sysfs interface an oops is triggered that kills the process that writes to the sysfs interface.
this should trigger the oops in ~50% of the cases due to the way the threshold calculation in the kernel was handling the maximum threshold based on pfn alignments. 31 of 63 of the times it may be under the threshold so no oops occurs. If it does not, increase or decrease the number of available pages in a system to trigger the sweet spot of the bug.
== Regression Potential ==
Minimal, this touches a sysfs kernel interface that is not used much. The fix narrows the scope of touching specific page frames, so the page frame scope is reduced by the fix.
== SRU ==
== Justification ==
When accessing page frames that are greater than max_pfn using the idle-page sysfs interface an oops is triggered that kills the process that writes to the sysfs interface.
== Fix ==
Upstream fix currently in linux-next:
https:/ /git.kernel. org/pub/ scm/linux/ kernel/ git/next/ linux-next. git/commit/ mm/page_ idle.c? id=d96d6145d979 6d5f1eac242538d 45559e9a23404
This fixes the maximum pfn threshold allowed.
== Test ==
sudo stress-ng --idle-page 0
this should trigger the oops in ~50% of the cases due to the way the threshold calculation in the kernel was handling the maximum threshold based on pfn alignments. 31 of 63 of the times it may be under the threshold so no oops occurs. If it does not, increase or decrease the number of available pages in a system to trigger the sweet spot of the bug.
== Regression Potential ==
Minimal, this touches a sysfs kernel interface that is not used much. The fix narrows the scope of touching specific page frames, so the page frame scope is reduced by the fix.