Incorrect vmcoreinfo KERNELOFFSET after "s390/boot: Rework deployment of the kernel image"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, Alexander and Sven,

I just got around to testing drgn on s390x on 6.10-rc4, and it appears
to be broken. I bisected it to commit 56b1069c40c7 ("s390/boot: Rework
deployment of the kernel image") and narrowed it down to an issue with
the KERNELOFFSET value reported in vmcoreinfo.

On my test kernel, the ELF symbol for init_task is 0xc96f00:

  $ eu-readelf -s build/vmtest/s390x/kernel-6.10.0-rc4-vmtest30.1default/build/vmlinux | grep ' init_task$'
  72273: 0000000000c96f00   4352 OBJECT  GLOBAL DEFAULT       18 init_task

And the address in the loaded kernel is 0x3ffffeaaf00:

  # grep ' init_task$' /proc/kallsyms
  000003ffffeaaf00 D init_task

0x3ffffeaaf00 - 0xc96f00 is 0x3ffff214000

However, this doesn't match the value of KERNELOFFSET in vmcoreinfo:

  # eu-readelf -n /proc/kcore | grep KERNELOFFSET
    KERNELOFFSET=3ffff314000

It's off by 0x100000. This causes drgn to compute the wrong addresses
for all global variables.

For context, I'm testing using QEMU emulation on an x86-64 host. Note
that it logs "KASLR disabled: CPU has no PRNG" early during boot. My
exact setup is:

  $ git clone https://github.com/osandov/drgn.git
  $ cd drgn
  $ python3 -m vmtest.rootfsbuild -a s390x --build-drgn
  $ python3 -m vmtest.vm -k 's390x:6.10.*' bash -i
  # python3 -m drgn
  >>> prog['init_task'].comm
  (char [16])""

That should be printing "swapper/0".

Any ideas what's going on here?

Thanks!
Omar




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Kernel Development]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Info]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Linux Media]     [Device Mapper]

  Powered by Linux