GNU bug report logs - #34162
linux-libre 4.20+ fails to mount ext4 on aarch64

Previous Next

Package: guix;

Reported by: Vagrant Cascadian <vagrant <at> debian.org>

Date: Mon, 21 Jan 2019 19:50:01 UTC

Severity: normal

Done: Mark H Weaver <mhw <at> netris.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 34162 in the body.
You can then email your comments to 34162 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#34162; Package guix. (Mon, 21 Jan 2019 19:50:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Vagrant Cascadian <vagrant <at> debian.org>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Mon, 21 Jan 2019 19:50:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Vagrant Cascadian <vagrant <at> debian.org>
To: bug-guix <at> gnu.org
Subject: linux-libre 4.20+ fails to mount ext4 on aarch64
Date: Mon, 21 Jan 2019 11:48:47 -0800
[Message part 1 (text/plain, inline)]
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) initialised: dm-devel <at> redhat.com
ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing 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

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
GNU Guile 2.2.4
Copyright (C) 1995-2017 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)>

Workaround or fix was to add to config.scm:

(initrd (append (list "crc32c_generic" ... ) %base-initrd-modules))


4.19.10 and earlier worked fine without this addition; as far as I can
see the relevent kernel configurations are all present; but some
behavior changed with the ext4 driver; Is the initrd no longer including
soft module dependencies? (e.g. for optional ext4 features)


This seems similar to Debian bug:

  https://bugs.debian.org/819725


live well,
  vagrant
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#34162; Package guix. (Wed, 23 Jan 2019 10:55:02 GMT) Full text and rfc822 format available.

Message #8 received at 34162 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Vagrant Cascadian <vagrant <at> debian.org>
Cc: 34162 <at> debbugs.gnu.org
Subject: Re: bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
Date: Wed, 23 Jan 2019 11:54:31 +0100
Hi Vagrant,

Vagrant Cascadian <vagrant <at> debian.org> 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) initialised: dm-devel <at> redhat.com
> ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing 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
>
> Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
> GNU Guile 2.2.4
> Copyright (C) 1995-2017 Free Software Foundation, Inc.
>
> Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
> This program is free software, and you are welcome to redistribute it
> under certain conditions; type `,show c' for details.
>
> Enter `,help' for help.
> scheme@(guile-user)>
>
> 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’t crc32c_generic.ko automatically pulled in by the initrd
     build code?  Isn’t it a dependency of ext4.ko?

  2. Is crc32c_generic built-in in our x86_64 kernel config?

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#34162; Package guix. (Wed, 23 Jan 2019 17:49:02 GMT) Full text and rfc822 format available.

Message #11 received at 34162 <at> debbugs.gnu.org (full text, mbox):

From: Vagrant Cascadian <vagrant <at> debian.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 34162 <at> debbugs.gnu.org
Subject: Re: bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
Date: Wed, 23 Jan 2019 09:48:14 -0800
[Message part 1 (text/plain, inline)]
On 2019-01-23, Ludovic Courtès wrote:
> Vagrant Cascadian <vagrant <at> debian.org> 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) initialised: dm-devel <at> redhat.com
>> ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing 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’t crc32c_generic.ko automatically pulled in by the initrd
>      build code?  Isn’t 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=y
CONFIG_CRYPTO_CRC32C_INTEL=y
CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRC32_PCLMUL=m
CONFIG_CRC32=y
# CONFIG_CRC32_SELFTEST is not set
CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
CONFIG_LIBCRC32C=m

On aarch64:

$ grep CRC32 /gnu/store/*linux-libre*4.20.3*/.config
CONFIG_CRYPTO_CRC32C=m
CONFIG_CRYPTO_CRC32=m
CONFIG_CRC32=y
# CONFIG_CRC32_SELFTEST is not set
CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
CONFIG_LIBCRC32C=m

on aarch64 4.19.10 also contained:

CONFIG_CRYPTO_CRC32_ARM64_CE=y

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
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#34162; Package guix. (Wed, 23 Jan 2019 17:55:01 GMT) Full text and rfc822 format available.

Message #14 received at 34162 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Vagrant Cascadian <vagrant <at> debian.org>, 34162 <at> debbugs.gnu.org
Subject: Re: bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
Date: Wed, 23 Jan 2019 19:54:24 +0200
[Message part 1 (text/plain, inline)]
On Wed, Jan 23, 2019 at 11:54:31AM +0100, Ludovic Courtès wrote:
> Hi Vagrant,
> 
> Vagrant Cascadian <vagrant <at> debian.org> 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) initialised: dm-devel <at> redhat.com
> > ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing 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
> >
> > Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
> > GNU Guile 2.2.4
> > Copyright (C) 1995-2017 Free Software Foundation, Inc.
> >
> > Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
> > This program is free software, and you are welcome to redistribute it
> > under certain conditions; type `,show c' for details.
> >
> > Enter `,help' for help.
> > scheme@(guile-user)>
> >
> > 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’t crc32c_generic.ko automatically pulled in by the initrd
>      build code?  Isn’t it a dependency of ext4.ko?
> 
>   2. Is crc32c_generic built-in in our x86_64 kernel config?
> 
$ grep _CRC gnu/packages/aux-files/linux-libre/4.20-{x86_,arm}64.conf
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_W1_SLAVE_DS2433_CRC is not set
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_PWM_CRC=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32C=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32C_INTEL=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32=m
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32_PCLMUL=m
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRCT10DIF=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC_CCITT=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC16=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC_T10DIF=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC_ITU_T=m
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC32=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC32_SELFTEST is not set
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC32_SLICEBY8=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC32_SLICEBY4 is not set
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC32_SARWATE is not set
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC32_BIT is not set
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC64=m
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC4 is not set
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC7=m
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC8=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRYPTO_CRCT10DIF_ARM64_CE is not set
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_W1_SLAVE_DS2433_CRC is not set
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRYPTO_CRC32C=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRYPTO_CRC32=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRYPTO_CRCT10DIF=y
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC_CCITT=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC16=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC_T10DIF=y
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC_ITU_T=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC32=y
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC32_SELFTEST is not set
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC32_SLICEBY8=y
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC32_SLICEBY4 is not set
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC32_SARWATE is not set
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC32_BIT is not set
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC64=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC4 is not set
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC7=m
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC8=m

It looks like the only one that they share that is different is
CONFIG_CRYPTO_CRC32C

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#34162; Package guix. (Wed, 23 Jan 2019 17:58:02 GMT) Full text and rfc822 format available.

Message #17 received at 34162 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Vagrant Cascadian <vagrant <at> debian.org>, 34162 <at> debbugs.gnu.org
Subject: Re: bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
Date: Wed, 23 Jan 2019 19:57:08 +0200
[Message part 1 (text/plain, inline)]
On Wed, Jan 23, 2019 at 07:54:24PM +0200, Efraim Flashner wrote:
> On Wed, Jan 23, 2019 at 11:54:31AM +0100, Ludovic Courtès wrote:
> > Hi Vagrant,
> > 
> > Vagrant Cascadian <vagrant <at> debian.org> 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) initialised: dm-devel <at> redhat.com
> > > ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing 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
> > >
> > > Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
> > > GNU Guile 2.2.4
> > > Copyright (C) 1995-2017 Free Software Foundation, Inc.
> > >
> > > Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
> > > This program is free software, and you are welcome to redistribute it
> > > under certain conditions; type `,show c' for details.
> > >
> > > Enter `,help' for help.
> > > scheme@(guile-user)>
> > >
> > > 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’t crc32c_generic.ko automatically pulled in by the initrd
> >      build code?  Isn’t it a dependency of ext4.ko?
> > 
> >   2. Is crc32c_generic built-in in our x86_64 kernel config?
> > 
> $ grep _CRC gnu/packages/aux-files/linux-libre/4.20-{x86_,arm}64.conf
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_W1_SLAVE_DS2433_CRC is not set
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_PWM_CRC=y
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32C=y
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32C_INTEL=y
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32=m
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32_PCLMUL=m
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRCT10DIF=y
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC_CCITT=y
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC16=y
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC_T10DIF=y
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC_ITU_T=m
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC32=y
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC32_SELFTEST is not set
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC32_SLICEBY8=y
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC32_SLICEBY4 is not set
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC32_SARWATE is not set
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC32_BIT is not set
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC64=m
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:# CONFIG_CRC4 is not set
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC7=m
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRC8=m
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRYPTO_CRCT10DIF_ARM64_CE is not set
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_W1_SLAVE_DS2433_CRC is not set
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRYPTO_CRC32C=m
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRYPTO_CRC32=m
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRYPTO_CRCT10DIF=y
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC_CCITT=m
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC16=m
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC_T10DIF=y
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC_ITU_T=m
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC32=y
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC32_SELFTEST is not set
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC32_SLICEBY8=y
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC32_SLICEBY4 is not set
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC32_SARWATE is not set
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC32_BIT is not set
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC64=m
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:# CONFIG_CRC4 is not set
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC7=m
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRC8=m
> 
> It looks like the only one that they share that is different is
> CONFIG_CRYPTO_CRC32C
> 
Checked the others right after I sent the previous email:
$ grep _CRC32C gnu/packages/aux-files/linux-libre/4.20-*.conf
gnu/packages/aux-files/linux-libre/4.20-arm.conf:CONFIG_CRYPTO_CRC32C=y
gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRYPTO_CRC32C=m
gnu/packages/aux-files/linux-libre/4.20-i686.conf:CONFIG_CRYPTO_CRC32C=y
gnu/packages/aux-files/linux-libre/4.20-i686.conf:CONFIG_CRYPTO_CRC32C_INTEL=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32C=y
gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32C_INTEL=y


-- 
Efraim Flashner   <efraim <at> flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#34162; Package guix. (Wed, 23 Jan 2019 21:00:01 GMT) Full text and rfc822 format available.

Message #20 received at 34162 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Vagrant Cascadian <vagrant <at> debian.org>
Cc: 34162 <at> debbugs.gnu.org
Subject: Re: bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
Date: Wed, 23 Jan 2019 15:58:42 -0500
[Message part 1 (text/plain, inline)]
Hi,

Vagrant Cascadian <vagrant <at> debian.org> writes:

> 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):

[...]

> Workaround or fix was to add to config.scm:
>
> (initrd (append (list "crc32c_generic" ... ) %base-initrd-modules))

Here's a proposed (untested) patch.  Would you like to test it and see
if it eliminates the need for this workaround?

       Mark


[0001-gnu-linux-libre-Make-CRYPTO_CRC32C-a-built-in-on-arm.patch (text/x-patch, inline)]
From 20a57e861cff4dce40c4eb6c7344f12d1f283cf8 Mon Sep 17 00:00:00 2001
From: Mark H Weaver <mhw <at> netris.org>
Date: Wed, 23 Jan 2019 01:20:30 -0500
Subject: [PATCH] gnu: linux-libre: Make CRYPTO_CRC32C a built-in on arm64.

Fixes <https://bugs.gnu.org/34162>
Reported by Vagrant Cascadian <vagrant <at> debian.org>

Note that CRYPTO_CRC32C was already a built-in in our default
configurations for other systems.

* gnu/packages/aux-files/linux-libre/4.20-arm64.conf,
gnu/packages/aux-files/linux-libre/4.19-arm64.conf
(CONFIG_CRYPTO_CRC32C): Change from 'm' to 'y'.
---
 gnu/packages/aux-files/linux-libre/4.19-arm64.conf | 2 +-
 gnu/packages/aux-files/linux-libre/4.20-arm64.conf | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/aux-files/linux-libre/4.19-arm64.conf b/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
index ba6fa177b..73cd300c1 100644
--- a/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
+++ b/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
@@ -7860,7 +7860,7 @@ CONFIG_CRYPTO_VMAC=m
 #
 # Digest
 #
-CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C=y
 CONFIG_CRYPTO_CRC32=m
 CONFIG_CRYPTO_CRCT10DIF=y
 CONFIG_CRYPTO_GHASH=m
diff --git a/gnu/packages/aux-files/linux-libre/4.20-arm64.conf b/gnu/packages/aux-files/linux-libre/4.20-arm64.conf
index 9e71cadf0..3833e3e36 100644
--- a/gnu/packages/aux-files/linux-libre/4.20-arm64.conf
+++ b/gnu/packages/aux-files/linux-libre/4.20-arm64.conf
@@ -7932,7 +7932,7 @@ CONFIG_CRYPTO_VMAC=m
 #
 # Digest
 #
-CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C=y
 CONFIG_CRYPTO_CRC32=m
 CONFIG_CRYPTO_CRCT10DIF=y
 CONFIG_CRYPTO_GHASH=m
-- 
2.20.1


Information forwarded to bug-guix <at> gnu.org:
bug#34162; Package guix. (Thu, 24 Jan 2019 00:45:01 GMT) Full text and rfc822 format available.

Message #23 received at 34162 <at> debbugs.gnu.org (full text, mbox):

From: Vagrant Cascadian <vagrant <at> debian.org>
To: Mark H Weaver <mhw <at> netris.org>
Cc: 34162 <at> debbugs.gnu.org
Subject: Re: bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
Date: Wed, 23 Jan 2019 16:44:03 -0800
[Message part 1 (text/plain, inline)]
On 2019-01-23, Mark H Weaver wrote:
> Vagrant Cascadian <vagrant <at> debian.org> writes:
>
>> 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):
>
> [...]
>
>> Workaround or fix was to add to config.scm:
>>
>> (initrd (append (list "crc32c_generic" ... ) %base-initrd-modules))
>
> Here's a proposed (untested) patch.  Would you like to test it and see
> if it eliminates the need for this workaround?

It did, thanks!

live well,
  vagrant

> From 20a57e861cff4dce40c4eb6c7344f12d1f283cf8 Mon Sep 17 00:00:00 2001
> From: Mark H Weaver <mhw <at> netris.org>
> Date: Wed, 23 Jan 2019 01:20:30 -0500
> Subject: [PATCH] gnu: linux-libre: Make CRYPTO_CRC32C a built-in on arm64.
>
> Fixes <https://bugs.gnu.org/34162>
> Reported by Vagrant Cascadian <vagrant <at> debian.org>
>
> Note that CRYPTO_CRC32C was already a built-in in our default
> configurations for other systems.
>
> * gnu/packages/aux-files/linux-libre/4.20-arm64.conf,
> gnu/packages/aux-files/linux-libre/4.19-arm64.conf
> (CONFIG_CRYPTO_CRC32C): Change from 'm' to 'y'.
> ---
>  gnu/packages/aux-files/linux-libre/4.19-arm64.conf | 2 +-
>  gnu/packages/aux-files/linux-libre/4.20-arm64.conf | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/aux-files/linux-libre/4.19-arm64.conf b/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
> index ba6fa177b..73cd300c1 100644
> --- a/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
> +++ b/gnu/packages/aux-files/linux-libre/4.19-arm64.conf
> @@ -7860,7 +7860,7 @@ CONFIG_CRYPTO_VMAC=m
>  #
>  # Digest
>  #
> -CONFIG_CRYPTO_CRC32C=m
> +CONFIG_CRYPTO_CRC32C=y
>  CONFIG_CRYPTO_CRC32=m
>  CONFIG_CRYPTO_CRCT10DIF=y
>  CONFIG_CRYPTO_GHASH=m
> diff --git a/gnu/packages/aux-files/linux-libre/4.20-arm64.conf b/gnu/packages/aux-files/linux-libre/4.20-arm64.conf
> index 9e71cadf0..3833e3e36 100644
> --- a/gnu/packages/aux-files/linux-libre/4.20-arm64.conf
> +++ b/gnu/packages/aux-files/linux-libre/4.20-arm64.conf
> @@ -7932,7 +7932,7 @@ CONFIG_CRYPTO_VMAC=m
>  #
>  # Digest
>  #
> -CONFIG_CRYPTO_CRC32C=m
> +CONFIG_CRYPTO_CRC32C=y
>  CONFIG_CRYPTO_CRC32=m
>  CONFIG_CRYPTO_CRCT10DIF=y
>  CONFIG_CRYPTO_GHASH=m
> -- 
> 2.20.1
[signature.asc (application/pgp-signature, inline)]

Reply sent to Mark H Weaver <mhw <at> netris.org>:
You have taken responsibility. (Thu, 24 Jan 2019 04:04:01 GMT) Full text and rfc822 format available.

Notification sent to Vagrant Cascadian <vagrant <at> debian.org>:
bug acknowledged by developer. (Thu, 24 Jan 2019 04:04:02 GMT) Full text and rfc822 format available.

Message #28 received at 34162-done <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Vagrant Cascadian <vagrant <at> debian.org>
Cc: 34162-done <at> debbugs.gnu.org
Subject: Re: bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
Date: Wed, 23 Jan 2019 23:02:31 -0500
Vagrant Cascadian <vagrant <at> debian.org> writes:

> On 2019-01-23, Mark H Weaver wrote:
>> Here's a proposed (untested) patch.  Would you like to test it and see
>> if it eliminates the need for this workaround?
>
> It did, thanks!

Okay, I pushed it to master, commit
ff0b73028c0bbbcbf352989ed3863947357c3bce.

I'm closing this bug report.

    Thanks!
      Mark




Information forwarded to bug-guix <at> gnu.org:
bug#34162; Package guix. (Fri, 25 Jan 2019 08:50:02 GMT) Full text and rfc822 format available.

Message #31 received at 34162 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Efraim Flashner <efraim <at> flashner.co.il>
Cc: Vagrant Cascadian <vagrant <at> debian.org>, 34162 <at> debbugs.gnu.org
Subject: Re: bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
Date: Fri, 25 Jan 2019 09:49:40 +0100
Hello!

Efraim Flashner <efraim <at> flashner.co.il> skribis:

> Checked the others right after I sent the previous email:
> $ grep _CRC32C gnu/packages/aux-files/linux-libre/4.20-*.conf
> gnu/packages/aux-files/linux-libre/4.20-arm.conf:CONFIG_CRYPTO_CRC32C=y
> gnu/packages/aux-files/linux-libre/4.20-arm64.conf:CONFIG_CRYPTO_CRC32C=m
> gnu/packages/aux-files/linux-libre/4.20-i686.conf:CONFIG_CRYPTO_CRC32C=y
> gnu/packages/aux-files/linux-libre/4.20-i686.conf:CONFIG_CRYPTO_CRC32C_INTEL=y
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32C=y
> gnu/packages/aux-files/linux-libre/4.20-x86_64.conf:CONFIG_CRYPTO_CRC32C_INTEL=y

Oh, could this one be the culprit, Vagrant?

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#34162; Package guix. (Fri, 25 Jan 2019 09:00:02 GMT) Full text and rfc822 format available.

Message #34 received at 34162 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Vagrant Cascadian <vagrant <at> debian.org>
Cc: 34162 <at> debbugs.gnu.org
Subject: Re: bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
Date: Fri, 25 Jan 2019 09:59:09 +0100
Hi,

Vagrant Cascadian <vagrant <at> debian.org> skribis:

> On 2019-01-23, Ludovic Courtès wrote:
>> Vagrant Cascadian <vagrant <at> debian.org> 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) initialised: dm-devel <at> redhat.com
>>> ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing 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’t crc32c_generic.ko automatically pulled in by the initrd
>>      build code?  Isn’t 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");

Interesting.  Should we add support for soft dependencies in (gnu build
linux-modules), and pull in soft dependencies in the initrd?  Currently
we only do that for hard dependencies.

That wouldn’t help in this case since ext4 is built-in.  So my guess is
that for this particular case we should probably just change the AArch64
kernel config so it matches the x86 ones.

Thoughts?

Thanks,
Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 22 Feb 2019 12:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 36 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.