Gerrit Promises / 63809

LU-19852 lod: raidset aware stripe allocator

63809 master PS55 merged LU-19852 · Ronnie Sahlberg · scanned 13 h ago

Export .md
0open
0in flight
14to check
0kept
0set aside
9in resolved threads

503 threads read, 335 from checkers only skipped, 15 duplicates folded in

Open 0

None.

To check 14

Not checked Fix possible ERR_PTR dereference of 'd' in lod_comp_prep_create() Ronnie Sahlberg lustre/lod/lod_qos.c:3581 PS53 high resolved thread +13 repeats
Not checked against the code yet.
“Acknowledged”Ronnie Sahlberg, PS53

Also raised in 13 other threads — recurring same fix needed for possible ERR_PTR dereference of 'd' in lod_comp_prep_create across patchsets

lustre/lod/lod_qos.c:3254 PS6 Misc Code Checks Robot (Gatekeeper helper): error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) · 2026-02-17 04:11 · PS6 · resolved
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
lustre/lod/lod_qos.c:3254 PS7 Misc Code Checks Robot (Gatekeeper helper): error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) · 2026-02-19 00:44 · PS7 · resolved
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
lustre/lod/lod_qos.c:3250 PS8 Misc Code Checks Robot (Gatekeeper helper): error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) · 2026-03-02 02:49 · PS8 · resolved
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
lustre/lod/lod_qos.c:3308 PS9 Misc Code Checks Robot (Gatekeeper helper): error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) · 2026-03-03 08:44 · PS9 · resolved
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
lustre/lod/lod_qos.c:3308 PS10 Misc Code Checks Robot (Gatekeeper helper): error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) · 2026-03-16 01:13 · PS10 · resolved
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
lustre/lod/lod_qos.c:3308 PS11 Misc Code Checks Robot (Gatekeeper helper): error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) · 2026-03-17 01:03 · PS11 · resolved
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
lustre/lod/lod_qos.c:3310 PS12 Misc Code Checks Robot (Gatekeeper helper): error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) · 2026-03-18 20:16 · PS12 · resolved
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
lustre/lod/lod_qos.c:3306 PS13 Misc Code Checks Robot (Gatekeeper helper): error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) · 2026-03-23 00:54 · PS13 · resolved
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
lustre/lod/lod_qos.c:3333 PS35 Misc Code Checks Robot (Gatekeeper helper): error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) · 2026-05-29 03:50 · PS35 · resolved
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
lustre/lod/lod_qos.c:3315 PS36 Misc Code Checks Robot (Gatekeeper helper): error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) · 2026-06-02 23:46 · PS36 · resolved
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
lustre/lod/lod_qos.c:3315 PS37 Misc Code Checks Robot (Gatekeeper helper): error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) · 2026-06-03 03:03 · PS37 · resolved
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
lustre/lod/lod_qos.c:3315 PS38 Misc Code Checks Robot (Gatekeeper helper): error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) · 2026-06-03 17:58 · PS38 · resolved
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
lustre/lod/lod_qos.c:3333 PS39 Misc Code Checks Robot (Gatekeeper helper): error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) · 2026-06-04 06:11 · PS39 · resolved
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()

Thread · 3 messages

Misc Code Checks Robot (Gatekeeper helper) · 2026-08-05 00:11 · PS53 · resolved
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Ronnie Sahlberg · 2026-08-05 15:28
Acknowledged
Ronnie Sahlberg · 2026-08-05 15:28
Acknowledged

Code at the comment

    3576: 			GOTO(out, rc = -ENOMEM);
    3577: 
    3578: repeat:
    3579: 		lod_getref(&d->lod_ost_descs);
    3580: 		/* XXX: support for non-0 files w/o objects */
>>> 3581: 		CDEBUG(D_OTHER, "tgt_count %d stripe_count %d\n",
    3582: 		       d->lod_ost_count, stripe_len);
    3583: 
    3584: 		if (lod_comp->llc_ostlist.op_array &&
    3585: 		    lod_comp->llc_ostlist.op_count) {
    3586: 			rc = lod_alloc_ost_list(env, lo, stripe, ost_indices,
Comment in Gerrit ↗ 63809-6095869a
Not checked Handle mismatch between on-disk EC layout and new raid-set derivation for existing files Ronnie Sahlberg include/uapi/linux/lustre/lustre_user.h:3171 PS52 high resolved thread +1 repeat
Not checked against the code yet.
“That is fine. This is a new feature so no files exist yet on non-test filesystems.”Ronnie Sahlberg, PS52

Also raised in 1 other thread — both concern handling existing/on-disk EC layouts becoming invalid due to EC layout/raid-set derivation changes

include/uapi/linux/lustre/lustre_user.h:3171 PS44 Gerrit AI review for Lustre: (defect) ec_split_stripes() isn't stored anywhere - the raid-set geometry is recomputed from (stripe_count, dstripe_count) every time, by lo
Gerrit AI review for Lustre · 2026-07-26 03:48 · PS44 · resolved
(defect) ec_split_stripes() isn't stored anywhere - the raid-set geometry is recomputed from (stripe_count, dstripe_count) every time, by lov_io_parity_size_comp() in lov_io.c, by llapi_ec_resync_or_verify_comp() and layout_ec_verify_stripes() in liblustreapi_layout.c, and by the allocator here. Lowering the constant therefore reinterprets layouts that already exist. A 4-data-stripe comp with dstripe_count 2 or 3 goes from one raid set to two. A file created before this change has a parity comp sized for one raid set, but the new code walks two, so the second raid set's parity is written over the first's. layout_ec_verify_stripes() also flips: `--ec 2+3` over 4 data stripes passed the `(esc_n0 + esc_n1) * p > stripe_count` test before (1*3 <= 4) and now fails it (2*3 > 4). Do any pre-existing EC files need to be handled here, or is the feature still considered unstable enough that the reinterpretation is acceptable?
Ronnie Sahlberg · 2026-07-27 05:15
it is unstable enough until the full series has landed

Thread · 2 messages

Gerrit AI review for Lustre · 2026-08-04 09:45 · PS52 · resolved
(defect) Lowering the threshold changes how an existing layout is interpreted, not just how a new one is built. ec_split_stripes(4, 2) old -> n0=1 k0=4 new -> n0=2 k0=2 A file created with `-c 4 --ec 2+1` therefore has one parity stripe on disk, while llapi_ec_resync_or_verify_comp() and lov_io.c now derive two raid sets for it from the same stored stripe counts. Is the mismatch on already-created files handled somewhere, or is EC still considered unstable enough that it doesn't matter?
Ronnie Sahlberg · 2026-08-04 22:10
That is fine. This is a new feature so no files exist yet on non-test filesystems.

Code at the comment

    3166: 
    3167: /*
    3168:  * Arbitrary limit on the minimum size we will attempt to split up into
    3169:  * smaller chunks for ec computation.
    3170:  */
>>> 3171: #define EC_MIN_SPLIT_SIZE 4
    3172: /*
    3173:  * We have data consisting of 'total' stripes. Create a mapping where
    3174:  * we split this into smaller chunks based on what the
    3175:  * suggested / requested hint is.
    3176:  * Try to keep the sizes of the different buckets as equal as possible
Comment in Gerrit ↗ 63809-ba227e7a
Not checked Relax overly stringent stripe-count requirement and add -c -1 EC test coverage for production readiness Andreas Dilger (change-level) PS14 high resolved thread
Not checked against the code yet.

Thread · 1 message

Andreas Dilger · 2026-03-26 19:40 · PS14 · resolved
For this to become production-ready it needs to become less stringent on the stripe count requirement, or I think it could result in EC-enabled filesystems being less available than without EC in some cases. I also don't see *any* test cases in sanity-ec.sh where `-c -1` is used to allocate a widely-striped file/component. The stripe count is always explicitly calculated to leave enough margin for parity stripes, but that isn't how layouts are specified in production.
Comment in Gerrit ↗ 63809-c72d531c
Not checked Track this issue via filed ticket LU-20526 Ronnie Sahlberg lustre/lod/lod_qos.c:2201 PS54 med +1 repeat
Not checked against the code yet.
“LU-20526 tracks this”Ronnie Sahlberg, PS54

Also raised in 1 other thread — both reference tracking the same allocation issue via JIRA ticket LU-20526

lustre/lod/lod_qos.c:2072 PS44 Andreas Dilger: Is there a ticket or patch to address this issue?
Andreas Dilger · 2026-07-24 19:42 · PS44 · resolved
Is there a ticket or patch to address this issue?
Ronnie Sahlberg · 2026-07-27 05:15
https://jira.whamcloud.com/browse/LU-20526

Thread · 3 messages

kg.xu · 2026-08-07 08:42 · PS54
(minor) It would be helpful to include the ticket here, if one exists for this part.
Andreas Dilger · 2026-08-10 19:25
+1, please file a ticket to track this if it doesn't already exist.
Ronnie Sahlberg · 2026-08-10 20:27
LU-20526 tracks this

Code at the comment

    2196: 			CDEBUG(D_OTHER,
    2197: 			       "stripe_count=%d nfound=%d cur_weight=%llu rand=%llu total_weight=%llu\n",
    2198: 			       stripe_count, nfound, cur_weight, rand,
    2199: 			       total_weight);
    2200: 
>>> 2201: 			/* TODO: this check is wrong and can cause the qos
    2202: 			 * allocator to fail.the problem is that we do not
    2203: 			 * compute total_weight and cur_weight the same way
    2204: 			 * when OSTs are offline.
    2205: 			 * Very annoying since if OSTs are offline this will
    2206: 			 * fail, and fallback to rr quite often, making
Comment in Gerrit ↗ 63809-1131eb7d
Not checked Add tests for cross-raidset parity reuse and forced RR allocation path Ronnie Sahlberg lustre/tests/sanity-ec.sh:3189 PS54 med
Not checked against the code yet.
“But they are minor tweaks so lets leave them until after this lands, or if there is a code refresh, and I can bake them into the next set of patches”Ronnie Sahlberg, PS54

Thread · 2 messages

kg.xu · 2026-08-07 08:42 · PS54
(suggestion) test_27d–27f cover same-raidset uniqueness for -C, but the -c path is different: parity may reuse data OSTs from other raidsets via lod_ec_add_parities(). Worth a case that creates a multi-raidset layout with -c (e.g. -c 8 --ec 4+2 on enough OSTs) and checks that no OST is shared between data and parity within the same raidset, while allowing cross-raidset reuse. (suggestion) Most of these paths are hit through QoS first; RR is only the -EAGAIN fallback. Consider one create with lod.*.qos_threshold_rr=100 (restored via stack_trap) so allocation is forced through lod_ost_alloc_rr(), reusing an existing check such as 27c or a -C same-raidset uniqueness check. That would catch RR-only completion / overstriping-flag issues that QoS may not show. -- from my AI reviewer
Ronnie Sahlberg · 2026-08-10 06:10
Good suggestions. But they are minor tweaks so lets leave them until after this lands, or if there is a code refresh, and I can bake them into the next set of patches (which will likely be the failure domain stuff which is in limbo and needs to be rebased on this once it lands.)

Code at the comment

    3184: 	fi
    3185: 
    3186: 	return 0
    3187: }
    3188: 
>>> 3189: test_27d() {
    3190: 	(( OSTCOUNT >= 6 )) || skip "needs >= 6 OSTs"
    3191: 	enable_ec
    3192: 
    3193: 	local tf=$DIR/$tfile
    3194: 
Comment in Gerrit ↗ 63809-1dca7dfd
Not checked Check available OST count in RR case before returning error Ronnie Sahlberg lustre/lod/lod_qos.c:409 PS44 med resolved thread
Not checked against the code yet.
“Acknowledged”Ronnie Sahlberg, PS44

Thread · 2 messages

Andreas Dilger · 2026-07-24 19:42 · PS44 · resolved
If it isn't clear if the number of available OSTs is enough in the RR case, then this should be checked rather than just returning an error for the allocation.
Ronnie Sahlberg · 2026-07-29 08:14
Acknowledged

Code at the comment

     404:  * IF we are computing the minimum stripe count for the data component
     405:  * and we are using the qos allocator we can include the cstripe count
     406:  * in the minimum and allow it to fail early if there are not enough
     407:  * OSTs available for both the data component and the ec component.
     408:  * For the RR allocator we do not have the initial loop to count the
>>>  409:  * total number of available OSTs so we can not do this optimization.
     410:  *
     411:  * Return: an acceptable stripe count depending on flag LOD_USES_DEFAULT_STRIPE:
     412:  *	   all stripes or 3/4 of stripes.  The code is written this way to avoid
     413:  *	   returning 0 for stripe_count < 4, like "stripe_count * 3 / 4" would
     414:  */
Comment in Gerrit ↗ 63809-e9b7763c
Not checked Clarify/fix minimum stripe count logic for overstriped vs widely-striped files Andreas Dilger lustre/lod/lod_qos.c:430 PS33 med resolved thread
Not checked against the code yet.
“Yeah, it isn't clear to me why the bear would be specific to overstriped files vs. widely-striped regular files”Andreas Dilger, PS33

Thread · 3 messages

Andreas Dilger · 2026-05-22 21:50 · PS33 · resolved
This seems like it would calculate a large minimum stripe count, essentially covering all of the data and EC stripes for the whole file instead of allowing overlapping data and parity stripes. So if the requested data stripe count (before splitting into RAID sets) uses all of the OSTs then the EC stripes would push it over the top and cause the file allocation to fail. Is there a reason not to have the same `esc_n0 + esc_n1 == 1 ? cstripe_count : 0` check as above?
Ronnie Sahlberg · 2026-06-02 23:48
The idea was that if we are not using overstriping then we would use a unique OST for each stripe in the whole stripe set but if overstriping is allowed then we only require unique OSTs within each raid set. Thus leading to sometimes requiring very many OSTs. Maybe that is not all that useful so I have changed it now to only require unique OSTs within raidsets regardless of overstriping setting. From patchset 36.
Andreas Dilger · 2026-06-03 07:00
Yeah, it isn't clear to me why the bear would be specific to overstriped files vs. widely-striped regular files

Code at the comment

     425: 			return stripe_count + maybe_cstripe;
     426: 
     427: 		if (lod_comp->llc_pattern & LOV_PATTERN_OVERSTRIPING)
     428: 			return sc->esc_k0 + maybe_cstripe;
     429: 		else
>>>  430: 			return sc->esc_k0 * sc->esc_n0 +
     431: 			  sc->esc_k1 * sc->esc_n1;
     432: 	}
     433: 
     434: 	return (flags & LOD_USES_DEFAULT_STRIPE ?
     435: 		stripe_count - (stripe_count / 4) : stripe_count);
Comment in Gerrit ↗ 63809-b509b3cf
Not checked Renumber new tests to avoid collision with tests already added by LU-12668 series Patrick Farrell (change-level) PS29 med
Not checked against the code yet.

Thread · 1 message

Patrick Farrell · 2026-05-05 19:13 · PS29
The new tests test_26a, test_26b, test_27a, test_30a, test_30b, test_30c in this change collide with same-numbered tests already introduced earlier in the series by 62417 (LU-12668 ec: basic ec tests). Could you renumber these in this patch into a non-overlapping range (28a, 29a, 31a are taken by 62417, so 28b/c, 29b, 31b/c/d would work)?
Change in Gerrit ↗ 63809-msg-87393e02b527f100b65cefcb8e20ae56c7c46ecd
Not checked Add exception list or self-skip in sanity.sh test_27D for insufficient OSTs Andreas Dilger (change-level) PS6 med resolved thread
Not checked against the code yet.

Thread · 1 message

Andreas Dilger · 2026-02-18 00:37 · PS6 · resolved
This needs to add an exception list in `sanity.sh::test_27D()` when there are fewer OSTs than required by the tests... or have the test cases skip themselves if there aren't enough OSTs.
Comment in Gerrit ↗ 63809-0753db71
Not checked Clarify/verify whether while loop is needed given nfound may be smaller than stripe_count kg.xu lustre/lod/lod_qos.c:944 PS54 low
Not checked against the code yet.

Thread · 1 message

kg.xu · 2026-08-07 08:42 · PS54
(question) if `nfound` is the target value, do we really need the above while loop? It could produce a smaller `stripe_count` compared with `nfound` though. But still, seems `nfound` is good enough.

Code at the comment

     939: 			sc->esc_n1 = 0;
     940: 		}
     941: 		stripe_count--;
     942: 	}
     943: 
>>>  944: 	if (stripe_count > nfound) {
     945: 		/* Resplit from scratch around the OST count we actually have */
     946: 		stripe_count = nfound;
     947: 		ec_split_stripes(stripe_count, suggested, sc);
     948: 	}
     949: 
Comment in Gerrit ↗ 63809-b0ba6344
Not checked Move parameter to previous line if code is refreshed later kg.xu lustre/lod/lod_qos.c:1221 PS54 low
Not checked against the code yet.
“could move this parameter up to the previous line (if there's code refresh).”kg.xu, PS54

Thread · 1 message

kg.xu · 2026-08-07 08:42 · PS54
(typo) could move this parameter up to the previous line (if there's code refresh).

Code at the comment

    1216: 		if (!(lod_comp->llc_flags & LCME_FL_PARITY) &&
    1217: 		    (ec_raidset_count(sc) > 1) &&
    1218: 		    stripe_idx >= stripe_count_min) {
    1219: 			if (want_overstriping) {
    1220: 				stripe_idx = lod_ec_add_data(env, lo,
>>> 1221: 							     th,
    1222: 							     stripe_idx,
    1223: 							     lod_comp,
    1224: 							     stripe,
    1225: 							     ost_indices);
    1226: 			} else {
Comment in Gerrit ↗ 63809-6ec36747
Not checked Fix incorrect comment describing raidset conversion behaviour Ronnie Sahlberg lustre/lod/lod_qos.c:1181 PS53 low resolved thread
Not checked against the code yet.
“Acknowledged”Ronnie Sahlberg, PS53

Thread · 3 messages

Gerrit AI review for Lustre · 2026-08-05 12:42 · PS53 · resolved
(minor) This describes converting esc_k0 raidsets into esc_k1, but lod_ec_shrink_data_geometry() calls ec_split_stripes(nfound, dstripe, sc), which recomputes the split from scratch and generally changes the number of raid sets rather than their width - `-c 24 --ec 6+2` shrunk to 18 becomes 3x6, not 4x5/4/4/... The same wording is repeated on the QoS side around line 2312.
Ronnie Sahlberg · 2026-08-05 15:28
Acknowledged
Ronnie Sahlberg · 2026-08-05 15:28
Acknowledged

Code at the comment

    1176: 							 stripe, ost_indices);
    1177: 		/*
    1178: 		 * EC-protected data component is short of unique OSTs.
    1179: 		 * With overstriping (-C) reuse OSTs from earlier raid
    1180: 		 * sets. Without it (-c), shrink the EC geometry by
>>> 1181: 		 * converting esc_k0 raidsets into esc_k1 until the
    1182: 		 * allocated OST count is enough — prefer a smaller
    1183: 		 * layout over failing create when OSTs are offline.
    1184: 		 */
    1185: 		if (!(lod_comp->llc_flags & LCME_FL_PARITY) &&
    1186: 		    (ec_raidset_count(sc) > 1) &&
Comment in Gerrit ↗ 63809-bb386b2f
Not checked Fix misleading error message about parity vs EC-protected data component Ronnie Sahlberg lustre/lod/lod_qos.c:668 PS44 low resolved thread
Not checked against the code yet.
“Acknowledged”Ronnie Sahlberg, PS44

Thread · 2 messages

Zhenyu Xu · 2026-07-17 06:26 · PS44 · resolved
I don't get this, the message implies that this is a parity component trying to be allocated on OST[ost_idx], but an ec protected data component also has non-zero lod_comp->llc_cstripe_count.
Ronnie Sahlberg · 2026-07-27 05:15
Acknowledged

Code at the comment

     663: 	if (ost->ltd_statfs.os_state & OS_STATFS_DEGRADED && speed < 2) {
     664: 		CDEBUG(D_OTHER, "#%d: degraded\n", ost_idx);
     665: 		RETURN(rc);
     666: 	}
     667: 
>>>  668: 	if (lod_comp->llc_cstripe_count &&
     669: 	    (lag->lag_ost_avail <= 0 ||
     670: 	     lod_should_avoid_ost(lo, lag, ost_idx))) {
     671: 		CDEBUG(D_OTHER,
     672: 		       "Skip conflicting OST%d because we want unique OSTs for EC\n",
     673: 		       ost_idx);
Comment in Gerrit ↗ 63809-d08da1ec
Not checked Remove dead code later in the patch series Marc Vef lustre/lod/lod_qos.c:1826 PS43 low resolved thread
Not checked against the code yet.
“Looks like it, and won't be used by the end of the series.”Marc Vef, PS43

Thread · 2 messages

kg.xu · 2026-07-15 08:01 · PS43 · resolved
dead code?
Marc Vef · 2026-07-15 17:29
Looks like it, and won't be used by the end of the series.

Code at the comment

    1821:  * i: data stripe index
    1822:  *
    1823:  * This function covnerts a data stripe index into which raid set
    1824:  * it belongs to.
    1825:  */
>>> 1826: static inline int sc_idx_to_raidset(struct ec_split_comp *sc, int i)
    1827: {
    1828: 	int total = (sc->esc_n0 * sc->esc_k0) + (sc->esc_n1 * sc->esc_k1);
    1829: 
    1830: 	if (!total)
    1831: 		return 0;
Comment in Gerrit ↗ 63809-e880dc04

Judged not a promise — spot-check them here.

(change-level) Build vote comment Charlie Olmstead · resolved Gerrit ↗
(change-level) Thanks note Ronnie Sahlberg · resolved Gerrit ↗
(change-level) Status update on OST count relaxation implementation Ronnie Sahlberg · resolved Gerrit ↗
(change-level) Vote note Ronnie Sahlberg · resolved Gerrit ↗
(change-level) Fix parity stripe allocation bug in lod_ost_alloc_rr with multiple raidsets Patrick Farrell · resolved Gerrit ↗
(change-level) Test failure report (ENOSPC) chatter Andreas Dilger · resolved Gerrit ↗
(change-level) Test failure report chatter Andreas Dilger · resolved Gerrit ↗
(change-level) Janitor test failure report chatter Marc Vef · resolved Gerrit ↗
(change-level) Rebase note Marc Vef · resolved Gerrit ↗
(change-level) Test failure report chatter Marc Vef · resolved Gerrit ↗
(change-level) Changelog note Marc Vef · resolved Gerrit ↗
(change-level) Regression test chatter Marc Vef · resolved Gerrit ↗
(change-level) Request to address remaining review comments Marc Vef · resolved Gerrit ↗
(change-level) Build vote comment Marc Vef · resolved Gerrit ↗
(change-level) Non-blocking comments note kg.xu · resolved Gerrit ↗
(change-level) Approval comment Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:2231 Explained indentation is fine after single if-block simplification wc-checkpatch Gerrit ↗
lustre/lod/lod_qos.c:2240 Missing space after colon typo in log format string Gerrit AI review for Lustre Gerrit ↗
lustre/lod/lod_qos.c:2241 Style nit on typecast spacing/format specifier Andreas Dilger Gerrit ↗
COMMIT_MSG:7 Explain EC_MIN_SPLIT_SIZE change in commit message Marc Vef · resolved Gerrit ↗
COMMIT_MSG:9 Document renamed function and test cleanup removal in commit message Gerrit AI review for Lustre · resolved Gerrit ↗
COMMIT_MSG:15 Clarify which allocator/components the tweak-down applies to Gerrit AI review for Lustre · resolved Gerrit ↗
COMMIT_MSG:20 Describe additional diff changes in commit message or split out Gerrit AI review for Lustre · resolved Gerrit ↗
COMMIT_MSG:21 Describe sanity-ec.sh exception-list changes in commit message Gerrit AI review for Lustre · resolved Gerrit ↗
COMMIT_MSG:24 Describe EC_MIN_SPLIT_SIZE and stack_trap removal in commit message Gerrit AI review for Lustre · resolved Gerrit ↗
COMMIT_MSG:24 Restore commit message paragraph describing EC_MIN_SPLIT_SIZE change Gerrit AI review for Lustre · resolved Gerrit ↗
COMMIT_MSG:28 Fix typo testlist=sanity-ec Marc Vef · resolved Gerrit ↗
COMMIT_MSG:28 Fix sanity/27D layout test 59 failure on low-OST configs Marc Vef · resolved Gerrit ↗
COMMIT_MSG:32 Fix testlist typo Marc Vef · resolved Gerrit ↗
Documentation/ec.txt:2 Remove ec.txt due to conflict with separate patch Andreas Dilger · resolved Gerrit ↗
Documentation/ec.txt:9 Fix invalid lfs mirror setstripe command in docs Andreas Dilger · resolved Gerrit ↗
Documentation/ec.txt:11 Fix lfs getstripe wording in docs Andreas Dilger · resolved Gerrit ↗
Documentation/ec.txt:52 Make raid set terminology consistent in docs Andreas Dilger · resolved Gerrit ↗
Documentation/ec.txt:108 Document geometry-tweaking behaviour for allocation shortfalls Andreas Dilger · resolved Gerrit ↗
Documentation/ec.txt:114 Fix doc wording nit Andreas Dilger · resolved Gerrit ↗
Documentation/ec.txt:163 Add brief explanation to docs Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:390 Fix doc wording nit Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:402 Allow smaller OST availability threshold in QOS allocator Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:404 Fix repeated word style issue wc-checkpatch · resolved Gerrit ↗
lustre/lod/lod_qos.c:404 Add available-OST check before failing allocation Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:407 Reduce data stripe count instead of failing allocation in RR case Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:409 Style line-fit nit Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:411 Fix kerneldoc mismatches for lod_ost_alloc_rr Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:418 Fix typo 'an EC components' Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:424 Style comment formatting nit Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:426 Remove unnecessary else after return Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:438 Remove unnecessary blank line Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:438 Fix example to match documented branch Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:439 Loosen overly strict minimum stripe count limitation Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:645 Fix quoted string split across lines (style) wc-checkpatch · resolved Gerrit ↗
lustre/lod/lod_qos.c:662 Avoid unnecessary line continuation in error string wc-checkpatch · resolved Gerrit ↗
lustre/lod/lod_qos.c:669 Fix unsigned wraparound in lag_ost_avail comparison Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:684 Run avoidance prep before -EAGAIN fallback paths Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:684 Fix avoidance counter budget logic mismatch between QOS and RR Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:685 Fix lag_ost_avail <= 0 vs == 0 comparison Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:734 Rename lod_ec_add_parities function and fix typo kg.xu · resolved Gerrit ↗
lustre/lod/lod_qos.c:739 Style nit on line fit, acknowledged Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:744 Style nit on line fit, acknowledged Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:759 Fixed bound to use llc_stripe_count instead of llc_stripes_allocated Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:761 Fixed pos cycling bound to llc_stripe_count Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:811 Fixed typo 'conflicts' kg.xu · resolved Gerrit ↗
lustre/lod/lod_qos.c:816 Renamed variable to parity_comp kg.xu · resolved Gerrit ↗
lustre/lod/lod_qos.c:839 Fixed comment about parity_comp param and overstriped wording Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:853 Confirmed loop bounds correct, fixed elsewhere kg.xu · resolved Gerrit ↗
lustre/lod/lod_qos.c:864 Fixed 'data comp' wording kg.xu · resolved Gerrit ↗
lustre/lod/lod_qos.c:874 Renamed lod_comp and function per suggestion kg.xu · resolved Gerrit ↗
lustre/lod/lod_qos.c:920 Reworked raid-set shrink logic to use ec_split_stripes Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:924 Fixed stray trailing slash typo Marc Vef · resolved Gerrit ↗
lustre/lod/lod_qos.c:965 Fixed missing 75% relaxation counterpart for rr fallback path Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:1087 Added helper/local var for raidset count readability kg.xu · resolved Gerrit ↗
lustre/lod/lod_qos.c:1090 Fixed out: label reached by early error gotos masking rc Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:1091 Fixed out: label success-masking on early error paths Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:1094 Clarified confusing overstriping/-C wording kg.xu · resolved Gerrit ↗
lustre/lod/lod_qos.c:1107 Implemented raidset conversion to handle offline OSTs gracefully Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:1108 Fixed missing stripe_count_min check causing duplicate OSTs in raid set Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:1122 Fixed stripe_count_min returning 0 for multi-raidset parity allowing short allocation Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:1136 Fixed divide-by-zero when llc_dstripe_count is 0 in ec_split_stripes Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:1161 Fixed overstriped flag not set when lod_ec_add_data duplicates OST Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:1217 Fixed stripe_count store when stripe_idx==0 on failed pass Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:1221 Fixed -EINPROGRESS overwriting -ENOSPC for EC comps Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:1240 Fixed stripe_count_min==0 guard never firing for multi-raidset parity Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:1969 Fixed stray trailing slash Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:1977 Fixed extra tab indentation Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:2004 Typo in total_weight, acknowledged Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:2006 Declined to fix QoS issue, explained as harmless/long-standing Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:2035 Kept quoted string split for consistency with file style wc-checkpatch · resolved Gerrit ↗
lustre/lod/lod_qos.c:2101 Fixed missing per-raidset uniqueness check for parity comp Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:2104 Combined if conditions Andreas Dilger · resolved Gerrit ↗
lustre/lod/lod_qos.c:2128 Fixed cstripe_count margin applied incorrectly for multi-raidset parity Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:2148 Fixed premature commit of rescaled stripe_count before allocation success Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:2160 Fixed stale comment about always allocating full stripeset Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:2162 Fixed stripe_count check to be gated on cstripe_count for non-EC comps Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:2165 Fixed nfound<stripe_count regression affecting non-EC allocations Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:2185 Fixed missing space typo in error message Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:2240 Fixed missing raid-set boundary check for overstriped EC QoS path Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:3226 Fixed mirror_link_id validity check Zhenyu Xu · resolved Gerrit ↗
lustre/lod/lod_qos.c:3230 Fixed faulty comparison using llc_mirror_link_id Zhenyu Xu · resolved Gerrit ↗
lustre/lod/lod_qos.c:3353 Preserve EA-size clamp for EC components Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:3368 Return correct EA size limit/error code for overstriping-false EC path Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:3376 Handle 'd' possibly NULL in lod_comp_prep_create() Misc Code Checks Robot (Gatekeeper helper) · resolved Gerrit ↗
lustre/lod/lod_qos.c:3377 Fix possible ERR_PTR dereference of 'd' Misc Code Checks Robot (Gatekeeper helper) · resolved Gerrit ↗
lustre/lod/lod_qos.c:3377 Fix possible ERR_PTR dereference of 'd' Misc Code Checks Robot (Gatekeeper helper) · resolved Gerrit ↗
lustre/lod/lod_qos.c:3377 Fix possible ERR_PTR dereference of 'd' Misc Code Checks Robot (Gatekeeper helper) · resolved Gerrit ↗
lustre/lod/lod_qos.c:3381 Robot false-positive on ERR_PTR dereference Misc Code Checks Robot (Gatekeeper helper) · resolved Gerrit ↗
lustre/lod/lod_qos.c:3382 Handle 'd' possibly NULL Misc Code Checks Robot (Gatekeeper helper) · resolved Gerrit ↗
lustre/lod/lod_qos.c:3386 Robot false-positive on ERR_PTR dereference Misc Code Checks Robot (Gatekeeper helper) · resolved Gerrit ↗
lustre/lod/lod_qos.c:3386 Robot false-positive on ERR_PTR dereference Misc Code Checks Robot (Gatekeeper helper) · resolved Gerrit ↗
lustre/lod/lod_qos.c:3389 Robot false-positive on ERR_PTR dereference Misc Code Checks Robot (Gatekeeper helper) · resolved Gerrit ↗
lustre/lod/lod_qos.c:3433 Remove unreachable ERR_PTR check on lu2lod_dev() result Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/lod/lod_qos.c:3598 Fix wrong function name in comment Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:112 Remove unused EC_MINSTRIPE variable Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:201 Add OSTCOUNT skip check Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:205 Add global EC configuration variables for tests Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:231 Add OSTCOUNT skip check for later tests Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:319 Fix OSTCOUNT check Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:357 Fix OSTCOUNT check Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:384 Use bare OSTCOUNT name inside (( )) consistently Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:391 Fix stale comment lines about old geometry Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:407 Fix EC(4+2) comment mismatch Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:452 Fix OSTCOUNT check Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:483 Fix OSTCOUNT check Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:655 Use skip_env instead of skip for OSTCOUNT precondition Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:2658 Use preferred OSTCOUNT skip style Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:2663 Use bash arithmetic and local var naming conventions Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:2678 Address style comment Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:2688 Use (( )) || style Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:2694 Use $((...)) for arithmetic Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:2709 Address style comment Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:2739 Declare local named variables for function args Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:2740 Use local + $(...) style for dosts Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:2741 Use local + $(...) style for costs Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:2742 Use bash associative array for OST dedup Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:2743 Use (( )) for numeric comparison Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:2756 Use (( )) and check||action style Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:2779 Use (( )) || style Andreas Dilger · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:3195 Fix --ec 5+2 vs 4+2 typo Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:3229 Fix raidset range drift in test comments Gerrit AI review for Lustre · resolved Gerrit ↗
lustre/tests/sanity-ec.sh:3285 Fix backwards 'failed' wording and stale comment in error test Gerrit AI review for Lustre · resolved Gerrit ↗
(change-level) RISC-V client builder CI failure report Abdul Halim Gerrit ↗

Verdicts are AI output, checked against the commits they cite — verify before acting on one.