Message ID | 20191204205309.8319-1-david@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | powerpc/pseries/cmm: fix wrong managed page count when migrating between zones | expand |
Forgot to rename the subject to "powerpc/pseries/cmm: fix managed page counts when migrating pages between zones" If I don't have to resend, would be great if that could be adjusted when applying.
David Hildenbrand <david@redhat.com> writes: > Forgot to rename the subject to > > "powerpc/pseries/cmm: fix managed page counts when migrating pages > between zones" > > If I don't have to resend, would be great if that could be adjusted when > applying. I can do that. I'm inclined to wait until the virtio_balloon.c change is committed, in case there's any changes to it during review, and so we can refer to it's SHA in the change log of this commit. Do you want to ping me when that happens? cheers
> Am 05.12.2019 um 03:59 schrieb Michael Ellerman <mpe@ellerman.id.au>: > > David Hildenbrand <david@redhat.com> writes: >> Forgot to rename the subject to >> >> "powerpc/pseries/cmm: fix managed page counts when migrating pages >> between zones" >> >> If I don't have to resend, would be great if that could be adjusted when >> applying. > > I can do that. > > I'm inclined to wait until the virtio_balloon.c change is committed, in > case there's any changes to it during review, and so we can refer to > it's SHA in the change log of this commit. > > Do you want to ping me when that happens? Sounds like a good idea, we have time until 5.5. I‘ll ping/resend. Cheers! > > cheers >
diff --git a/arch/powerpc/platforms/pseries/cmm.c b/arch/powerpc/platforms/pseries/cmm.c index 91571841df8a..665298fe2990 100644 --- a/arch/powerpc/platforms/pseries/cmm.c +++ b/arch/powerpc/platforms/pseries/cmm.c @@ -551,6 +551,10 @@ static int cmm_migratepage(struct balloon_dev_info *b_dev_info, */ plpar_page_set_active(page); + /* fixup the managed page count (esp. of the zone) */ + adjust_managed_page_count(page, 1); + adjust_managed_page_count(newpage, -1); + /* balloon page list reference */ put_page(page);
In case we have to migrate a ballon page to a newpage of another zone, the managed page count of both zones is wrong. Paired with memory offlining (which will adjust the managed page count), we can trigger kernel crashes and all kinds of different symptoms. Fix it by properly adjusting the managed page count when migrating. I did not try to reproduce on powerpc, however,I just resolved a long known issue when ballooning+offlining in virtio-balloon. The same should apply to powerpc/cmm since it started using the balloon compaction infrastructure (luckily just recently). Fixes: fe030c9b85e6 ("powerpc/pseries/cmm: Implement balloon compaction") Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Richard Fontana <rfontana@redhat.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Arun KS <arunks@codeaurora.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: David Hildenbrand <david@redhat.com> --- virtio-ballon fix with more details: https://lkml.kernel.org/r/20191204204807.8025-1-david@redhat.com/ --- arch/powerpc/platforms/pseries/cmm.c | 4 ++++ 1 file changed, 4 insertions(+)