* 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).