Subject: [Bug 215389] pagealloc: memory corruption at building glibc-2.33 and running its' testsuite

From: [email-masked]
Date: Wed, 29 Jun 2022 10:25:52 +0000

https://bugzilla.kernel.org/show_bug.cgi?id=215389

--- Comment #31 from Erhard F. ([email-masked]) ---
(In reply to Michael Ellerman from comment #30)
> It's a bit of a stab in the dark, but can you try turning preempt off?
> 
> ie. CONFIG_PREEMPT_NONE=y
Just tested that. Backtrace looks a little different but not much.

[..]
pagealloc: memory corruption
fffdfff0: 00 00 00 00                                      ....
CPU: 0 PID: 29086 Comm: localedef Not tainted 5.19.0-rc4-PMacG4 #2
Call Trace:
[f397bc90] [c05eb280] dump_stack_lvl+0x60/0x90 (unreliable)
[f397bcb0] [c0233128] __kernel_unpoison_pages+0x1a8/0x1ec
[f397bd00] [c02172ec] get_page_from_freelist+0xc20/0xe70
[f397bdc0] [c0217de0] __alloc_pages+0x180/0xe98
[f397be80] [c01fa164] handle_mm_fault+0x450/0xd64
[f397bf00] [c00215d8] do_page_fault+0x1d0/0x82c
[f397bf30] [c000433c] DataAccess_virt+0x124/0x17c
--- interrupt: 300 at 0x83f1b8
NIP:  0083f1b8 LR: 0083e25c CTR: 00000000
REGS: f397bf40 TRAP: 0300   Not tainted  (5.19.0-rc4-PMacG4)
MSR:  0000d032 <EE,PR,ME,IR,DR,RI>  CR: 88224462  XER: 00000000
DAR: 01232b3c DSISR: 42000000 
GPR00: 00840220 af9416c0 a7ca4000 01231b50 00000fe0 00000005 01232b38 00000000 
GPR08: 00000ff1 01231b48 0000f4c9 008422b0 01067408 00a2fe34 00000070 01231b50 
GPR16: 00000000 00000000 00000000 00000007 0000003f 009ba23c 01067010 009ba79c 
GPR24: 00000062 009bdac8 000000fe 009ba79c 00000fe0 009ba764 009b9ff4 00000ff0 
NIP [0083f1b8] 0x83f1b8
LR [0083e25c] 0x83e25c
--- interrupt: 300
page:ef4bd80c refcount:1 mapcount:0 mapping:00000000 index:0x1 pfn:0x310ab
flags: 0x80000000(zone=2)
raw: 80000000 00000100 00000122 00000000 00000001 00000000 ffffffff 00000001
raw: 00000000
page dumped because: pagealloc: corrupted page details

Interesting thing is the memory corruption always seems to happen in the last
stage of installing, after building is done at copying over the binaries from
build directory to target directory:

[...]
if test -r
/var/tmp/portage/sys-libs/glibc-2.34-r13/image//usr/include/gnu/stubs-32.h &&
cmp -s
/var/tmp/portage/sys-libs/glibc-2.34-r13/work/build-ppc-powerpc-unknown-linux-gnu-nptl/stubs.h
/var/tmp/portage/sys-libs/glibc-2.34-r13/image//usr/include/gnu/stubs-32.h; \
then echo 'stubs.h unchanged'; \
else /usr/lib/portage/python3.10/ebuild-helpers/xattr/install -c -m 644
/var/tmp/portage/sys-libs/glibc-2.34-r13/work/build-ppc-powerpc-unknown-linux-gnu-nptl/stubs.h
/var/tmp/portage/sys-libs/glibc-2.34-r13/image//usr/include/gnu/stubs-32.h; fi
rm -f
/var/tmp/portage/sys-libs/glibc-2.34-r13/work/build-ppc-powerpc-unknown-linux-gnu-nptl/stubs.h
make[1]: Leaving directory
'/var/tmp/portage/sys-libs/glibc-2.34-r13/work/glibc-2.34'
>>> Completed installing sys-libs/glibc-2.34-r13 into
>>> /var/tmp/portage/sys-libs/glibc-2.34-r13/image

 * Final size of build directory: 635640 KiB (620.7 MiB)
 * Final size of installed tree:  109892 KiB (107.3 MiB)

making executable: /usr/lib/libc.so
compressme           : 44.96%   (  3.80 KiB =>   1.71 KiB, compressme.zst)     
[...]
/var/tmp/portage/sys-libs/glibc-2.34-r13/image/usr/share/doc/glibc-2.34-r13/NEWS
: 33.98%   (   315 KiB =>    107 KiB,
/var/tmp/portage/sys-libs/glibc-2.34-r13/image/usr/share/doc/glibc-2.34-r13/NEWS.zst) 
strip: powerpc-unknown-linux-gnu-strip --strip-unneeded -N
__gentoo_check_ldflags__ -R .comment -R .GCC.command.line -R
.note.gnu.gold-version
   /usr/lib/crt1.o
   /usr/lib/Mcrt1.o
   /usr/lib/gcrt1.o
   /usr/lib/Scrt1.o
[...]
   /lib/ld.so.1
   /usr/lib/audit/sotruss-lib.so
   /usr/bin/pldd
installsources: rsyncing source files
rsync: [sender] link_stat
"/var/tmp/portage/sys-libs/glibc-2.34-r13/work/glibc-2.34/iconv/charmap-kw.gperf"
failed: No such file or directory (2)
rsync: [sender] link_stat
"/var/tmp/portage/sys-libs/glibc-2.34-r13/work/glibc-2.34/locale/charmap-kw.gperf"
failed: No such file or directory (2)
rsync: [sender] link_stat
"/var/tmp/portage/sys-libs/glibc-2.34-r13/work/glibc-2.34/locale/locfile-kw.gperf"
failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code
23) at main.c(1326) [sender=3.2.4]

>>> Installing (1 of 1) sys-libs/glibc-2.34-r13::gentoo
 * Defaulting /etc/host.conf:multi to on
 * Last-minute run tests with ./ld.so.1 in /lib ...
[...]

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.