Gerrit Promises / 63809
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
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()
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Thread · 3 messages
error: lod_comp_prep_create():'d' dereferencing possible ERR_PTR()
Acknowledged
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
(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?
it is unstable enough until the full series has landed
Thread · 2 messages
(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?
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
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?
Is there a ticket or patch to address this issue?
https://jira.whamcloud.com/browse/LU-20526
Thread · 3 messages
(minor) It would be helpful to include the ticket here, if one exists for this part.
+1, please file a ticket to track this if it doesn't already exist.
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
(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
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
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.
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
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?
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.
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
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
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
(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
(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
(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.
Acknowledged
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
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.
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
dead code?
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.