unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
@ 2019-01-21 19:48 Vagrant Cascadian
  2019-01-23 10:54 ` Ludovic Courtès
  2019-01-23 20:58 ` Mark H Weaver
  0 siblings, 2 replies; 10+ messages in thread
From: Vagrant Cascadian @ 2019-01-21 19:48 UTC (permalink / raw)
  To: 34162

[-- Attachment #1: Type: text/plain, Size: 1416 bytes --]

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@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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
  2019-01-21 19:48 bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64 Vagrant Cascadian
@ 2019-01-23 10:54 ` Ludovic Courtès
  2019-01-23 17:48   ` Vagrant Cascadian
  2019-01-23 17:54   ` Efraim Flashner
  2019-01-23 20:58 ` Mark H Weaver
  1 sibling, 2 replies; 10+ messages in thread
From: Ludovic Courtès @ 2019-01-23 10:54 UTC (permalink / raw)
  To: Vagrant Cascadian; +Cc: 34162

Hi Vagrant,

Vagrant Cascadian <vagrant@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@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’.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
  2019-01-23 10:54 ` Ludovic Courtès
@ 2019-01-23 17:48   ` Vagrant Cascadian
  2019-01-25  8:59     ` Ludovic Courtès
  2019-01-23 17:54   ` Efraim Flashner
  1 sibling, 1 reply; 10+ messages in thread
From: Vagrant Cascadian @ 2019-01-23 17:48 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 34162

[-- Attachment #1: Type: text/plain, Size: 2325 bytes --]

On 2019-01-23, Ludovic Courtès wrote:
> Vagrant Cascadian <vagrant@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@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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
  2019-01-23 10:54 ` Ludovic Courtès
  2019-01-23 17:48   ` Vagrant Cascadian
@ 2019-01-23 17:54   ` Efraim Flashner
  2019-01-23 17:57     ` Efraim Flashner
  1 sibling, 1 reply; 10+ messages in thread
From: Efraim Flashner @ 2019-01-23 17:54 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Vagrant Cascadian, 34162

[-- Attachment #1: Type: text/plain, Size: 5094 bytes --]

On Wed, Jan 23, 2019 at 11:54:31AM +0100, Ludovic Courtès wrote:
> Hi Vagrant,
> 
> Vagrant Cascadian <vagrant@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@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@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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
  2019-01-23 17:54   ` Efraim Flashner
@ 2019-01-23 17:57     ` Efraim Flashner
  2019-01-25  8:49       ` Ludovic Courtès
  0 siblings, 1 reply; 10+ messages in thread
From: Efraim Flashner @ 2019-01-23 17:57 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Vagrant Cascadian, 34162

[-- Attachment #1: Type: text/plain, Size: 5912 bytes --]

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@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@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@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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
  2019-01-21 19:48 bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64 Vagrant Cascadian
  2019-01-23 10:54 ` Ludovic Courtès
@ 2019-01-23 20:58 ` Mark H Weaver
  2019-01-24  0:44   ` Vagrant Cascadian
  1 sibling, 1 reply; 10+ messages in thread
From: Mark H Weaver @ 2019-01-23 20:58 UTC (permalink / raw)
  To: Vagrant Cascadian; +Cc: 34162

[-- Attachment #1: Type: text/plain, Size: 446 bytes --]

Hi,

Vagrant Cascadian <vagrant@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



[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: [PATCH] gnu: linux-libre: Make CRYPTO_CRC32C a built-in on arm64 --]
[-- Type: text/x-patch, Size: 1634 bytes --]

From 20a57e861cff4dce40c4eb6c7344f12d1f283cf8 Mon Sep 17 00:00:00 2001
From: Mark H Weaver <mhw@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@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


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
  2019-01-23 20:58 ` Mark H Weaver
@ 2019-01-24  0:44   ` Vagrant Cascadian
  2019-01-24  4:02     ` Mark H Weaver
  0 siblings, 1 reply; 10+ messages in thread
From: Vagrant Cascadian @ 2019-01-24  0:44 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: 34162

[-- Attachment #1: Type: text/plain, Size: 2309 bytes --]

On 2019-01-23, Mark H Weaver wrote:
> Vagrant Cascadian <vagrant@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@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@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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
  2019-01-24  0:44   ` Vagrant Cascadian
@ 2019-01-24  4:02     ` Mark H Weaver
  0 siblings, 0 replies; 10+ messages in thread
From: Mark H Weaver @ 2019-01-24  4:02 UTC (permalink / raw)
  To: Vagrant Cascadian; +Cc: 34162-done

Vagrant Cascadian <vagrant@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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
  2019-01-23 17:57     ` Efraim Flashner
@ 2019-01-25  8:49       ` Ludovic Courtès
  0 siblings, 0 replies; 10+ messages in thread
From: Ludovic Courtès @ 2019-01-25  8:49 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: Vagrant Cascadian, 34162

Hello!

Efraim Flashner <efraim@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’.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64
  2019-01-23 17:48   ` Vagrant Cascadian
@ 2019-01-25  8:59     ` Ludovic Courtès
  0 siblings, 0 replies; 10+ messages in thread
From: Ludovic Courtès @ 2019-01-25  8:59 UTC (permalink / raw)
  To: Vagrant Cascadian; +Cc: 34162

Hi,

Vagrant Cascadian <vagrant@debian.org> skribis:

> On 2019-01-23, Ludovic Courtès wrote:
>> Vagrant Cascadian <vagrant@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@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’.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-01-25  9:00 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-21 19:48 bug#34162: linux-libre 4.20+ fails to mount ext4 on aarch64 Vagrant Cascadian
2019-01-23 10:54 ` Ludovic Courtès
2019-01-23 17:48   ` Vagrant Cascadian
2019-01-25  8:59     ` Ludovic Courtès
2019-01-23 17:54   ` Efraim Flashner
2019-01-23 17:57     ` Efraim Flashner
2019-01-25  8:49       ` Ludovic Courtès
2019-01-23 20:58 ` Mark H Weaver
2019-01-24  0:44   ` Vagrant Cascadian
2019-01-24  4:02     ` Mark H Weaver

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).