Re: qemu-arm64: CONFIG_ARM64_64K_PAGES=y kernel crash on qemu-arm64 with Linux next-20241210 and above

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

 





在 2024/12/20 01:40, Dan Carpenter 写道:
On Thu, Dec 19, 2024 at 10:44:12AM +1030, Qu Wenruo wrote:


在 2024/12/19 06:37, Qu Wenruo 写道:


在 2024/12/19 02:22, Naresh Kamboju 写道:
On Wed, 18 Dec 2024 at 17:33, Naresh Kamboju
<naresh.kamboju@xxxxxxxxxx> wrote:

The following kernel crash noticed on qemu-arm64 while running the
Linux next-20241210 tag (to next-20241218) kernel built with
   - CONFIG_ARM64_64K_PAGES=y
   - CONFIG_ARM64_16K_PAGES=y
and running LTP smoke tests.

First seen on Linux next-20241210.
    Good: next-20241209
    Bad:  next-20241210 and next-20241218

qemu-arm64: 9.1.2

Anyone noticed this ?


Anders bisected this reported regression and found,
# first bad commit:
    [9c1d66793b6faa00106ae4c866359578bfc012d2]
    btrfs: validate system chunk array at btrfs_validate_super()

Weird, I run daily fstests with 64K page sized aarch64 VM.

But never hit a crash on this.

And the original crash call trace only points back to ext4, not btrfs.


Yeah.  But it's in the memory allocator so it looks like memory
corruption.  After the ext4 crash then random other stuff starts
crashing as well when it allocates memory.

Mind to test it with KASAN enabled?


Anders is going to try that later and report back.

Another thing is, how do you enable both 16K and 64K page size at the
same time?

The Kconfig should only select one page size IIRC.

Right.  We tested 4k, 16k and 64k.  4k pages worked.


And for the bisection, does it focus on the test failure or the crash?


The crash.

For the failure part, I got the reason, it's indeed the patch, where we
call btrfs_check_chunk_valid() but fs_info->sectorsize is still in the
default value (4096), not the real one from the superblock.

Thus it will always report false alerts if the on-disk super block is
not using 4K sectorsize.

I'll fix it soon.

But sorry I didn't see why the false alert is related to the crash, the
only new memory allocation done in that patch is for a dummy extent
buffer, which should always be freed.

Anyway in the next version I'll get rid of the memory allocation completely.

Thanks,
Qu

regards,
dan carpenter








[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux