From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vagrant Cascadian Subject: bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64 Date: Wed, 23 Jan 2019 09:48:14 -0800 Message-ID: <87h8dzw9i9.fsf@ponder> References: <87a7jtyeow.fsf@ponder> <874l9zhcew.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([209.51.188.92]:48566) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gmMe8-0000YR-F1 for bug-guix@gnu.org; Wed, 23 Jan 2019 12:49:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gmMe6-0007cv-J8 for bug-guix@gnu.org; Wed, 23 Jan 2019 12:49:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:43771) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gmMe6-0007cm-GG for bug-guix@gnu.org; Wed, 23 Jan 2019 12:49:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gmMe6-0000B5-4o for bug-guix@gnu.org; Wed, 23 Jan 2019 12:49:02 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <874l9zhcew.fsf@gnu.org> List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 34162@debbugs.gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 2019-01-23, Ludovic Court=C3=A8s wrote: > Vagrant Cascadian skribis: >> After upgrading to linux-libre 4.20, and again tested with 4.20.3, an >> aarch64 system failed to boot (using 4.19.10 worked fine): >> >> [ 3.692351] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialis= ed: dm-devel@redhat.com >> ext2fs_check_if_mount: Can't check if filesystem is mounted due to missi= ng mtab file while determining whether /dev/sda6 is mounted. >> /dev/sda6: clean, 596262/6553600 files, 7663147/26214400 blocks >> [ 3.948786] EXT4-fs (sda6): Cannot load crc32c driver. >> ERROR: In procedure mount: >> In procedure mount: No such file or directory ... >> Workaround or fix was to add to config.scm: >> >> (initrd (append (list "crc32c_generic" ... ) %base-initrd-modules)) > > There are potentially two issues here: > > 1. Why wasn=E2=80=99t crc32c_generic.ko automatically pulled in by the = initrd > build code? Isn=E2=80=99t it a dependency of ext4.ko? It is not a hard dependency, no. It's an optional feature only needed if certain ext4 features are enabled on the filesystem (maybe metadata_csum in this case?). So it's listed as a MODULE_SOFTDEP of ext4: fs/ext4/super.c:MODULE_SOFTDEP("pre: crc32c"); > 2. Is crc32c_generic built-in in our x86_64 kernel config? On x86_64: $ grep CRC32 /gnu/store/*linux-libre*4.20.4*/.config CONFIG_CRYPTO_CRC32C=3Dy CONFIG_CRYPTO_CRC32C_INTEL=3Dy CONFIG_CRYPTO_CRC32=3Dm CONFIG_CRYPTO_CRC32_PCLMUL=3Dm CONFIG_CRC32=3Dy # CONFIG_CRC32_SELFTEST is not set CONFIG_CRC32_SLICEBY8=3Dy # CONFIG_CRC32_SLICEBY4 is not set # CONFIG_CRC32_SARWATE is not set # CONFIG_CRC32_BIT is not set CONFIG_LIBCRC32C=3Dm On aarch64: $ grep CRC32 /gnu/store/*linux-libre*4.20.3*/.config CONFIG_CRYPTO_CRC32C=3Dm CONFIG_CRYPTO_CRC32=3Dm CONFIG_CRC32=3Dy # CONFIG_CRC32_SELFTEST is not set CONFIG_CRC32_SLICEBY8=3Dy # CONFIG_CRC32_SLICEBY4 is not set # CONFIG_CRC32_SARWATE is not set # CONFIG_CRC32_BIT is not set CONFIG_LIBCRC32C=3Dm on aarch64 4.19.10 also contained: CONFIG_CRYPTO_CRC32_ARM64_CE=3Dy Which is no longer available in 4.20.x upstream in commit 598b7d41e544322c8c4f3737ee8ddf905a44175e. So my hunch is that crc32c-ce was used in 4.19.x, but 4.20.x needed the generic crc32c implementation. live well, vagrant --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCXEio3wAKCRDcUY/If5cW qr00AQD8a+iBvyWsPayY4AIivxNUbXADpb9JF0E7pV9ZcaYpYgD+Ii/6UOGKfu2T X6HDAWg/7UOTG/2Xkp4T1NCPduB5/Qk= =lAnf -----END PGP SIGNATURE----- --=-=-=--