]> git.proxmox.com Git - mirror_zfs.git/commitdiff
ZIL: Remove 128K into 2x68K LWB split optimization
authorAlexander Motin <mav@FreeBSD.org>
Wed, 6 Dec 2023 23:02:05 +0000 (18:02 -0500)
committerGitHub <noreply@github.com>
Wed, 6 Dec 2023 23:02:05 +0000 (15:02 -0800)
To improve 128KB block write performance in case of multiple VDEVs
ZIL used to spit those writes into two 64KB ones.  Unfortunately it
was found to cause LWB buffer overflow, trying to write maximum-
sizes 128KB TX_CLONE_RANGE record with 1022 block pointers into
68KB buffer, since unlike TX_WRITE ZIL code can't split it.

This is a minimally-invasive temporary block cloning fix until the
following more invasive prediction code refactoring.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Ameer Hamza <ahamza@ixsystems.com>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored by: iXsystems, Inc.
Closes #15634

module/zfs/zil.c

index 252d9a0493de542768f4e71e69131537df752ca6..e1001d1be45394a80a966a94cd6a56e6bbcc6d7b 100644 (file)
@@ -1725,8 +1725,6 @@ static const struct {
        { 8192 + 4096,  8192 + 4096 },          /* database */
        { 32768 + 4096, 32768 + 4096 },         /* NFS writes */
        { 65536 + 4096, 65536 + 4096 },         /* 64KB writes */
-       { 131072,       131072 },               /* < 128KB writes */
-       { 131072 +4096, 65536 + 4096 },         /* 128KB writes */
        { UINT64_MAX,   SPA_OLD_MAXBLOCKSIZE},  /* > 128KB writes */
 };