linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Project idea: reduce boot time/RAM usage: option to disable/delay raid6_pq and xor kmod
@ 2017-12-24 12:31 Ceriel Jacobs
  2017-12-28 20:18 ` David Disseldorp
  0 siblings, 1 reply; 3+ messages in thread
From: Ceriel Jacobs @ 2017-12-24 12:31 UTC (permalink / raw)
  To: linux-btrfs

dmesg snippet (on Intel E3815 CPU):
[    0.499794] efivars: duplicate variable: Events-...
[    0.560048] raid6: sse2x1   gen()   932 MB/s
[    0.616732] raid6: sse2x1   xor()  1488 MB/s
[    0.673362] raid6: sse2x2   gen()  1665 MB/s
[    0.730014] raid6: sse2x2   xor()  1777 MB/s
[    0.786688] raid6: sse2x4   gen()  2635 MB/s
[    0.843352] raid6: sse2x4   xor()  1732 MB/s
[    0.843355] raid6: using algorithm sse2x4 gen() 2635 MB/s
[    0.843356] raid6: .... xor() 1732 MB/s, rmw enabled
[    0.843358] raid6: using ssse3x2 recovery algorithm
[    0.846998] xor: measuring software checksum speed
[    0.880025]    prefetch64-sse:  4605.600 MB/sec
[    0.913372]    generic_sse:  4176.000 MB/sec
[    0.913375] xor: using function: prefetch64-sse (4605.600 MB/sec)
[    0.952233] Btrfs loaded, crc32c=crc32c-intel
[    0.957669] SCSI subsystem initialized

# lsmod | grep btrfs
btrfs                1323008  3
xor                    24576  1 btrfs
zstd_decompress        94208  1 btrfs
zstd_compress         188416  1 btrfs
raid6_pq              122880  1 btrfs

# modinfo btrfs | grep 'filename:\|depends:'
filename:       /lib/modules/4.14.8-1-ARCH/kernel/fs/btrfs/btrfs.ko.xz
depends:        zstd_compress,zstd_decompress,raid6_pq,xor

---
This system doesn't use raid5 neither raid6 nor any RAID at all.

The wish is that btrfs can be loaded at run-time with/without loading 
kernel modules raid6_pq neither xor.

Saving:
1. ± 0.4 seconds of boot time (10% of boot until root)
2. ± 150k of RAM
3. ± 75k of disk space

For other cases, I can imagine a root system that doesn't need btrfs 
raid, and user data volumes that do use raid6_pq. In such delay cases it 
is welcome that btrfs-noraid can be loaded first, and the raid modules 
and benchmarking during/after init.

New kernel command-line parameters?
a.) disable, like:
     - btrfs=noraid6_pq
     - btrfs=noraid (=no xor at all)
b.) delay raid6_pq and xor module loading, for cases where root mount 
doesn't need raid6_pq and/or xor.

A new entry at https://btrfs.wiki.kernel.org/index.php/Project_ideas is 
welcome.

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

* Re: Project idea: reduce boot time/RAM usage: option to disable/delay raid6_pq and xor kmod
  2017-12-24 12:31 Project idea: reduce boot time/RAM usage: option to disable/delay raid6_pq and xor kmod Ceriel Jacobs
@ 2017-12-28 20:18 ` David Disseldorp
  2018-01-02 17:55   ` David Sterba
  0 siblings, 1 reply; 3+ messages in thread
From: David Disseldorp @ 2017-12-28 20:18 UTC (permalink / raw)
  To: Ceriel Jacobs; +Cc: linux-btrfs

On Sun, 24 Dec 2017 13:31:40 +0100, Ceriel Jacobs wrote:

> Saving:
> 1. ± 0.4 seconds of boot time (10% of boot until root)
> 2. ± 150k of RAM
> 3. ± 75k of disk space

Thanks for bringing this up - I'm also particularly frustrated by the
boot delay caused by the raid6 algorithm benchmark (1).

> New kernel command-line parameters?
> a.) disable, like:
>      - btrfs=noraid6_pq
>      - btrfs=noraid (=no xor at all)
> b.) delay raid6_pq and xor module loading, for cases where root mount 
> doesn't need raid6_pq and/or xor.

c) It might not help with (2) or (3), but I'd be happy with an option to
preselect the raid6 algorithm, so that the benchmark didn't run on each
boot.

Cheers, David

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

* Re: Project idea: reduce boot time/RAM usage: option to disable/delay raid6_pq and xor kmod
  2017-12-28 20:18 ` David Disseldorp
@ 2018-01-02 17:55   ` David Sterba
  0 siblings, 0 replies; 3+ messages in thread
From: David Sterba @ 2018-01-02 17:55 UTC (permalink / raw)
  To: David Disseldorp; +Cc: Ceriel Jacobs, linux-btrfs

On Thu, Dec 28, 2017 at 09:18:07PM +0100, David Disseldorp wrote:
> On Sun, 24 Dec 2017 13:31:40 +0100, Ceriel Jacobs wrote:
> 
> > Saving:
> > 1. ± 0.4 seconds of boot time (10% of boot until root)
> > 2. ± 150k of RAM
> > 3. ± 75k of disk space
> 
> Thanks for bringing this up - I'm also particularly frustrated by the
> boot delay caused by the raid6 algorithm benchmark (1).
> 
> > New kernel command-line parameters?
> > a.) disable, like:
> >      - btrfs=noraid6_pq
> >      - btrfs=noraid (=no xor at all)
> > b.) delay raid6_pq and xor module loading, for cases where root mount 
> > doesn't need raid6_pq and/or xor.
> 
> c) It might not help with (2) or (3), but I'd be happy with an option to
> preselect the raid6 algorithm, so that the benchmark didn't run on each
> boot.

The preselection looks like the least intrusive option.

Another other option is loading the modules on demand (either explicitly
eg.  inside the first mount or implicitly on the first use of the loaded
module), which might be tricky.

The crc32c functions are loaded through the crypto API, and not as a
direct module, but still initialized in the btfs module initialization
itself.

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

end of thread, other threads:[~2018-01-02 17:57 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-24 12:31 Project idea: reduce boot time/RAM usage: option to disable/delay raid6_pq and xor kmod Ceriel Jacobs
2017-12-28 20:18 ` David Disseldorp
2018-01-02 17:55   ` David Sterba

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 NNTP newsgroup(s).