Re: Debian SID kernel results in "Fast Data Access MMU Miss" on Sun Ultra 30

Stan Johnson <[email protected]>
Newsgroups gmane.linux.debian.ports.sparc
Message-ID <[email protected]>
Hello,

On 7/24/23 11:28 PM, John Paul Adrian Glaubitz wrote:
> Hi Stan!
> 
> On Mon, 2023-07-24 at 15:46 -0600, Stan Johnson wrote:
>> The latest Debian SID kernel (vmlinux-6.4.0-1-sparc64) fails on a Sun
>> Ultra 30 with the following error at the PROM:
>>
>> -----
>> ...
>> Loaded kernel version 6.4.4
>> Loading initial ramdisk (23022746 bytes at 0x64000000 phys, 0x40C00000
>> virt)...
>> Fast Data Access MMU Miss
>> ok
>> -----
>>
>> I have been running a custom 6.2.10 kernel, and that continues to work.
>> I'm not sure whether this is related to Joacim Nilsson's cgroup fail
>> error on his Sun Ultra 5, but the failure message is different. I'll
>> have to investigate whether this could be a kernel regression.
> 
> Thanks for the report.
> 
> If you could bisect this issue and report the commit to the original author
> who introduced it while CC'ing the SPARC LKML, that would be extremely helpful.
> 
> I have some older SPARCs myself, but currently no space to set them up for testing.
> 
> Adrian
> 

I have some results. But I'm not sure whether they make sense, and I
think I don't have access to the SPARC LKML, so I'll post here, and if
anyone thinks the results are valid, please forward to the SPARC LKML or
suggest additional tests.

Background:

For a while, the default Debian Linux kernel / initrd combination has
generated the "Fast Data Access MMU Miss" error while loading the initd,
and the issue is somewhat complicated by the fact that many 6.3.x
kernels crash on the Ultra 30 (apparently a different problem that has
been fixed). And it's possible, in most cases, to work around the MMU
Miss error, when it happens, by reducing the size of the initrd.

For example, I have a 6.4.8 kernel from www.kernel.org that works fine
with a custom config file that strips out all the things that I don't
need on my Ultra-30 (e.g. I only have a cheap GFX Raptor graphics card,
so I can remove all the other graphics card options).

I ran memtester on my Ultra-30 (this system has 1.5 GiB; I chose 1400
MiB, one loop for memtester) with no errors, and internal diagnostics
all pass, so this is not likely to be a hardware problem on my system
(and all my results are consistent -- kernel/initrd combinations that
fail consistently fail, and combinations that work consistently work).

Bisect Process:

I couldn't use Debian's sparc64 config file, since it doesn't generate
the kernel and initrd that Debian distributes. But I created a close
approximation of Debian's config file that strips out the debug options
(config-test, attached).

Please see the attached notes.txt file that documents the git bisect. I
started by locating a kernel that works and a kernel that fails:

stock kernels with Debian-based config:
6.2 -- fail
6.0 -- fail
5.19 -- pass

So the git bisect went from v5.19 to v6.0:

$ git checkout v6.0
$ git bisect start
$ git bisect bad
$ git bisect good v5.19

Unfortunately, the "first bad commit" doesn't seem to be related to the
problem, but perhaps kernel developers will see a connection.

This is the end of my effort on this issue, unless anyone has additional
suggestions.

thanks

-Stan Johnson
config-test (text/plain, 181.3 KB) - not displayed
notes.txt (text/plain, 12.9 KB)
$ cd linux
$ git reset --hard
$ git remote update

memtester 1400M -- testing 1400 MiB memory

kernel.org kernels with custom config:
6.4.8-ultra -- pass

stock kernels with Debian-based config:
6.2 -- fail
6.0 -- fail
5.19 -- pass

$ git checkout v6.0
$ git bisect start
$ git bisect bad
$ git bisect good v5.19

Linux version 5.19.0-08199-g78acd4ca4334 (johnson@chromebook) (sparc64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #4 Sat Aug 5 11:51:01 MDT 2023
$ git bisect bad

Linux version 5.19.0-03208-g526942b8134c (johnson@chromebook) (sparc64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #5 Sat Aug 5 17:33:28 MDT 2023
$ git bisect bad

Linux version 5.19.0-01606-g2e7a95156d64 (johnson@chromebook) (sparc64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #6 Sat Aug 5 18:28:14 MDT 2023
$ git bisect good

Linux version 5.19.0-02415-gc013d0af81f6 (johnson@chromebook) (sparc64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #7 Sat Aug 5 19:21:47 MDT 2023
$ git bisect good

Linux version 5.19.0-02801-gaad26f55f47a (johnson@chromebook) (sparc64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #8 Sat Aug 5 20:34:10 MDT 2023
$ git bisect bad

Linux version 5.19.0-02600-gc2a24a7a036b (johnson@chromebook) (sparc64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #9 Sat Aug 5 21:26:41 MDT 2023
$ git bisect bad

Linux version 5.19.0-02510-ga0b09f2d6f30 (johnson@chromebook) (sparc64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #10 Sat Aug 5 22:53:55 MDT 2023
$ git bisect good

Linux version 5.19.0-rc1-00045-gd4cfb144f605 (johnson@chromebook) (sparc64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #11 Sun Aug 6 05:26:29 MDT 2023
$ git bisect good

Linux version 5.19.0-rc1-00067-ga65c9a2a0b43 (johnson@chromebook) (sparc64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #12 Sun Aug 6 08:47:48 MDT 2023
$ git bisect good

Linux version 5.19.0-rc1-00078-g824b94a88320 (johnson@chromebook) (sparc64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #13 Sun Aug 6 11:10:19 MDT 2023
$ git bisect good

Linux version 5.19.0-rc1-00084-g96ec8dfdd094 (johnson@chromebook) (sparc64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #14 Sun Aug 6 12:09:15 MDT 2023
$ git bisect good

Linux version 5.19.0-rc1-00087-g11364d61314e (johnson@chromebook) (sparc64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #15 Sun Aug 6 14:10:00 MDT 2023
$ git bisect good

Linux version 5.19.0-rc1-00089-gaf5d35b83f64 (johnson@chromebook) (sparc64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #16 Sun Aug 6 15:02:51 MDT 2023
$ git bisect good

c2a24a7a036b3bd3a2e6c66730dfc777cae6540a is the first bad commit
commit c2a24a7a036b3bd3a2e6c66730dfc777cae6540a
Merge: a0b09f2d6f30 af5d35b83f64
Author: Linus Torvalds <[email protected]>
Date:   Tue Aug 2 17:45:14 2022 -0700

    Merge tag 'v5.20-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
    
    Pull crypto updates from Herbert Xu:
    "API:
    
       - Make proc files report fips module name and version
    
      Algorithms:
    
       - Move generic SHA1 code into lib/crypto
    
       - Implement Chinese Remainder Theorem for RSA
    
       - Remove blake2s
    
       - Add XCTR with x86/arm64 acceleration
    
       - Add POLYVAL with x86/arm64 acceleration
    
       - Add HCTR2
    
       - Add ARIA
    
      Drivers:
    
       - Add support for new CCP/PSP device ID in ccp"
    
    * tag 'v5.20-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (89 commits)
      crypto: tcrypt - Remove the static variable initialisations to NULL
      crypto: arm64/poly1305 - fix a read out-of-bound
      crypto: hisilicon/zip - Use the bitmap API to allocate bitmaps
      crypto: hisilicon/sec - fix auth key size error
      crypto: ccree - Remove a useless dma_supported() call
      crypto: ccp - Add support for new CCP/PSP device ID
      crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of
      crypto: hisilicon/hpre - don't use GFP_KERNEL to alloc mem during softirq
      crypto: testmgr - some more fixes to RSA test vectors
      cyrpto: powerpc/aes - delete the rebundant word "block" in comments
      hwrng: via - Fix comment typo
      crypto: twofish - Fix comment typo
      crypto: rmd160 - fix Kconfig "its" grammar
      crypto: keembay-ocs-ecc - Drop if with an always false condition
      Documentation: qat: rewrite description
      Documentation: qat: Use code block for qat sysfs example
      crypto: lib - add module license to libsha1
      crypto: lib - make the sha1 library optional
      crypto: lib - move lib/sha1.c into lib/crypto/
      crypto: fips - make proc files report fips module name and version
      ...

 Documentation/ABI/testing/sysfs-driver-qat         |   49 +
 Documentation/filesystems/fscrypt.rst              |   22 +-
 MAINTAINERS                                        |   15 +-
 arch/arm/crypto/Kconfig                            |    2 +-
 arch/arm/crypto/Makefile                           |    4 +-
 arch/arm/crypto/blake2s-shash.c                    |   75 -
 arch/arm64/crypto/Kconfig                          |   10 +-
 arch/arm64/crypto/Makefile                         |    3 +
 arch/arm64/crypto/aes-glue.c                       |   80 +-
 arch/arm64/crypto/aes-modes.S                      |  349 +-
 arch/arm64/crypto/aes-neon.S                       |    2 +-
 arch/arm64/crypto/poly1305-glue.c                  |    2 +-
 arch/arm64/crypto/polyval-ce-core.S                |  361 ++
 arch/arm64/crypto/polyval-ce-glue.c                |  191 +
 arch/powerpc/crypto/aes-spe-glue.c                 |    2 +-
 arch/x86/crypto/Makefile                           |    7 +-
 arch/x86/crypto/aes_ctrby8_avx-x86_64.S            |  232 +-
 arch/x86/crypto/aesni-intel_glue.c                 |  114 +-
 arch/x86/crypto/blake2s-glue.c                     |    3 +-
 arch/x86/crypto/blake2s-shash.c                    |   77 -
 arch/x86/crypto/blowfish_glue.c                    |    4 +-
 arch/x86/crypto/polyval-clmulni_asm.S              |  321 ++
 arch/x86/crypto/polyval-clmulni_glue.c             |  203 +
 crypto/Kconfig                                     |   98 +-
 crypto/Makefile                                    |    5 +-
 crypto/aria.c                                      |  288 ++
 crypto/blake2s_generic.c                           |   75 -
 crypto/fips.c                                      |   35 +-
 crypto/hctr2.c                                     |  581 +++
 crypto/polyval-generic.c                           |  245 +
 crypto/rsa.c                                       |   78 +-
 crypto/tcrypt.c                                    |   62 +-
 crypto/testmgr.c                                   |   75 +-
 crypto/testmgr.h                                   | 4830 ++++++++++++++++++--
 crypto/twofish_common.c                            |    2 +-
 crypto/xctr.c                                      |  191 +
 drivers/char/hw_random/via-rng.c                   |    2 +-
 .../crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c    |    1 +
 drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c  |   16 +-
 drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c  |   10 +-
 drivers/crypto/amcc/crypto4xx_core.c               |   40 +-
 drivers/crypto/atmel-aes.c                         |    3 +-
 drivers/crypto/atmel-ecc.c                         |   12 +-
 drivers/crypto/atmel-sha.c                         |    5 +-
 drivers/crypto/atmel-tdes.c                        |    5 +-
 drivers/crypto/caam/caamalg_qi2.c                  |    7 +-
 drivers/crypto/caam/caamhash_desc.c                |    2 +-
 drivers/crypto/caam/qi.c                           |    6 +-
 drivers/crypto/cavium/cpt/cpt_hw_types.h           |    2 +-
 drivers/crypto/ccp/ccp-dev.h                       |    2 +-
 drivers/crypto/ccp/sev-dev.c                       |   12 +-
 drivers/crypto/ccp/sp-pci.c                        |    7 +
 drivers/crypto/ccree/cc_driver.c                   |   13 +-
 drivers/crypto/ccree/cc_pm.c                       |    2 +
 drivers/crypto/hisilicon/hpre/hpre_crypto.c        |    2 +-
 drivers/crypto/hisilicon/qm.c                      |  203 +-
 drivers/crypto/hisilicon/sec/sec_algs.c            |   14 +-
 drivers/crypto/hisilicon/sec/sec_drv.c             |    2 +-
 drivers/crypto/hisilicon/sec/sec_drv.h             |    2 +-
 drivers/crypto/hisilicon/sec2/sec.h                |    6 +-
 drivers/crypto/hisilicon/sec2/sec_crypto.c         |   26 +-
 drivers/crypto/hisilicon/sec2/sec_crypto.h         |    1 +
 drivers/crypto/hisilicon/sec2/sec_main.c           |   39 +-
 drivers/crypto/hisilicon/trng/trng.c               |    2 +-
 drivers/crypto/hisilicon/zip/zip_crypto.c          |   10 +-
 drivers/crypto/hisilicon/zip/zip_main.c            |   17 +-
 drivers/crypto/inside-secure/safexcel.c            |    2 +
 drivers/crypto/inside-secure/safexcel.h            |   18 +-
 drivers/crypto/keembay/keembay-ocs-ecc.c           |    2 -
 .../crypto/marvell/octeontx2/otx2_cpt_devlink.c    |   40 +-
 .../crypto/marvell/octeontx2/otx2_cptpf_ucode.c    |   17 +-
 .../crypto/marvell/octeontx2/otx2_cptpf_ucode.h    |    3 +
 drivers/crypto/nx/nx-common-powernv.c              |    2 +-
 drivers/crypto/nx/nx-common-pseries.c              |    5 +-
 drivers/crypto/omap-aes.c                          |    4 -
 drivers/crypto/omap-des.c                          |    4 -
 drivers/crypto/omap-sham.c                         |    3 +-
 drivers/crypto/qat/Kconfig                         |   14 +-
 drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.c     |    1 +
 drivers/crypto/qat/qat_4xxx/adf_4xxx_hw_data.h     |    1 +
 drivers/crypto/qat/qat_4xxx/adf_drv.c              |    6 +-
 drivers/crypto/qat/qat_common/Makefile             |    1 +
 drivers/crypto/qat/qat_common/adf_accel_devices.h  |    1 +
 drivers/crypto/qat/qat_common/adf_cfg.c            |   41 +-
 drivers/crypto/qat/qat_common/adf_common_drv.h     |    8 +-
 drivers/crypto/qat/qat_common/adf_init.c           |   26 +
 drivers/crypto/qat/qat_common/adf_sriov.c          |   28 +-
 drivers/crypto/qat/qat_common/adf_sysfs.c          |  191 +
 drivers/crypto/qat/qat_common/qat_algs.c           |    4 +-
 drivers/crypto/qat/qat_common/qat_asym_algs.c      |    4 +-
 drivers/crypto/s5p-sss.c                           |    3 -
 drivers/crypto/sa2ul.c                             |   25 +-
 drivers/crypto/sa2ul.h                             |    1 +
 drivers/crypto/ux500/hash/hash_core.c              |    2 +-
 drivers/crypto/vmx/ghash.c                         |    1 +
 drivers/crypto/vmx/ghashp8-ppc.pl                  |    2 +-
 fs/crypto/fscrypt_private.h                        |    2 +-
 fs/crypto/keysetup.c                               |    7 +
 fs/crypto/policy.c                                 |   14 +-
 include/crypto/aria.h                              |  461 ++
 include/crypto/internal/blake2s.h                  |  108 -
 include/crypto/polyval.h                           |   22 +
 include/linux/hisi_acc_qm.h                        |    8 +-
 include/uapi/linux/fscrypt.h                       |    3 +-
 init/Kconfig                                       |    1 +
 lib/Makefile                                       |    2 +-
 lib/crypto/Kconfig                                 |    3 +
 lib/crypto/Makefile                                |    3 +
 lib/crypto/blake2s-selftest.c                      |   41 +
 lib/crypto/blake2s.c                               |   37 +-
 lib/crypto/sha1.c                                  |  140 +
 lib/mpi/mpi-add.c                                  |    2 +-
 lib/mpi/mpi-mul.c                                  |    1 +
 lib/sha1.c                                         |  137 -
 net/ipv6/Kconfig                                   |    1 +
 115 files changed, 9277 insertions(+), 1340 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-driver-qat
 delete mode 100644 arch/arm/crypto/blake2s-shash.c
 create mode 100644 arch/arm64/crypto/polyval-ce-core.S
 create mode 100644 arch/arm64/crypto/polyval-ce-glue.c
 delete mode 100644 arch/x86/crypto/blake2s-shash.c
 create mode 100644 arch/x86/crypto/polyval-clmulni_asm.S
 create mode 100644 arch/x86/crypto/polyval-clmulni_glue.c
 create mode 100644 crypto/aria.c
 delete mode 100644 crypto/blake2s_generic.c
 create mode 100644 crypto/hctr2.c
 create mode 100644 crypto/polyval-generic.c
 create mode 100644 crypto/xctr.c
 create mode 100644 drivers/crypto/qat/qat_common/adf_sysfs.c
 create mode 100644 include/crypto/aria.h
 create mode 100644 include/crypto/polyval.h
 create mode 100644 lib/crypto/sha1.c
 delete mode 100644 lib/sha1.c
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.