From 1e1d748cae2edf4afc08cb4a9d063b843dc9f396 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Wed, 6 Dec 2023 18:02:05 -0500 Subject: [PATCH] ZIL: Remove 128K into 2x68K LWB split optimization 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 Reviewed-by: Ameer Hamza Signed-off-by: Alexander Motin Sponsored by: iXsystems, Inc. Closes #15634 --- module/zfs/zil.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/module/zfs/zil.c b/module/zfs/zil.c index 7670e17295..5642f082bd 100644 --- a/module/zfs/zil.c +++ b/module/zfs/zil.c @@ -1733,8 +1733,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 */ };