Gerrit Review Dashboard

Patrick Farrell · review.whamcloud.com
updated 2026-08-19 22:01:55 UTC
6
needs action
169
longstanding
1
in CI
8
ready to land

Needs your action

6 new · 169 longstanding
64086 master J !B ✓T ✗2R 0/2−
LU-12668 lov: handle ESHUTDOWN for LSEEK on EC files
mine enforced failed: review-dne-zfs-part-2, review-dne-zfs-part-5
ec2 pt_ecro 16 unresolved S +46 −0
36m
enforced failed: review-dne-zfs-part-2, review-dne-zfs-part-5
Marc Vef voted -1
16 unresolved thread(s) await your reply — last from Andreas Dilger
janitor run: 5 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-2 retesting RHEL 10.1 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-dne-zfs-part-5 failed 2× crashed RHEL 9.7 / x86_64 ran 5 tests. 1 tests failed: sanityn. %% THIS TEST SESSION CRASHED %% session
build #129692 SUCCESS · tests all Maloo sessions
reviews: Marc Vef -1 2026-08-19 20:04
no vote yet: Zhenyu Xu
patchsets:
+39 earlier PS1 02-17 PS2 03-29 PS3 03-29 PS4 03-29 PS5 03-29 Ronnie Sahlberg PS6 03-30 Ronnie Sahlberg PS7 03-31 Ronnie Sahlberg PS8 03-31 PS9 03-31 Ronnie Sahlberg PS10 04-01 Ronnie Sahlberg PS11 04-01 Ronnie Sahlberg PS12 04-07 Ronnie Sahlberg PS13 04-08 PS14 04-09 PS15 04-09 PS16 04-09 PS17 04-09 PS18 04-09 PS19 04-09 PS20 04-09 PS21 04-09 PS22 04-10 PS23 04-10 PS24 04-10 PS25 04-10 PS26 04-10 PS27 04-14 PS28 04-14 PS29 04-14 PS30 04-15 PS31 04-15 PS32 04-15 PS33 04-25 PS34 05-20 Marc Vef PS35 06-04 Ronnie Sahlberg PS36 07-13 Marc Vef PS37 07-13 Marc Vef PS38 07-13 Marc Vef PS39 07-15 Marc Vef
PS40 07-16 Marc Vef PS41 07-26 Marc Vef PS42 07-26 Marc Vef PS43 08-17 Marc Vef PS44 08-19 Maximilian Dilger
threads: 16 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS34 2026-05-28 21:25 Andreas Dilger COMMIT_MSG:30 — Going forward, all of these lines should be replaced with a label:
Andreas Dilger PS34 · 2026-05-28 21:25
Going forward, all of these lines should be replaced with a label:

 Assisted-by: ClaudeCode:MODEL_VERSION [TOOLNAME ...]

https://wiki.lustre.org/Commit_Comments#AI/LLM/Tool_Attribution
reply PS34 2026-05-28 21:25 Andreas Dilger COMMIT_MSG:32 — Probably it was generated initially via AI, and nobody removed that designation as the patch was being updated?
Marc Vef PS34 · 2026-05-21 08:30
Why is this for `fortestonly`? Should this be consolidated with another patch, or that annotation be removed?
Andreas Dilger PS34 · 2026-05-28 21:25
Probably it was generated initially via AI, and nobody removed that designation as the patch was being updated?
reply PS40 2026-07-26 03:48 Gerrit AI review for Lustre COMMIT_MSG:20 — (typo) The third path is `lov_io_lseek_end()`, which is the `.cio_end` entry in `lov_io_ops[CIT_LSEEK]` and runs from `cl_io_end()`, not fro
Gerrit AI review for Lustre PS40 · 2026-07-26 03:48
(typo) The third path is `lov_io_lseek_end()`, which is the `.cio_end` entry in `lov_io_ops[CIT_LSEEK]` and runs from `cl_io_end()`, not from unlock. `lov_io_unlock()` is a separate op. Should this read "during sub-IO end"?
reply PS40 2026-07-16 16:24 Marc Vef COMMIT_MSG:30 — [Marc Bot] (style) This attribution line was flagged on patchset 34 and is still unresolved: it should use the `Assisted-by:` label format d
Marc Vef PS40 · 2026-07-16 16:24
[Marc Bot] (style) This attribution line was flagged on patchset 34 and is still unresolved: it should use the `Assisted-by:` label format described at https://wiki.lustre.org/Commit_Comments#AI/LLM/Tool_Attribution instead of the free-form line.
reply PS42 2026-07-27 22:31 Gerrit AI review for Lustre COMMIT_MSG:20 — "three independent paths" does not seem to hold for the third one.
Gerrit AI review for Lustre PS42 · 2026-07-27 22:31
"three independent paths" does not seem to hold for the third one.

The LSEEK sub-lock enqueue happens in cl_lockset_lock(), which cl_io_lock() runs *after* every cio_lock(), so the stripe is already marked by the time lov_io_call(cl_io_start) runs and the sub-IO is skipped there. A sub-IO that never started still has:

    sub_io->ci_result = 0            /* lov_io_sub_init() */
    sub_io->u.ci_lseek.ls_result = -ENXIO   /* inherited from the parent in lov_io_sub_inherit(); ll_lseek() seeds it */

lov_io_lseek_end() already ignores both (`ci_result == 0` is a no-op, `sub_off == -ENXIO` hits the existing continue), so there is nothing for the third hunk to catch.

Also, ci_result propagation happens in .cio_end (lov_io_lseek_end), not during unlock.
reply PS42 2026-07-27 22:31 Gerrit AI review for Lustre COMMIT_MSG:30 — (style) This was raised on an earlier patchset and the line is unchanged: tool attribution should use the `Assisted-by:` trailer format docu
Gerrit AI review for Lustre PS42 · 2026-07-27 22:31
(style) This was raised on an earlier patchset and the line is unchanged: tool attribution should use the `Assisted-by:` trailer format documented at https://wiki.lustre.org/Commit_Comments#AI/LLM/Tool_Attribution rather than a free-form sentence.
reply PS40 2026-07-26 03:48 Gerrit AI review for Lustre lov_io.c:1768 — This guard sits in `lov_io_call()`, which is the shared dispatcher for four different ops:
Gerrit AI review for Lustre PS40 · 2026-07-26 03:48
This guard sits in `lov_io_call()`, which is the shared dispatcher for four different ops:

    lov_io_lock()      -> lov_io_call(cl_io_lock)
    lov_io_start()     -> lov_io_call(cl_io_start)
    lov_io_iter_fini() -> lov_io_call(lov_io_iter_fini_wrapper)
    lov_io_unlock()    -> lov_io_call(lov_io_unlock_wrapper)

All four are registered for CIT_LSEEK, so a stripe marked LSS_READ_ERR also skips `cl_io_unlock()` and `cl_io_iter_fini()` on its sub-IO, not just `cl_io_start()`. Its `ci_state` then goes CIS_LOCKED -> CIS_IO_FINISHED (set by `lov_io_end_wrapper()` in `lov_io_lseek_end()`) -> CIS_FINI, never passing through CIS_UNLOCKED/CIS_IT_ENDED.

Nothing leaks today because `osc_io_ops[CIT_LSEEK]` registers only cio_start/cio_end/cio_fini and the LSEEK DLM lock is taken on the top IO by `vvp_io_lseek_lock()`. But the intent is only to skip the data-fetch pass -- would putting the check in `lov_io_start()` (or keying it on `iofunc == cl_io_start`) keep the cleanup passes balanced?
reply PS40 2026-07-26 03:48 Gerrit AI review for Lustre lov_io.c:1770 — (style) This isn't a bug, but `str` reads like a string; the rest of this file spells it `stripe` (see `lov_io_lseek_end()` a few hundred li
Gerrit AI review for Lustre PS40 · 2026-07-26 03:48
(style) This isn't a bug, but `str` reads like a string; the rest of this file spells it `stripe` (see `lov_io_lseek_end()` a few hundred lines down, which uses `index`/`stripe` for the same two values). Worth matching if the patch is refreshed.
reply PS40 2026-07-16 16:24 Marc Vef lov_io.c:3540 — [Marc Bot] (defect) Skipping the stripe treats its extents as holes, but on an EC file that data is still readable via parity reconstruction
Marc Vef PS40 · 2026-07-16 16:24
[Marc Bot] (defect) Skipping the stripe treats its extents as holes, but on an EC file that data is still readable via parity reconstruction. If the only data between ls_start and the next healthy-stripe data lives on the degraded stripe, SEEK_DATA returns the later offset, or -ENXIO if none, so sparse-aware tools (cp, tar) silently drop data that read() would return.

Also, if every sub-IO in lis_active is skipped (e.g. single-stripe data component), offset stays -ENXIO and SEEK_HOLE fails with -ENXIO even though ls_start < file size, which breaks the SEEK_HOLE contract of a virtual hole at EOF.

Would it be safer to treat a degraded stripe's covered range as data instead of skipping it, or to return an error rather than a misleading data map? The commit message claim that the remaining healthy stripes provide valid seek results does not hold in these cases.
reply PS42 2026-07-29 03:29 kg.xu lov_io.c:1774 — +1; error should be preferable compared with a wrong offset
Gerrit AI review for Lustre PS42 · 2026-07-27 22:31
(defect) Skipping cl_io_start() for the degraded stripe means its allocation map never contributes to the seek result, and lseek does not reconstruct anything from parity the way CIT_EC_RD does. So the answer is not "the remaining healthy stripes are sufficient" -- it is an answer computed from an incomplete extent map.

Concrete case, 4+2 EC, one data OST deactivated, data written only in the range that maps to that stripe:

    lseek(fd, 0, SEEK_DATA)
      -> degraded sub skipped, others report -ENXIO
      -> offset stays -ENXIO, lseek fails

and with data further out on a healthy stripe it returns that later offset instead. Sparse-aware copies (cp --sparse, tar, rsync) would silently drop the bytes that a plain read() still returns via parity.

SEEK_HOLE has the mirror problem: if every sub-IO covering ls_start is skipped, `offset` stays -ENXIO and ll_lseek() returns -ENXIO for an offset below i_size, which breaks the "there is always a virtual hole at EOF" contract.

Is returning an error preferable to returning a wrong offset here? Alternatively, could the degraded stripe's range be reported as data (conservative) rather than dropped?
kg.xu PS42 · 2026-07-29 03:29
+1; error should be preferable compared with a wrong offset
reply PS42 2026-07-27 22:31 Gerrit AI review for Lustre lov_io.c:3538 — (typo) This comment uses a non-ASCII em dash; the rest of the tree is plain ASCII. Plain "-" or "--" instead.
Gerrit AI review for Lustre PS42 · 2026-07-27 22:31
(typo) This comment uses a non-ASCII em dash; the rest of the tree is plain ASCII. Plain "-" or "--" instead.
reply PS42 2026-07-27 22:31 Gerrit AI review for Lustre lov_io.c:3542 — This hunk looks like it has no effect. Any stripe marked LSS_READ_ERR was already skipped by the new check in lov_io_call(), so its sub-IO n
Gerrit AI review for Lustre PS42 · 2026-07-27 22:31
This hunk looks like it has no effect. Any stripe marked LSS_READ_ERR was already skipped by the new check in lov_io_call(), so its sub-IO never reached cl_io_start(): ci_result is still 0 from lov_io_sub_init(), and ls_result is still the -ENXIO that lov_io_sub_inherit() copied from the parent. The `if (io->ci_result == 0)` assignment and the `sub_off == -ENXIO` continue below both already handle that.

Is there a path where a sub-IO is marked LSS_READ_ERR but still ran? If not, dropping this hunk would keep the two skip conditions from having to stay in sync.
tags: pt_ecro
owner Patrick Farrell · uploader Maximilian Dilger · PS44 uploaded 19h ago · NEW · open in Gerrit ↗
commit message
LU-12668 lov: handle ESHUTDOWN for LSEEK on EC files

When an OST hosting a data stripe of an EC file is
deactivated, SEEK_DATA/SEEK_HOLE fails with ESHUTDOWN
because the error propagates through the LOV layer
during sub-lock enqueue.

Fix this by marking the degraded stripe LSS_READ_ERR
in lov_lock_enqueue (same mechanism used by CIT_EC_RD
for parity recovery), then skipping those stripes in
lov_io_call and lov_io_lseek_end.  This avoids
ESHUTDOWN leaking through three independent paths:
sub-lock enqueue, sub-IO function dispatch, and
sub-IO ci_result propagation during unlock.

Add lov_lsm_has_parity() helper to check if any
layout entry has parity, needed because CIT_LSEEK
locks the data component while parity lives in a
separate entry.

This fixes lfs mirror verify failing on EC files
when any data OST is deactivated.

Generated with Claude Code + Tools

Test-Parameters: testlist=sanity-ec
Test-Parameters: testlist=sanity-ec fstype=zfs
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I5cce4e0ea51c68b0c6fda1d83b694af19cad57bd
65219 master J !B ✓T ↻R 1/2
LU-12669 llite: make AIO reads on EC file synchronous
mine 2 unresolved thread(s) await your reply — last from Marc Vef
pt_ecro 2 unresolved S +37 −11
1h
2 unresolved thread(s) await your reply — last from Marc Vef
review-ldiskfs-ubuntu failed — auto-retest in flight (often self-heals)
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-ubuntu retesting RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity-lnet. session
build #129691 SUCCESS · tests all Maloo sessions
reviews: Marc Vef +1 2026-08-19 20:04
no vote yet: Zhenyu Xu
patchsets:
+25 earlier PS1 04-10 PS2 04-10 PS3 04-10 PS4 04-10 PS5 04-10 PS6 04-15 PS7 04-15 PS8 04-25 PS9 04-29 PS10 04-29 PS11 04-29 PS12 04-29 PS13 05-05 PS14 05-05 PS15 05-05 PS16 05-06 Ronnie Sahlberg PS17 05-20 Marc Vef PS18 06-04 Ronnie Sahlberg PS19 07-13 Marc Vef PS20 07-13 Marc Vef PS21 07-13 Marc Vef PS22 07-15 Marc Vef PS23 07-26 Marc Vef PS24 07-26 Marc Vef PS25 08-17 Marc Vef
PS26 08-17 Marc Vef PS27 08-17 Marc Vef PS28 08-17 Marc Vef PS29 08-17 Marc Vef PS30 08-19 Maximilian Dilger
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS28 2026-08-18 16:11 Marc Vef COMMIT_MSG:32 — Andreas, yes, correct. This is essentially making AIO synchronous for all reads on EC files because we can't tell at submission time if we n
Andreas Dilger PS28 · 2026-08-17 15:45
That seems like a pretty big hammer, basically breaking AIO completely for EC files, rather than just the recovery path?  Or is the comment wrong and this is triggered only for EC recovery when `-EIOCBQUEUED` is returned?

Would it be better to push **all** EC recovery to a workqueue instead of keeping it directly in the IO path, then it can fire the AIO completion when the reconstruction is complete, and synchronous readers would wait on the completion?
Marc Vef PS28 · 2026-08-18 16:11
Andreas, yes, correct. This is essentially making AIO synchronous for all reads on EC files because we can't tell at submission time if we need reconstruction. So, this patch is just a stopgap to allow AIO to work for degraded reads, albeit with collateral damage.

I'd agree that a workqueue is the better long-term approach, however, I'm not familiar enough with the code path at the minute here to gauge the effort required. So, I'd keep this patch as a short-term fix for AIO for degraded reads, and open a ticket so we address this properly with a workqueue.

Do you agree? If yes, I open the ticket
reply PS30 2026-08-19 20:04 Marc Vef file.c:2219 — on refresh
Gerrit AI review for Lustre PS30 · 2026-08-19 15:12
(minor) aio_ec_sync deliberately survives the goto restart at the end of the function, and it has to. cda_no_aio_complete and cda_creator_free stay set on the cl_dio_aio across restarts, so a later pass that ends with anything other than -EIOCBQUEUED (cl_io_rw_init() failing, or cl_io_loop() returning a hard error) still needs both !is_aio || aio_ec_sync tests to be true.

If it were cleared at restart, __cl_sync_io_note() would skip the free because creator_free is 1, and the creator branch would skip it too, leaking the cl_dio_aio and its cda_obj reference.

This isn't a bug as written, but the coupling between a stack bool and two flags on a heap struct isn't obvious. Could the comment above say the flag is intentionally sticky, so it doesn't get reset in a later cleanup?
Marc Vef PS30 · 2026-08-19 20:04
on refresh
tags: pt_ecro
owner Patrick Farrell · uploader Maximilian Dilger · PS30 uploaded 19h ago · NEW · open in Gerrit ↗
commit message
LU-12669 llite: make AIO reads on EC file synchronous

For sync DIO, EC recovery on read failure runs inline in
ll_file_io_generic after cl_sync_io_wait_recycle.  AIO has
the same recovery requirement but cannot run recovery from
the sub-DIO completion path -- ll_file_io_generic returns
-EIOCBQUEUED to the VFS before the BRW completion fires, so
the syscall context recovery needs (the lu_env, the user's
iov_iter, the range lock) is gone by the time the read error
is known.

Rather than building a workqueue-based async recovery path,
make AIO reads on EC files behave as sync DIO: after
cl_io_loop, if an AIO read on an EC layout (io->ci_cross_ec,
set by lov_io_mirror_init during cl_io_rw_init) got
-EIOCBQUEUED, set cda_no_aio_complete and cda_creator_free
to disarm the async ki_complete path, then drop into the
same wait + restart code sync DIO uses.  The VFS calls
ki_complete itself when we return.

The flag flip is race-free because the submission ref on
cda_sync is still held -- end_io cannot fire until we drop
it in cl_sync_io_wait_recycle.

This disables async semantics for every AIO read on an EC
file, not only those that need recovery -- we cannot tell at
submission time whether reconstruction will be needed, so the
sync conversion fires unconditionally on -EIOCBQUEUED for an
EC layout.  As a side effect, the range_lock taken by
ll_file_io_generic is now held until all sub-DIOs have
drained, instead of being dropped while they are still in
flight.

Test-Parameters: testlist=sanity-ec
Test-Parameters: testlist=sanity-ec fstype=zfs
Assisted-by: Opus:4.8 llm_code_and_review_tools
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Marc Vef <mvef@whamcloud.com>
Change-Id: I394a3610e33b29ead8f5adb52dfa21db6b721944
64355 master J ✗2B ✓T ✓R 0/2−
LU-19536 osc: enforce dirty limits for regular DIO writes
mine needs rebase — checkpatch: cannot be cherry-picked
3 unresolved L +339 −50
6h
needs rebase — checkpatch: cannot be cherry-picked
3 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
CI green — no vote yet from Qian Yingjin, Marc Vef, Andreas Dilger, Vitaliy Kuznetsov
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
sanity-lfsck@ldiskfs+DNE:test_18gseen in 13 other reviews
sanity-lfsck@ldiskfs+DNE:test_18hseen in 13 other reviews
build #128591 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Marc Vef, Andreas Dilger, Vitaliy Kuznetsov
patchsets:
+8 earlier PS1 03-04 PS2 03-04 PS3 03-04 PS4 03-04 PS5 03-04 PS6 03-04 PS7 03-04 PS8 03-04
PS9 03-04 PS10 07-29 Vitaliy Kuznetsov PS11 07-29 Vitaliy Kuznetsov PS12 07-30 Vitaliy Kuznetsov PS13 08-03 Vitaliy Kuznetsov
your previous vote: -1 on PS1 (2026-03-04 18:41) — now at PS13
threads: 3 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS13 2026-08-03 23:40 Gerrit AI review for Lustre COMMIT_MSG:7 — (minor) LU-19536 in JIRA is titled "fault_in_iov_iter_readable() with a spinlock held", and the other changes landed under it (DIO pool ENOM
Gerrit AI review for Lustre PS13 · 2026-08-03 23:40
(minor) LU-19536 in JIRA is titled "fault_in_iov_iter_readable() with a spinlock held", and the other changes landed under it (DIO pool ENOMEM drain/retry, DIO buffer double-free, wait queue for DIO copy sync) are all in the unaligned-DIO copy machinery. Grant/dirty accounting for DIO writes reads like a separate topic. Would a dedicated ticket be a better home, or is LU-19536 intended as an umbrella for all of the DIO work?
reply PS13 2026-08-03 23:40 Gerrit AI review for Lustre osc_cache.c:1704 — (minor) The comment doesn't quite match what happens. osc_wake_cache_waiters() is only `wake_up(&cli->cl_cache_waiters)`, so nothing re-ente
Gerrit AI review for Lustre PS13 · 2026-08-03 23:40
(minor) The comment doesn't quite match what happens. osc_wake_cache_waiters() is only `wake_up(&cli->cl_cache_waiters)`, so nothing re-enters this function - there is no recursion.

The actual hazard is that osc_enter_cache() evaluates this as the condition of wait_event_idle_exclusive_timeout_cmd() on that same queue, so the wake would land on the evaluating task itself (and osc_enter_cache() already wakes the queue once it succeeds). Worth rewording so the rationale for the no-wake variant is accurate.
reply PS13 2026-08-19 15:51 James Simmons osc_cache.c:2775 — Please do this improvement.
Gerrit AI review for Lustre PS13 · 2026-08-03 23:40
(minor) This bakes in an assumption that any `cl_dio_pages` reaching the OSC is embedded in a `cl_sub_dio`, which isn't part of the `cio_dio_submit`/osc_queue_dio_pages() contract.

A few lines down the same sdio is already derived from the page anchor:

    ext->oe_csd = anchor->csi_dio_aio;

Since `is_aio` is only needed inside the `!ext->oe_rw` branch, could it just read `ext->oe_csd->csd_ll_aio->cda_is_aio` there and drop the container_of()?
James Simmons PS13 · 2026-08-19 15:51
Please do this improvement.
owner Patrick Farrell · uploader Vitaliy Kuznetsov · PS13 uploaded 16d ago · NEW · open in Gerrit ↗
commit message
LU-19536 osc: enforce dirty limits for regular DIO writes

osc_queue_dio_pages() checked only server grant before queuing a
write. For regular non-AIO DIO, parallel submission could therefore
bypass the per-OSC max_dirty_mb and global obd_max_dirty_pages limits.

Add osc_reserve_dio_grant() to validate the local dirty limit,
atomically reserve global dirty pages, and reserve server grant under
the client lock. Check dirty pressure first so a simultaneous grant
shortage cannot hide the dirty limit.

When a regular DIO extent cannot enter dirty accounting, submit it
synchronously and wait for that extent before forming more unaccounted
RPCs. Preserve existing no-grant and true AIO paths. Keep buffered
osc_enter_cache_try() accounting unchanged.

Remove the obsolete DIO grant branch from osc_queue_sync_pages().
Since LU-13814, DIO requests use osc_queue_dio_pages(). Rename
__osc_unreserve_grant() to osc_unreserve_grant_no_wake() to document
the no-wakeup rollback needed by waitqueue callers. Add __must_hold
annotations to document the locking requirements of grant and cache
helpers.

Add sanity test_398v using one exact OSC, warming its grant, and
pausing OST bulk completion. Verify that four DIO RPCs do not all
overlap at the dirty limit. Check final dirty counters and compare the
client and server grant changes around the tested DIO.

Fixes: 8efbad8ff4ed ("LU-13814 osc: add osc_queue_dio_pages")
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Vitaliy Kuznetsov <vkuznetsov@ddn.com>
Change-Id: I115232216ae77740f0a779994e8a020eedeebfef
64079 master J ✓B ✓T ✗4R 0/2
LU-12668 tests: add EC recovery tests
mine enforced failed: custom-1001, custom-1002, review-dne-subtest-change, review-dne-zfs-subtest-change
ec2 pt_ecro 14 unresolved XL +6003 −1
12h
enforced failed: custom-1001, custom-1002, review-dne-subtest-change, review-dne-zfs-subtest-change
14 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
failed enforced testplatformdetail
custom-1001 crashed RHEL 9.7 / x86_64 ran 3 tests. 1 tests failed: sanity-ec. %% THIS TEST SESSION CRASHED %% session
custom-1002 crashed RHEL 9.7 / x86_64 ran 3 tests. 1 tests failed: sanity-ec. %% THIS TEST SESSION CRASHED %% session
review-dne-subtest-change failed 30× RHEL 9.7 / x86_64 ran 3 tests. 1 tests failed: sanity-ec. session
review-dne-zfs-subtest-change failed 29× RHEL 9.7 / x86_64 ran 3 tests. 1 tests failed: sanity-ec. session
build #129694 SUCCESS
no vote yet: Maximilian Dilger
patchsets:
+44 earlier PS1 02-17 PS2 03-19 Zhenyu Xu PS3 03-29 PS4 03-29 PS5 03-29 PS6 03-29 Ronnie Sahlberg PS7 03-30 Ronnie Sahlberg PS8 03-31 Ronnie Sahlberg PS9 03-31 PS10 03-31 Ronnie Sahlberg PS11 04-01 Ronnie Sahlberg PS12 04-01 Ronnie Sahlberg PS13 04-07 Ronnie Sahlberg PS14 04-08 PS15 04-09 PS16 04-09 PS17 04-09 PS18 04-09 PS19 04-09 PS20 04-09 PS21 04-09 PS22 04-09 PS23 04-10 PS24 04-10 PS25 04-10 PS26 04-10 PS27 04-10 PS28 04-14 PS29 04-14 PS30 04-14 PS31 04-15 PS32 04-15 PS33 04-15 PS34 04-17 PS35 04-29 PS36 04-29 PS37 04-29 PS38 04-29 PS39 05-05 PS40 05-05 PS41 05-05 PS42 05-06 Ronnie Sahlberg PS43 06-03 Marc Vef PS44 07-26 Marc Vef
PS45 07-26 Marc Vef PS46 07-31 Maximilian Dilger PS47 07-31 Maximilian Dilger PS48 08-04 Maximilian Dilger PS49 08-19 Maximilian Dilger
threads: 14 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS46 2026-07-31 10:29 Gerrit AI review for Lustre COMMIT_MSG:48 — (minor) The range here starts at 49b, but 49a "test concurrent reads during EC recovery" is added by this patch too. Should it read 49a-50b?
Gerrit AI review for Lustre PS46 · 2026-07-31 10:29
(minor) The range here starts at 49b, but 49a "test concurrent reads during EC recovery" is added by this patch too. Should it read 49a-50b? Every other test added is accounted for by one of the ranges.
reply PS47 2026-08-01 05:17 Gerrit AI review for Lustre COMMIT_MSG:76 — (minor) Two hunks are not accounted for by any of the ranges above: the new `[[ "$SLOW" == "no" ]] && EXCEPT_SLOW="74a 75b"` line, and the `
Gerrit AI review for Lustre PS47 · 2026-08-01 05:17
(minor) Two hunks are not accounted for by any of the ranges above: the new `[[ "$SLOW" == "no" ]] && EXCEPT_SLOW="74a 75b"` line, and the `head -n1` fix in `enable_ec()` for the multi-mount `get_param` output.

The `EXCEPT_SLOW` one also changes an existing test: 74a is not added by this patch and is not named in any of the range lists, so a reader can't tell from the message that it is being moved onto the SLOW list. Worth a sentence for each.
reply PS46 2026-07-31 10:29 Gerrit AI review for Lustre sanity-ec.sh:6722 — (defect) With 3 of 4 data stripes unreadable and pcount=2, -EIO is the only correct outcome; returning reconstructed-but-wrong bytes is sile
Gerrit AI review for Lustre PS46 · 2026-07-31 10:29
(defect) With 3 of 4 data stripes unreadable and pcount=2, -EIO is the only correct outcome; returning reconstructed-but-wrong bytes is silent corruption. Treating it as an acceptable pass means a real reconstruction bug in this path would go unnoticed.

48a, 48c and 64b in this same patch take the opposite position ("handing back silently wrong data would be a corruption bug, so assert against it"). Should 52b assert rc != 0 instead?
reply PS46 2026-07-31 10:29 Gerrit AI review for Lustre sanity-ec.sh:9004 — (minor) These eight files (2M..16M) are never removed. The same applies to the extra files in 71b/71c/71d, 73b's .pure, 73c's .zero and the
Gerrit AI review for Lustre PS46 · 2026-07-31 10:29
(minor) These eight files (2M..16M) are never removed. The same applies to the extra files in 71b/71c/71d, 73b's .pure, 73c's .zero and the directories in 75e/75f; 73e is the only new test that registers a cleanup.

Added up, the new tests write on the order of 1.5G and leave most of it in place for the rest of the run, which on a small test filesystem can push later subtests into ENOSPC. A `stack_trap "rm -f ..."` next to each creation would keep the footprint bounded.
reply PS47 2026-08-01 05:17 Gerrit AI review for Lustre sanity-ec.sh:29 — (suggestion) Both of these are parked against the feature ticket itself. 53a in particular is described as intermittently reconstructing wro
Gerrit AI review for Lustre PS47 · 2026-08-01 05:17
(suggestion) Both of these are parked against the feature ticket itself. 53a in particular is described as intermittently reconstructing wrong data, which is a silent-corruption symptom rather than a test problem, and 41d is an OSC retry loop that never terminates.

Would separate LU tickets referenced here keep them from being lost when LU-12668 is closed? The convention elsewhere in this file (12a -> LU-19631, 5b/12b -> LU-20435) is one ticket per known failure.
reply PS47 2026-08-01 05:17 Gerrit AI review for Lustre sanity-ec.sh:4128 — (minor) A fresh `stack_trap` is pushed on every call, including repeat calls for the same index, so loop-driven tests accumulate identical c
Gerrit AI review for Lustre PS47 · 2026-08-01 05:17
(minor) A fresh `stack_trap` is pushed on every call, including repeat calls for the same index, so loop-driven tests accumulate identical cleanup entries: 75b registers 50, 74a 20, and 58a/63b/68b one per pair.

Each entry re-runs `ec_apply_fault`, which is a `do_nodes` to every OSS plus a `cancel_lru_locks osc`, so teardown does that work dozens of times over. Registering the trap only when the bit was not already set would make it one entry per OST.
reply PS47 2026-08-01 05:17 Gerrit AI review for Lustre sanity-ec.sh:4245 — (minor) When no stripe list is given this walks every data stripe and returns the first parity-free one, which can be a stripe that holds no
Gerrit AI review for Lustre PS47 · 2026-08-01 05:17
(minor) When no stripe list is given this walks every data stripe and returns the first parity-free one, which can be a stripe that holds no data.

For a sub-raid-set file that is the vacuous-pass mode this helper is documented as preventing: 42a writes 512K into a 1M-stripe 4+2 layout, so only stripe 0 has data. If stripe 0's OST happens to double as parity, the fault is armed on stripe 1's (empty) object and the checksum comparison succeeds without reconstructing anything.

`ec_data_stripe_osts()` handles the analogous case by calling `skip_env`. Would returning non-zero (so `ec_start_read_fault()` skips) be safer than falling through to a later stripe?
reply PS47 2026-08-01 05:17 Gerrit AI review for Lustre sanity-ec.sh:5451 — (minor) 44c and 44a are the same test - same layout, same `ec_start_all_reads_fail`, same EIO check, same clear-and-reread - differing only
Gerrit AI review for Lustre PS47 · 2026-08-01 05:17
(minor) 44c and 44a are the same test - same layout, same `ec_start_all_reads_fail`, same EIO check, same clear-and-reread - differing only in the error strings. 43c is that body minus the reread. Could these collapse into one?

While here, 43c's description says "too many OST failures (3+ OSTs)" but `ec_start_all_reads_fail` uses `fail_val=0`, which fails every OST, not three.
reply PS47 2026-08-01 05:17 Gerrit AI review for Lustre sanity-ec.sh:9099 — (minor) The comment says "an OST that is a safe data OST for all files", but only `$f2` is classified. `$f1` (2+1, 3 objects) and `$f3` (2+2
Gerrit AI review for Lustre PS47 · 2026-08-01 05:17
(minor) The comment says "an OST that is a safe data OST for all files", but only `$f2` is classified. `$f1` (2+1, 3 objects) and `$f3` (2+2, 4 objects) get whatever the allocator gave them, so on an 8-OST config the victim frequently holds none of their objects and the `$s1`/`$s3` comparisons pass without any recovery running.

71a, 71c, 71d and 75e/75f have the same shape (classify one file, assert on all of them). That is defensible for a batch test, but here the comment claims something stronger than the code does.
reply PS47 2026-08-01 05:17 Gerrit AI review for Lustre sanity-ec.sh:9905 — (defect) `safe_osts` here still comes from the `ec_classify_osts $tf` above, but the SEEK_DATA/SEEK_HOLE checks below run on `$tfs`, which w
Gerrit AI review for Lustre PS47 · 2026-08-01 05:17
(defect) `safe_osts` here still comes from the `ec_classify_osts $tf` above, but the SEEK_DATA/SEEK_HOLE checks below run on `$tfs`, which was created separately and gets its own object placement from the allocator.

So the OST taken out need not hold any of `$tfs`'s stripes, and on a run where it doesn't, the two `lseek_test` assertions execute against a fully healthy file.

73c already documents and avoids exactly this ("safe_osts still describes $tf; $tf2 has its own object placement") by calling `ec_data_stripe_osts $tf2 0` first. Should 75d do the same for `$tfs`?

Related: the comment says the seek "crosses the degraded stripe", but the data lives at 5M, i.e. stripe 1 with `-c 4 -S 1M`, while `safe_osts[0]` is just the lowest-numbered data OST.
reply PS49 2026-08-19 09:57 Gerrit AI review for Lustre sanity-ec.sh:4234 — (minor) The negative-index handling, and the "Index -1 is the last stripe" note in the header comment, appear to be unreachable: all eleven
Gerrit AI review for Lustre PS49 · 2026-08-19 09:57
(minor) The negative-index handling, and the "Index -1 is the last stripe" note in the header comment, appear to be unreachable: all eleven callers pass 0..4. Worth dropping the branch and the doc line unless a caller is coming.
reply PS49 2026-08-19 09:57 Gerrit AI review for Lustre sanity-ec.sh:4355 — (style) The suite convention is a `#define` comment naming the fault right above the line that arms it, so a reader does not have to look up
Gerrit AI review for Lustre PS49 · 2026-08-19 09:57
(style) The suite convention is a `#define` comment naming the fault right above the line that arms it, so a reader does not have to look up the bare hex. `ec_start_all_reads_fail()` and 41d both do this; this call site and the one in `ec_apply_fault()` do not.

    #define OBD_FAIL_OST_BRW_READ_BULK 0x20f
    ec_ost_fail_loc 0x20f $(( 0x10000 | mask ))

The value itself is right (obd_support.h has 0x20f), it is only the annotation that is missing.
tags: pt_ecro
owner Patrick Farrell · uploader Maximilian Dilger · PS49 uploaded 19h ago · NEW · open in Gerrit ↗
commit message
LU-12668 tests: add EC recovery tests

Add sanity-ec coverage for erasure-coding recovery.  Each test
writes an EC file, resyncs parity, fails one or more OSTs, and
verifies the client reconstructs the data from parity (CIT_EC_RD)
against the pre-failure checksum.

Failure is injected with OBD_FAIL_OST_BRW_READ_BULK so the OSC
import stays active and only bulk reads fail, which drives genuine
parity reconstruction.  The fault is set on the OSS nodes, where
tgt_brw_read() evaluates it, and osc.*.resend_count is dropped to 1
for the duration so the injected -EIO reaches the LOV layer instead
of being absorbed by an OSC resend.

Victims are chosen by stripe rather than by OST index.
ec_pick_data_ost() walks a file's data stripes in order and takes
the first whose OST does not also carry parity: a file smaller than
one raid set holds data on stripe 0 alone, so picking the lowest OST
index instead would arm the fault on an object the read never
reaches and the test would pass without exercising recovery.
ec_check_fault_index() skips when a target OST index is >= 16, which
cfs_fail_index() cannot express in its 16-bit fail_val bitmask.
ec_mirror_victims() fails one parity-free OST in every data mirror,
since a file with more than one data copy would otherwise answer the
read from an intact mirror rather than reconstructing anything.

Reads that check a sub-range cancel their locks first: a range
re-read after a whole-file read is otherwise served from the page
cache, issues no BRW RPC, and so never reaches the injected fault.

Geometry and I/O patterns (40b-44c):
- 2+1, 2+2 and 4+1 EC; partial, offset, mmap, direct and async
  reads; single, maximum and progressive OST failure; graceful
  failure when too many OSTs are gone

Failure placement and layout (45a-48c):
- consecutive, non-consecutive, boundary and parity-only OST
  failures; 64K, 256K and 4M stripe sizes; multiple EC and
  mixed EC/non-EC PFL components; stale and partially stale
  parity

Concurrency and multi-mount (49a-50b):
- concurrent readers over a file with two failed data OSTs;
  background writes, mirror resync and OST reactivation during
  recovery; both mounts reading the same EC file

Core recovery (51a-53a):
- EOF boundary recovery at RAID set / stripe set boundaries;
  degradation limits and mixed parity+data failure; recovery at
  non-zero read offsets

Layout patterns (55a):
- file-size boundaries (1 byte .. multi-stripe)

Edge cases (58a-62d):
- parity_used combinations and stripe rotation; sparse files
  with holes; recovery after truncate; sub-stripe files;
  append writes

Multi-target (63a-66d):
- OST failure cycling and multi-mount coordination; 3-4
  component PFL with per-component EC geometry; multiple
  EC mirror pairs

Write patterns (67a-71d):
- writes to healthy stripes during degraded mode and
  overwrite cycles; varied geometries; O_DIRECT writes;
  partial and mid-file overwrites; batch recovery of many
  files

Stress and admin (73a-73e, 74a, 75a-75f):
- random reads, fallocate, truncate-extend, O_APPEND, and
  large (128M) file recovery; reads racing with OST
  deactivation; stat/getattr, stress loops, lfs mirror
  verify, directory-inherited layout, and stripe rotation

Tests 41d and 53a are added but listed in always_except.  A degraded
mmap read never completes: the OSC alternates between "too many
resent retries" and osc_brw_redo_request() forever, so -EIO never
reaches the LOV layer and CIT_FAULT never switches to CIT_EC_RD.  A
recovery read at a non-zero offset intermittently reconstructs wrong
data.  Both stay off until those are fixed.

Test 65c and the sparse half of 75d are skipped on ZFS.  Both build a
sparse file and resync it, which needs lseek to report the holes so
resync knows which stripe sets to skip, and ZFS does not report them
reliably for dirty data.  Test 12b describes the same problem.

Assisted-by: ClaudeCode:opus llm_code_and_review_tools
Test-Parameters: trivial testlist=sanity-ec ostcount=8
Test-Parameters: trivial testlist=sanity-ec ostcount=8 fstype=zfs
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Max Dilger <mdilger@whamcloud.com>
Change-Id: I5a06cd166487e0bff7bfdb6a39414af3f12c4326
63249 master J !B ✓T ✗20R 1/2−
LU-19755 osc: fix race in max_rpcs_in_flight check
mine needs rebase — checkpatch: cannot be cherry-picked
5 unresolved M +75 −8
19h
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-5, review-ldiskfs, review-ldiskfs-ubuntu
5 unresolved thread(s) await your reply — last from Andreas Dilger
janitor run: 4 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-hsm. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 1 tests failed: sanity-hsm. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 7 tests. 2 tests failed: recovery-small, lustre-rsync-test. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 7 tests. 2 tests failed: recovery-small, lustre-rsync-test. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 2 tests failed: sanity-sec, recovery-small. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-hsm. session
review-dne-zfs-part-5 RHEL 8.10 / x86_64 ran 7 tests. 2 tests failed: recovery-small, lustre-rsync-test. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
build #120168 SUCCESS · tests all Maloo sessions
reviews: Jinshan Xiong +1 2026-01-06 19:24
no vote yet: Andreas Dilger
patchsets: PS1 01-06 PS2 01-06 PS3 01-06
threads: 5 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2026-01-07 17:09 Andreas Dilger COMMIT_MSG:16 — How is this better than just incrementing rpcs_in_flight under cl_loi_list_lock and decrementing it on failure? Does this mean we are now d
Andreas Dilger PS2 · 2026-01-07 17:09
How is this better than just incrementing rpcs_in_flight under cl_loi_list_lock and decrementing it on failure?  Does this mean we are now double counting some RPCs until the new counter is decremented?
reply PS2 2026-01-07 17:09 Andreas Dilger COMMIT_MSG:25 — In the upstream kernel this is expressed as:
Andreas Dilger PS2 · 2026-01-07 17:09
In the upstream kernel this is expressed as:

    Reported-by:

Or:

    Suggested-by:
reply PS2 2026-01-07 17:09 Andreas Dilger osc_cache.c:2216 — why remove this comment?
Andreas Dilger PS2 · 2026-01-07 17:09
why remove this comment?
reply PS2 2026-01-07 17:09 Andreas Dilger sanity.sh:35742 — (style)
Andreas Dilger PS2 · 2026-01-07 17:09
(style)

    for ((i = 0; i < 16; i++)); do
reply PS2 2026-01-07 23:52 Andreas Dilger sanity.sh:35753 — I guess this needs to only follow the `rpcs in flight:` section, so possibly:
Andreas Dilger PS2 · 2026-01-07 17:09
(style) can this just grep for `5:` in the output?

    $LCTL get_param -n osc.$osc.rpc_stats | grep "^5:" &&
            error "found more than 4 RPCs in flight" || true
Andreas Dilger PS2 · 2026-01-07 23:52
I guess this needs to only follow the `rpcs in flight:` section, so possibly:
```
    $LCTL get_param -n osc.$osc.rpc_stats | grep -A 8 "rpcs in flight:" |
        grep "^[5-9]:" && error ...`
```
This also detects the case where 5 RPCs-in-fight are somehow all skipped...
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 225d ago · NEW · open in Gerrit ↗
commit message
LU-19755 osc: fix race in max_rpcs_in_flight check

When multiple ptlrpcd threads process RPCs concurrently, they
can all pass the osc_max_rpc_in_flight() check before any of
them has incremented the in-flight counter. This happens
because the check is done under cl_loi_list_lock but the
counter is incremented later in osc_send_*_rpc() after the
lock is released.

Fix this by adding a cl_pending_in_flight counter that
reserves a slot while still holding the lock. This counter
is included in rpcs_in_flight() so concurrent threads see
the reservation and wait appropriately.

Add OBD_FAIL_OSC_DELAY_RPC to allow testing this fix by
injecting a delay in the race window, and sanity test 55d
to verify the limit is respected under concurrency.

Thanks to Jinshan Xiong of Google for reporting this issue
and suggesting the fix.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I8ceacf3d9040d94fc89ab54a39bd98a4fb35ae1d
64440 master J !B ✓T ✗1R 0/2−
LU-19956 osc: fix race from direct ops_transfer_pinned clear
mine needs rebase — checkpatch: cannot be cherry-picked
M +79 −14
19h
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-part-5
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-5 crashed RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. %% THIS TEST SESSION CRASHED %% session
4 optional test failure(s) — informational
build #122315 SUCCESS · tests all Maloo sessions
no vote yet: Jinshan Xiong, Shaun Tancheff, Andreas Dilger, Zhenyu Xu, Oleg Drokin
patchsets:
+7 earlier PS1 03-09 PS2 03-09 PS3 03-09 PS4 03-09 PS5 03-09 PS6 03-09 PS7 03-09
PS8 03-10 PS9 03-10 PS10 03-10 PS11 03-11 PS12 03-11
your previous vote: -1 on PS11 (2026-03-11 01:59) — now at PS12
owner Patrick Farrell · uploader Patrick Farrell · PS12 uploaded 161d ago · NEW · open in Gerrit ↗
commit message
LU-19956 osc: fix race from direct ops_transfer_pinned clear

The ops_transfer_pinned flag in osc_page is paired
with a cl_page reference -- the flag and the ref must
always be managed together through the
osc_page_transfer_get/put() accessors.

osc_completion() violated this by clearing the flag
directly and dropping the ref with a separate
cl_page_put().  This decoupled the flag from the ref,
opening a race on weakly-ordered architectures.

The initial fix (complete first, then transfer_put)
introduced a re-submission crash: once
cl_page_complete() transitions the page to CPS_CACHED,
a concurrent write can re-submit it via
osc_page_cache_add -> osc_page_transfer_get, which
asserts the pin is clear.  If the old completion has
not yet called transfer_put, the assert fires.

Fix osc_completion to release the transfer pin BEFORE
cl_page_complete().  While still in CPS_PAGEOUT, the
state machine prevents any other transition, so the
transfer_put is race-free.  Take a temporary cl_page
ref first: transfer_put drops the pin's ref (cp_ref
2->1), and cl_page_complete's end_page_writeback can
make the page reclaimable on another CPU.

A TLA+ formal model (formal_models/clio/TransferPin.tla)
with the NoPinWhileCached invariant verifies this fix
catches the re-submission crash in all three buggy
variants (original, LASSERT-in-delete, complete-first).

Generated with Claude Code + Tools

Test-Parameters: testlist=sanity env=ONLY=80a
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ib8416c753e13fe6eb8e11790b63687fbc2c8a26d

Longstanding (signal older than a week)

(169)
64359 master J ✗1B ✓T ✓R 0/2
LU-19536 osc: remove dead DIO handling from sync path
mine 2 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
LU-19536-dio-fixes 2 unresolved M +23 −52
6h
2 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
CI green — no vote yet from Qian Yingjin, Marc Vef, Andreas Dilger, Vitaliy Kuznetsov
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_63cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
build #128593 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Marc Vef, Andreas Dilger, Vitaliy Kuznetsov
patchsets:
+6 earlier PS1 03-04 PS2 03-04 PS3 03-04 PS4 03-04 PS5 03-04 PS6 03-04
PS7 07-29 Vitaliy Kuznetsov PS8 07-29 Vitaliy Kuznetsov PS9 07-30 Vitaliy Kuznetsov PS10 08-03 Vitaliy Kuznetsov PS11 08-03 Vitaliy Kuznetsov
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS11 2026-08-04 00:25 Gerrit AI review for Lustre lov_io.c:1661 — (suggestion) This is the last DIO assumption left in lov_io_submit(), and the patch's own premise says it can no longer hold: every page tha
Gerrit AI review for Lustre PS11 · 2026-08-04 00:25
(suggestion) This is the last DIO assumption left in lov_io_submit(), and the patch's own premise says it can no longer hold: every page that reaches here now comes from a cl_page_list, and the only CPT_TRANSIENT pages in the tree are built by ll_direct_rw_pages() into a cl_dio_pages, which goes to lov_dio_submit() instead. So an empty page arriving here would be CPT_CACHEABLE and this would LBUG.

In practice the branch looks unreachable too - lov_page_init_empty() does SetPageUptodate(), and all four submit paths (ll_readpage(), ll_read_ahead_page(), ll_prepare_partial_page(), ll_io_zero_page()) skip uptodate pages before queueing. If so the whole block is dead and could go with the rest of the DIO leftovers.

The comment is stale either way: cl_page_prep() here was removed by 169f076ae0 ("LU-13814 clio: remove cl_page_prep for transients").
reply PS11 2026-08-04 00:25 Gerrit AI review for Lustre osc_cache.c:3044 — (minor) Not a bug, but with `dio` dropped the only remaining value in this message is `ext->oe_srvlock`, and the enclosing condition is `dlm
Gerrit AI review for Lustre PS11 · 2026-08-04 00:25
(minor) Not a bug, but with `dio` dropped the only remaining value in this message is `ext->oe_srvlock`, and the enclosing condition is `dlmlock == NULL && !ext->oe_srvlock` - so it always prints `srvlock: 0`. If the patch is refreshed, either drop that field or print something that varies, e.g. `oe_rw`.
owner Patrick Farrell · uploader Vitaliy Kuznetsov · PS11 uploaded 16d ago · NEW · open in Gerrit ↗
commit message
LU-19536 osc: remove dead DIO handling from sync path

Since LU-13814 routed DIO through cio_dio_submit() and cl_dio_pages,
transient DIO pages no longer reach lov_io_submit(), osc_io_submit(),
or osc_queue_sync_pages(). The DIO-specific branches and setup left in
the ordinary page-list path are therefore dead.

Remove the stale DIO handling from the LOV and OSC submit paths,
including OBD_BRW_NOCACHE setup, the oe_dio assignment, and the
sync_io anchor setup. The ordinary LOV path now always groups pages
by stripe, while osc_io_submit() always prepares its pages.
OBD_BRW_NOCACHE is set only by osc_dio_submit() before it calls
osc_queue_dio_pages().

Since oe_dio is always false in the sync path, simplify extent
priority handling and omit oe_dio from the NOLCK diagnostic.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Vitaliy Kuznetsov <vkuznetsov@ddn.com>
Change-Id: I63711a7f3bc3699680e1c09d3349291ccebb75ec
58229 master J !B ✓T ✗2R 0/2
LU-18746 flr: allow merge stale mirror
reviewing Zhenyu Xu · PS5→PS18 since your -1 — your objection was dropped
9 unresolved M +150 −50
6d
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity-lnet. session
review-zfs RHEL 8.10 / x86_64 ran 8 tests. 1 tests failed: sanity-quota. session
7 optional test failure(s) — informational
build #129178 SUCCESS · tests all Maloo sessions
no vote yet: Ronnie Sahlberg, Qian Yingjin, Andreas Dilger, Robert Read
patchsets:
+13 earlier PS1 02-26 PS2 02-27 PS3 02-28 PS4 03-03 PS5 03-03 PS6 03-04 PS7 03-25 PS8 03-31 PS9 04-17 PS10 05-05 Andreas Dilger PS11 07-08 PS12 08-01 PS13 08-26
PS14 09-11 PS15 10-29 PS16 04-08 Andreas Dilger PS17 06-01 PS18 08-12
your previous vote: -1 on PS5 (2025-03-03 21:51) — now at PS18
threads: 9 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre COMMIT_MSG:12 — A few hunks aren't covered by the description, so it's hard to tell which are intentional:
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
A few hunks aren't covered by the description, so it's hard to tell which are intentional:

- obd.h reorders op_code/op_xvalid/op_bias/op_cli_flags (a packing cleanup, unrelated to stale merges);
- obd.h converts `bool op_new_layout` into a bitfield, which touches a field this feature never uses;
- llite/file.c changes the LL_IOC_LEASE unlock error paths from `rc` to `rc2` and folds it in at the end.

That last one is a real user-visible fix, not a cleanup: today `GOTO(out_lease_close, rc = -EINVAL)` (and -EFAULT/-EBADF/-EPERM/-ENOMEM) is immediately overwritten by `rc = ll_lease_close_intent()`, so LL_LEASE_RESYNC_DONE / LAYOUT_MERGE / LAYOUT_SPLIT return the lease type instead of the error. Would it be better as its own patch with

    Fixes: f172b116885 ("LU-10092 llite: Add persistent cache on client")

so it can be reviewed and backported on its own?
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre COMMIT_MSG:13 — This adds a new on-wire field (cd_merge_flags) and a new client-set flag value, so a Test-Parameters: line requesting interop coverage would
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
This adds a new on-wire field (cd_merge_flags) and a new client-set flag value, so a Test-Parameters: line requesting interop coverage would be useful here, e.g. an older serverversion and an older clientversion run.
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre file.c:4415 — LL_LEASE_ALLOW_STALE is a modifier bit but the switch still matches lil_flags exactly, so every future combination has to be enumerated as i
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
LL_LEASE_ALLOW_STALE is a modifier bit but the switch still matches lil_flags exactly, so every future combination has to be enumerated as its own case. Anything unenumerated (LL_LEASE_LAYOUT_SPLIT | LL_LEASE_ALLOW_STALE, or the bit on its own) falls into `default:` and quietly releases the lease with bias = 0, returning the lease type as if it had worked.

Would `switch (ioc->lil_flags & ~LL_LEASE_ALLOW_STALE)` plus a check that the modifier is only accepted for MERGE read better?
reply PS5 2025-03-04 00:30 Zhenyu Xu lmv_intent.c:306 — I'm not sure whether coverity would complain about the transform bitwise from/to boolean value kinda of warning, so I made this change.
Patrick Farrell PS5 · 2025-03-03 21:51
All of these bool -> 1 are unnecessary and in files not otherwise touched - let's leave them out?
Zhenyu Xu PS5 · 2025-03-04 00:30
I'm not sure whether coverity would complain about the transform bitwise from/to boolean value kinda of warning, so I made this change.
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre lod_object.c:3548 — This isn't a bug that I can trigger today, but now that merge can mark every component of the new mirror stale, should this pass LVF_ALL_STA
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
This isn't a bug that I can trigger today, but now that merge can mark every component of the new mirror stale, should this pass LVF_ALL_STALE like lod_declare_layout_split() does at the equivalent point? That's the flag that turns on the "can not set all stale mirrors" check in lod_parse_striping(), and merge is currently the one stale-producing path that skips it.
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre mdc_lib.c:549 — There doesn't seem to be any negotiation for this. An MDT that predates the patch never looks at cd_merge_flags - mdt_close_handle_layouts()
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
There doesn't seem to be any negotiation for this. An MDT that predates the patch never looks at cd_merge_flags - mdt_close_handle_layouts() just calls mo_xattr_set(..., LU_XATTR_MERGE) - so a new client asking for a stale merge against an older server gets the mirror merged with no LCME_FL_STALE set, and rc = 0 back.

The result is a mirror that was never written being advertised as up to date, which reads can then be served from. Should this be gated on a new OBD_CONNECT2_* flag, with the client either failing with -EOPNOTSUPP or falling back to the sync path when the server doesn't advertise it?
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre mdd_object.c:1775 — The declare above passes LU_XATTR_MERGE_STALE, but the execute phase here still passes plain LU_XATTR_MERGE. It works only because lod_decla
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
The declare above passes LU_XATTR_MERGE_STALE, but the execute phase here still passes plain LU_XATTR_MERGE. It works only because lod_declare_layout_merge() builds the merged layout at declare time, and because LU_XATTR_MERGE_STALE would actually break the execute path - lod_xattr_set() has

    if (!(fl & LU_XATTR_MERGE))
            LASSERT(equi(...));

which would fire for an existing file if MERGE_STALE were passed instead.

Would it be safer to define LU_XATTR_MERGE_STALE as an extra bit used together with LU_XATTR_MERGE rather than in place of it? Then every existing `fl & LU_XATTR_MERGE` test (lod_object.c) and `fl == LU_XATTR_MERGE` test (mdd_xattr_set()) stays correct, and declare/execute can use the same value.
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre lfs.c:2391 — This is the only caller of mirror_extend_layout() and it hardcodes sync=true, so the `if (sync)` branch is always taken and `data->lil_flags
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
This is the only caller of mirror_extend_layout() and it hardcodes sync=true, so the `if (sync)` branch is always taken and `data->lil_flags |= LL_LEASE_ALLOW_STALE` is never executed. Grepping the tree, LL_LEASE_ALLOW_STALE is only referenced here and in ll_file_unlock_lease().

So as it stands `lfs mirror extend` can't create a stale mirror and the entire mdc/mdt/mdd/lod path added by this patch is unreachable from any shipped tool. Is the intent to add an `lfs mirror extend` option (plus the matching Documentation/man8/lfs-mirror-extend.8 text) in this patch, or is that coming in a follow-on?
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre wirecheck.c:3956 — check_close_data() is called inside the CHECK_COND_START(CONFIG_LUSTRE_FS_SERVER) block, so the generated assertions in both wiretest.c copi
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
check_close_data() is called inside the CHECK_COND_START(CONFIG_LUSTRE_FS_SERVER) block, so the generated assertions in both wiretest.c copies end up under `#ifdef CONFIG_LUSTRE_FS_SERVER`.

struct close_data is packed by the client in mdc_close_intent_pack(), so a client-only build never verifies the layout of a struct it puts on the wire. The other client-visible structs (check_swap_layout(), check_hsm_*()) are called outside that block - should this one be too?
owner Zhenyu Xu · uploader Zhenyu Xu · PS18 uploaded 7d ago · NEW · open in Gerrit ↗
commit message
LU-18746 flr: allow merge stale mirror

This patch makes it possible to merge a stale mirror to an existing
file, so that we can append several mirrors w/o writing data to
those mirrors first, and after we've finished the merge we'd do the
mirror resync later.

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: I0d730566ea9b238aeac5d2e27e77c719a1c73308
60688 master J ✗20B ✗T –R 0/2−
LU-0000 llite: fault in pages before get_user_pages
mine build failure (#115743)
20 unique failures fortestonly 6 unresolved M +42 −14
7d
build failure (#115743)
janitor: 20 test failures unique to this patch — conf-sanity1@ldiskfs+DNE:test_25, conf-sanity2@ldiskfs+DNE:test_50a, conf-sanity3@ldiskfs+DNE:test_101a +17 more
Andreas Dilger voted -1
4 unresolved thread(s) await your reply — last from Andreas Dilger
2 thread(s) waiting on others
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity1@ldiskfs+DNE:test_25NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
conf-sanity2@ldiskfs+DNE:test_50aseen in 1 other review
conf-sanity3@ldiskfs+DNE:test_101aseen in 6 other reviews
conf-sanity4@ldiskfs+DNE:test_151aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
conf-sanity1@zfs:test_30aseen in 3 other reviews
conf-sanity2@zfs:test_51seen in 2 other reviews
recovery-small@ldiskfs+DNE:test_52seen in 8 other reviews
recovery-small@zfs:test_52seen in 6 other reviews
replay-dual@ldiskfs+DNE:test_28seen in 1 other review
sanity2@ldiskfs+DNE:test_123aaNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity3@ldiskfs+DNE:test_398mseen in 2 other reviews
sanity-slow@ldiskfs+DNE:test_255aseen in 17 other reviews
sanity1@zfs:test_56xbNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_123aaNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-quota@ldiskfs+DNE:test_33seen in 1 other review
sanity-quota@zfs:test_13NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-sec@ldiskfs+DNE:test_18seen in 4 other reviews
sanity-sec@zfs:test_18seen in 4 other reviews
sanityn@ldiskfs+DNE:test_43kseen in 2 other reviews
sanityn@zfs:test_45jseen in 4 other reviews
build #115743 FAILURE
reviews: Andreas Dilger -1 2025-08-13 23:25
patchsets: PS1 08-13 PS2 08-13 PS3 08-13 PS4 08-13 PS5 08-13
threads: 4 need your reply · 2 waiting on others · 0 own notes · 0 bot
reply PS5 2025-08-19 05:18 Andreas Dilger cl_object.h:2632 — (style) this would be more clear if the same #ifdef was not checked twice:
Andreas Dilger PS5 · 2025-08-13 23:25
(minor) duplicate code block?  I can't see any difference
Andreas Dilger PS5 · 2025-08-19 04:58
Doh, "readable" vs. "writeable".  I was confused that they were both checking HAVE_FAULT_IN_IOV_ITER_READABLE...
Andreas Dilger PS5 · 2025-08-19 05:18
(style) this would be more clear if the same #ifdef was not checked twice:
```
#ifdef HAVE_FAULT_IN_IOV_ITER_READABLE
#define ll_iov_iter_fault_in_readable(iov, bytes) \
        fault_in_iov_iter_readable(iov, bytes)
#define ll_iov_iter_fault_in_writeable(iov, bytes) \
        fault_in_iov_iter_writeable(iov, bytes)
#else
#define ll_iov_iter_fault_in_readable(iov, bytes) \
        iov_iter_fault_in_readable(iov, bytes)
#define ll_iov_iter_fault_in_writeable(iov, bytes) \
        iov_iter_fault_in_writeable(iov, bytes)
#endif
```
reply PS5 2025-08-14 03:57 Andreas Dilger cl_page.c:190 — (defect) it looks like this will leak cdp->cdp_pages if an error is returned.
Andreas Dilger PS5 · 2025-08-14 03:57
(defect) it looks like this will leak cdp->cdp_pages if an error is returned.
reply PS5 2025-08-14 03:57 Andreas Dilger cl_page.c:194 — (defect) same
Andreas Dilger PS5 · 2025-08-14 03:57
(defect) same
reply PS5 2025-08-14 03:57 Andreas Dilger cl_page.c:205 — (minor) this should be moved to the end and cleaned up in one place:
Andreas Dilger PS5 · 2025-08-14 03:57
(minor) this should be moved to the end and cleaned up in one place:
```
        if (unlikely(result != page_count)) {
                CDEBUG(D_PAGE, "ll_release_user_pages() result=%ld, page_count=%ld\n", result, page_count);
                if (result >= 0)
-                       return -EFAULT;
+                       result = -EFAULT;

+               GOTO(out_free, size = result);
        }
        pvec->ldp_count = page_count;


+out_free:
+       if (size < 0) {
+               ll_release_user_pages(pvec->ldp_pages, page_count);
+               pvec->ldp_pages = NULL;
+       }
        return size;
```
tags: fortestonly
owner Patrick Farrell · uploader Patrick Farrell · PS5 uploaded 371d ago · NEW · open in Gerrit ↗
commit message
LU-0000 llite: fault in pages before get_user_pages

We must fault in the user pages before get_user_pages,
otherwise we can livelock with the mmap sem.

Not sure about the requirement for the other case,
on newer kernels - but it's worth a try.

Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I8a9a8094101e37a12d59482efb6a788231233837
59350 master J !B ✓T ✗1R 0/1−
LU-19037 osc: initialize osc_object::oo_tree
reviewing Zhenyu Xu · PS7→PS9 since your -1 — your objection was dropped
1 unresolved XS +1 −0
12d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-5 failed 2× RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
1 optional test failure(s) — informational
build #114129 SUCCESS · tests all Maloo sessions
reviews: Timothy Day -1 2026-08-07 15:40
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+4 earlier PS1 05-21 PS2 05-22 PS3 05-22 PS4 05-22
PS5 05-27 PS6 05-27 PS7 06-03 PS8 06-06 PS9 06-10
your previous vote: -1 on PS7 (2025-06-05 19:47) — now at PS9
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS6 2025-06-03 09:22 Zhenyu Xu osc_page.c:264 — yes, I agree that it's strange to find an osc_page didn't successfully deleted from the radix tree, I'm just working on a workaround here as
Patrick Farrell PS6 · 2025-05-28 20:41
I'm sort of confused about the logic here - why do we have to replace it?  What does that do?

And how can this page already be in the radix tree?  I guess it's not "this" page, it's just another page at the same index.

So this seems like it might be a race with removal in cl_page_delete/osc_page_delete?  If it is, then how do we avoid the other thread removing *this* page from the tree, since it's done by index?

It looks to me like vvp_page_delete() makes the page inaccessible in the page cache(?) by resetting the private pointer, but I'm not 100% sure.  Then osc_page_delete() is called after.

I guess my point is I'm not sure this is solving rather than hiding the problem.  I guess perhaps if the page is in the process of being removed (which is why we're getting a new page), we can just do that removal ourselves first?  Is that the logic here?  I guess that seems sound, but what about the deleting thread possibly removing this page?
Qian Yingjin PS6 · 2025-05-29 03:13
I think we must investigate why the page is already in the tree?
Zhenyu Xu PS6 · 2025-06-03 09:22
yes, I agree that it's strange to find an osc_page didn't successfully deleted from the radix tree, I'm just working on a workaround here as the customer find out certain version kernel does not have this issue while some does, so I'd guess that certain version kernel has some bug in the radix tree implementation.
owner Zhenyu Xu · uploader Zhenyu Xu · PS9 uploaded 435d ago · NEW · backport · open in Gerrit ↗
commit message
LU-19037 osc: initialize osc_object::oo_tree

Initialize the radix tree of osc_object::oo_tree.

Lustre-change: https://review.whamcloud.com/59340
Lustre-commit: 1f4d2013929bd61f775e6c98a4122fe143b4242b

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: I77a19cb08ccc52f4eb3457cd3367884b84624054
63678 master J ✗1B ✓T ✗5R 0/2−
LU-19839 llite: add persistent nohybrid I/O flag
mine janitor: 1 test failure unique to this patch — sanity2@zfs:test_119l
1 unique failure 20 unresolved M +124 −5
22d
janitor: 1 test failure unique to this patch — sanity2@zfs:test_119l
enforced failed: review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-subtest-change, review-ldiskfs-ubuntu
20 unresolved thread(s) await your reply — last from Andreas Dilger
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_119lNEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
failed enforced testplatformdetail
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 9.7 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 10.1 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-subtest-change RHEL 9.7 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity-lnet. session
build #127956 SUCCESS · tests all Maloo sessions
no vote yet: Marc Vef, Andreas Dilger
patchsets:
+4 earlier PS1 01-30 PS2 01-30 PS3 01-30 PS4 01-30
PS5 02-03 PS6 02-03 PS7 02-03 Janitor Bot PS8 07-16 Maximilian Dilger PS9 07-22 Maximilian Dilger
threads: 20 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS7 2026-02-04 06:05 Andreas Dilger COMMIT_MSG:15 — (minor) ... so it could also be set and checked via `chattr +t FILE` and `lsattr FILE` commands from e2fsprogs.
Andreas Dilger PS7 · 2026-02-04 06:05
(minor) ... so it could also be set and checked via `chattr +t FILE` and `lsattr FILE` commands from e2fsprogs.
reply PS9 2026-07-28 11:36 Gerrit AI review for Lustre COMMIT_MSG:21 — The "Changes:" list mentions adding LUSTRE_NOTAIL_FL to LUSTRE_FL_USER_MODIFIABLE, but the same hunk also adds LUSTRE_COMPR_FL to that mask
Gerrit AI review for Lustre PS9 · 2026-07-28 11:36
The "Changes:" list mentions adding LUSTRE_NOTAIL_FL to LUSTRE_FL_USER_MODIFIABLE, but the same hunk also adds LUSTRE_COMPR_FL to that mask and removes the duplicate LUSTRE_NOATIME_FL entry. Neither is explained. The COMPR change is an independent server-side behavior change - should it be split into its own patch?

The lustre/utils/lfs.c hunk (skipping the range validation for nohybrid) isn't described either.
reply PS9 2026-07-28 11:36 Gerrit AI review for Lustre COMMIT_MSG:25 — This changes UAPI flag definitions that the MDT interprets, so interop with an older server is worth an explicit test run. Consider adding s
Gerrit AI review for Lustre PS9 · 2026-07-28 11:36
This changes UAPI flag definitions that the MDT interprets, so interop with an older server is worth an explicit test run. Consider adding something like:

    Test-Parameters: testlist=sanity serverversion=2.16.0
reply PS9 2026-07-28 11:36 Gerrit AI review for Lustre lustre_idl.h:1891 — New wire flag, but wirecheck.c and the two wiretest.c copies don't look updated - the neighbouring LUSTRE_*_FL values have CHECK_VALUE_X ent
Gerrit AI review for Lustre PS9 · 2026-07-28 11:36
New wire flag, but wirecheck.c and the two wiretest.c copies don't look updated - the neighbouring LUSTRE_*_FL values have CHECK_VALUE_X entries. Same for LU_LADVISE_NOHYBRID, which needs a CHECK_VALUE next to the other LU_LADVISE_* ones (LU_LADVISE_AHEAD seems to have been missed earlier too).
reply PS9 2026-07-28 11:36 Gerrit AI review for Lustre lustre_idl.h:1919 — The compatibility claim points at the wrong side. Older clients aren't the problem; older servers are.
Gerrit AI review for Lustre PS9 · 2026-07-28 11:36
The compatibility claim points at the wrong side. Older clients aren't the problem; older servers are.

On a pre-patch MDS, LUSTRE_FL_USER_VISIBLE has no NOTAIL bit, so mdt_setattr_unpack() hits

    if (rec->sa_attr_flags & ~LUSTRE_FL_USER_VISIBLE)
            RETURN(-EOPNOTSUPP);

and lfs ladvise -a nohybrid fails with EOPNOTSUPP. Clearing the flag still "succeeds" as a no-op, so the two directions behave differently. Worth stating the required server version here.
reply PS9 2026-07-28 11:36 Gerrit AI review for Lustre lustre_idl.h:1929 — This was asked on patchset 7 and looks unaddressed: adding LUSTRE_COMPR_FL here is unrelated to nohybrid and changes server behavior.
Gerrit AI review for Lustre PS9 · 2026-07-28 11:36
This was asked on patchset 7 and looks unaddressed: adding LUSTRE_COMPR_FL here is unrelated to nohybrid and changes server behavior.

mdt_setattr_unpack() masks with LUSTRE_FL_USER_MODIFIABLE, and osd_attr_set() replaces the whole masked set, so this makes the compression flag both settable and clearable on the MDT inode by any client. Is that intended ahead of the compression work landing?
reply PS7 2026-02-04 06:05 Andreas Dilger lustre_idl.h:1909 — (defect) why is NOATIME being removed?
Andreas Dilger PS7 · 2026-02-04 06:05
(defect) why is NOATIME being removed?
reply PS7 2026-02-04 06:05 Andreas Dilger lustre_idl.h:1917 — Is the COMPR flag really user modifiable or just visible? And does it make sense to allow this to be set before CSDC is landed to master?
Andreas Dilger PS7 · 2026-02-04 06:05
Is the COMPR flag really user modifiable or just visible?  And does it make sense to allow this to be set before CSDC is landed to master?
reply PS7 2026-02-04 06:05 Andreas Dilger lustre_idl.h:1919 — Should this use NOHYBRID?
Andreas Dilger PS7 · 2026-02-04 06:05
Should this use NOHYBRID?
reply PS7 2026-02-04 06:05 Andreas Dilger file.c:5011 — Does this also set the flag directly on the inode, or is the inode here the root or parent directory?
Andreas Dilger PS7 · 2026-02-04 06:05
Does this also set the flag directly on the inode, or is the inode here the root or parent directory?
reply PS8 2026-07-16 22:16 Misc Code Checks Robot (Gatekeeper helper) file.c:5116 — parse ll_file_ioctl():error: Function too hairy. Giving up. 4 seconds
Misc Code Checks Robot (Gatekeeper helper) PS8 · 2026-07-16 22:16
parse ll_file_ioctl():error: Function too hairy.  Giving up. 4 seconds
warn: ll_file_ioctl():Function too hairy.  No more merges.
reply PS9 2026-07-28 11:36 Gerrit AI review for Lustre file.c:4994 — ll_inode2ext_flags() is not a full picture of the file's flags - it rebuilds them from inode->i_flags via ll_inode_to_ext_flags(), which onl
Gerrit AI review for Lustre PS9 · 2026-07-28 11:36
ll_inode2ext_flags() is not a full picture of the file's flags - it rebuilds them from inode->i_flags via ll_inode_to_ext_flags(), which only knows SYNC/NOATIME/APPEND/DIRSYNC/IMMUTABLE/ENCRYPT, plus the PROJINHERIT and (new) NOHYBRID lli_flags bits.

LUSTRE_NODUMP_FL and LUSTRE_NOCOMPR_FL are in LUSTRE_FL_USER_MODIFIABLE but have no i_flags or lli_flags representation, so they come back as 0 here. osd_attr_set() then does a wholesale replace:

    ei->i_flags = (ei->i_flags & ~LDISKFS_OSD_USER_MODIFIABLE) |
                  (attr->la_flags & LDISKFS_OSD_USER_MODIFIABLE);

so those bits get cleared on disk. chattr +d FILE followed by lfs ladvise -a nohybrid FILE should lose the 'd' flag.

The FS_IOC_SETFLAGS path avoids this by calling fileattr_get() first, which fetches body->mbo_flags from the MDT. Should this do the same before OR-ing in LUSTRE_NOHYBRID_FL?

Related: ll_set_project() builds op_attr_flags from ll_xflags_to_ext_flags() and also sets OP_XVALID_FLAGS, so lfs project on a file appears to clear the nohybrid flag for the same reason.
owner Patrick Farrell · uploader Maximilian Dilger · PS9 uploaded 28d ago · NEW · open in Gerrit ↗
commit message
LU-19839 llite: add persistent nohybrid I/O flag

Add a persistent flag to prevent hybrid I/O switching
for specific files. This uses the NOTAIL flag (0x00008000)
which is not used by Lustre/ext4 and unlikely to be used
in the future.

The flag is set via ladvise interface for discoverability
but uses FS_IOC_SETFLAGS internally for implementation.
When set, hybrid I/O will not switch the file from
buffered to direct I/O regardless of I/O size.

Changes:
- Define LUSTRE_NOTAIL_FL and LUSTRE_NOHYBRID_FL
- Add LUSTRE_NOTAIL_FL to LUSTRE_FL_USER_MODIFIABLE
- Implement LU_LADVISE_NOHYBRID using FS_IOC_SETFLAGS
- Update ll_update_inode_flags to handle NOTAIL flag
- Add test_119l to verify nohybrid flag functionality

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6a69293801114e2a3015ed87f2258828922ab767
64127 master J !B ✓T ✓R 1/2
LU-19900 lov: fix DIO with O_APPEND stripe routing
mine 9 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
9 unresolved M +62 −15
22d
9 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
no vote yet from Qian Yingjin, Andreas Dilger, Zhenyu Xu, Timothy Day
janitor run: 3 failing config(s), none unique to this patch — janitor results
build #127719 SUCCESS · tests all Maloo sessions
reviews: Marc Vef +1 2026-07-17 08:28
no vote yet: Qian Yingjin, Andreas Dilger, Zhenyu Xu, Timothy Day
patchsets: PS1 02-19 PS2 02-19 PS3 02-20 PS4 06-02 Marc Vef PS5 07-17 Marc Vef
threads: 9 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre COMMIT_MSG:33 — This paragraph describes a change that does not seem to be in the diff. lustre/lov/lov_page.c isn't touched, and lov_page_init_composite()
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
This paragraph describes a change that does not seem to be in the diff.  lustre/lov/lov_page.c isn't touched, and lov_page_init_composite() has no append exception either before or after this commit:

    stripe_cached = lio->lis_cached_entry != LIS_CACHE_ENTRY_NONE &&
                    page->cp_type == CPT_TRANSIENT;

Was this paragraph left over from an earlier version of the patch?
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre COMMIT_MSG:36 — This fixes wrong-stripe routing and a wrong file size, so a Fixes: tag would help decide which maintenance branches need it. The "DIO is al
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
This fixes wrong-stripe routing and a wrong file size, so a Fixes: tag would help decide which maintenance branches need it.  The "DIO is already split by stripe" assumption that this patch repairs was introduced by:

    Fixes: d31647c017a3 ("LU-13799 lov: Improve DIO submit")

That commit made lov_io_submit() splice every DIO page onto the stripe of the first page, and 14db1faa0fbe ("LU-13799 lov: Cache stripe offset calculation") then extended the same assumption to the per-page stripe cache.  The assumption never held for the append path.
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre lov_io.c:1237 — The clamp to the component extent lives inside this branch, so nothing bounds the batch when the component at `start` has a single stripe.
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
The clamp to the component extent lives inside this branch, so nothing bounds the batch when the component at `start` has a single stripe.  For a layout like `-E 1M -c 1 -E -1 -c 4`, a 4MB DIO append from offset 0 gets no split at all and the batch crosses the component boundary; lov_page_init_composite() then hits

    if (!lov_io_layout_at_confirm(lio, entry, offset))
            return -ENODATA;

for the pages past 1M and the write fails.

The non-append path below clamps unconditionally - it starts at MAX_LFS_FILESIZE and applies min(next, lse->lsme_extent.e_end) outside the stripe_count test.  Should this do the same, so the commit message's "matching what the non-append path already does" actually holds?
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre lov_io.c:1245 — lio->lis_io_endpos is an absolute file offset set once in lov_io_init():
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
lio->lis_io_endpos is an absolute file offset set once in lov_io_init():

    lio->lis_io_endpos = crw_pos + crw_bytes;

For append that crw_pos is only the estimate taken in ll_file_io_generic(); the offset the write actually lands at is chosen later by vvp_io_write_start() from i_size_read().  After the first iteration `start` tracks that real position, so if the file grew in the meantime `start` can run past lis_io_endpos.

Two consequences: the loop stops once next reaches lis_io_endpos even though bytes remain in the iov_iter (short write from an O_APPEND write(), where before the patch the whole count went out in one iteration), and on the next line `next - start` goes negative into the size_t crw_bytes.

Should the append path clamp against the number of bytes still outstanding rather than an absolute endpos, and guard next >= start?
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre lov_io.c:1246 — Setting ci_continue here turns a single append iteration into several, and cl_io_loop() drops the lock between them:
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
Setting ci_continue here turns a single append iteration into several, and cl_io_loop() drops the lock between them:

    cl_io_lock() -> cl_io_start() -> cl_io_end() -> cl_io_unlock()

vvp_io_write_lock() takes [0, wr_append_lockpos] PW for append precisely so the whole write lands atomically at EOF, and vvp_io_write_start() re-reads i_size_read() under that lock on every iteration.  With the split, another client can revoke the lock and append between our iterations, so a single 4MB O_APPEND write() can end up with a foreign client's data interleaved in the middle of it.

Is there a way to keep the append as one locked iteration and instead bound the cl_dio_pages batch itself (in ll_direct_IO()/cl_dio_pages_init()) at the stripe boundary?
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre lov_io.c:1699 — This contradicts the assertion 14 lines above, which says the opposite about the same queue:
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
This contradicts the assertion 14 lines above, which says the opposite about the same queue:

    /* it could only be mirror read to get here therefore
     * the pages will be transient. */
    LASSERT(page->cp_type == CPT_TRANSIENT);

If transient pages genuinely never reach lov_io_submit(), that earlier LASSERT can never be satisfied and would LBUG the client on any buffered read that lands on an uninstantiated component.  Worth resolving one way or the other while this function is being touched.
reply PS3 2026-06-15 08:33 Marc Vef sanity.sh:31007 — Andreas, out of interest, do you have some more info on this as to why?
Andreas Dilger PS3 · 2026-05-08 07:25
I read that `drop_caches` is not considered reliable.  It might be better to use `cancel_lru_locks osc`.
Marc Vef PS3 · 2026-06-15 08:33
Andreas, out of interest, do you have some more info on this as to why?
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre sanity.sh:31807 — There is no OST count precondition, so on a single-OST setup `-c 2` silently yields one stripe and the test passes without exercising anythi
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
There is no OST count precondition, so on a single-OST setup `-c 2` silently yields one stripe and the test passes without exercising anything.  Consider:

    (( OSTCOUNT >= 2 )) || skip_env "needs at least 2 OSTs"

Also, the file is empty here, so the append starts at offset 0 and is already stripe aligned.  Appending to a file that is not a multiple of the stripe size (say seed it with 512KB first) is the case where the split has to get the first partial stripe right.
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre sanity.sh:31821 — Both md5sums read the same OST data - the first one populates the page cache from the OSTs after the DIO write - so this compares the file a
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
Both md5sums read the same OST data - the first one populates the page cache from the OSTs after the DIO write - so this compares the file against itself rather than against what was written.  Writing from a temp file (or `dd`ing a known pattern) and comparing that checksum would actually catch mis-routed data; right now only the size check can fail.

On a related note, the earlier suggestion on this hunk to use `cancel_lru_locks osc` instead of drop_caches doesn't appear to have been picked up in the current revision.
owner Patrick Farrell · uploader Marc Vef · PS5 uploaded 33d ago · NEW · open in Gerrit ↗
commit message
LU-19900 lov: fix DIO with O_APPEND stripe routing

When a file is opened with O_APPEND and written via
direct IO, all data is incorrectly routed to stripe 0
instead of being distributed across stripes.

The root cause is that lov_io_rw_iter_init() does not
split append writes at stripe boundaries.  Each DIO
iteration processes a cl_dio_pages batch, which
lov_dio_pages_init_composite() assigns to a single
stripe.  Without splitting, the entire write goes to
one stripe, causing incorrect file sizes (e.g. 7MB
instead of 4MB for a 4MB write to a 2-stripe file)
and data corruption.

Fix by adding stripe boundary splitting to the append
path of lov_io_rw_iter_init(), matching what the
non-append path already does.  Each iteration now
covers at most one stripe_size worth of data, so
lov_dio_pages_init_composite() correctly assigns each
batch to a single stripe.

Also add an LASSERT in lov_io_submit() confirming
that DIO pages (CPT_TRANSIENT) never reach that path
- they use lov_dio_submit() instead.

Also revert the append exception for the DIO stripe
cache in lov_page_init_composite() since it is no
longer needed now that iterations are single-stripe.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I66304a6692eaab9c68a03159e51cf3d27c465a83
52382 master J ✗59B ✗T –R 0/2
LU-13814 osc: assert transfer pages identical
mine build failure (#112985)
59 unique failures S +33 −0
30d
build failure (#112985)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 34 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 7 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 34 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 6 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 9 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 17 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 17 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 17 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 17 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 7 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 7 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 23 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 7 other reviews
sanity1@zfs:test_56xseen in 39 other reviews
sanity1@zfs:test_56xBseen in 11 other reviews
sanity1@zfs:test_56xaseen in 39 other reviews
sanity1@zfs:test_56xabseen in 8 other reviews
sanity1@zfs:test_56xcseen in 35 other reviews
sanity1@zfs:test_56ejseen in 11 other reviews
sanity2@zfs:test_119eseen in 18 other reviews
sanity2@zfs:test_119fseen in 17 other reviews
sanity2@zfs:test_119gseen in 17 other reviews
sanity2@zfs:test_119hseen in 17 other reviews
sanity2@zfs:test_119pseen in 7 other reviews
sanity2@zfs:test_119qseen in 7 other reviews
sanity2@zfs:test_398oseen in 22 other reviews
sanity2@zfs:test_398sseen in 7 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 26 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 10 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 71 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 30 other reviews
sanity-flr@zfs:test_0gseen in 33 other reviews
sanity-flr@zfs:test_0hseen in 35 other reviews
sanity-flr@zfs:test_0jseen in 34 other reviews
sanity-flr@zfs:test_36dseen in 32 other reviews
sanity-flr@zfs:test_37seen in 36 other reviews
sanity-flr@zfs:test_38seen in 33 other reviews
sanity-flr@zfs:test_44bseen in 9 other reviews
sanity-flr@zfs:test_61aseen in 40 other reviews
sanity-flr@zfs:test_61cseen in 33 other reviews
sanity-flr@zfs:test_70aseen in 60 other reviews
sanity-flr@zfs:test_200aseen in 33 other reviews
sanity-flr@zfs:test_200bseen in 33 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 11 other reviews
sanity-hsm@zfs:test_607bseen in 11 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 29 other reviews
sanityn@zfs:test_16jseen in 32 other reviews
build #112985 FAILURE
patchsets:
+13 earlier PS1 09-15 PS2 09-15 PS3 09-15 PS4 09-15 PS5 09-16 PS6 09-25 PS7 09-26 PS8 09-26 PS9 10-05 PS10 10-05 PS11 10-20 PS12 10-22 PS13 10-22
PS14 12-26 PS15 02-27 PS16 10-28 PS17 11-03 PS18 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS18 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: assert transfer pages identical

At this point, we're about to stop using cl_page for DIO,
and the transfer pages created with the cl_page and those
created separately for DIO should be identical.

Let's assert that for every value.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6c71f6c2a3e48a65f5abb18d7beb0699f7577d92
52776 master J !B ✓T ✓R 0/2−
LU-13802 llite: add file nonrotational check
mine needs rebase — checkpatch: cannot be cherry-picked
hio 1 unresolved S +17 −2
58d
needs rebase — checkpatch: cannot be cherry-picked
1 unresolved thread(s) await your reply — last from Andreas Dilger
CI green — no vote yet from Marc Vef, Shaun Tancheff, Andreas Dilger
janitor run: 13 failing config(s), none unique to this patch — janitor results
6 optional test failure(s) — informational
build #124324 SUCCESS · tests all Maloo sessions
no vote yet: Marc Vef, Shaun Tancheff, Andreas Dilger
patchsets:
+16 earlier PS1 10-20 PS2 10-20 PS3 10-20 PS4 10-24 PS5 10-24 PS6 01-16 PS7 01-16 PS8 02-10 PS9 02-12 PS10 02-12 PS11 02-12 PS12 02-13 PS13 02-13 PS14 03-13 PS15 03-13 PS16 03-21
PS17 03-21 PS18 03-27 PS19 04-01 PS20 04-23 Marc Vef PS21 04-23 Marc Vef
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS19 2026-04-26 02:56 Andreas Dilger cl_object.h:1963 — Actually, an OST is (generally) only going to be rotational or non-rotational, and this is already returned to the client via statfs, so the
Andreas Dilger PS19 · 2024-04-11 23:20
We aggregate attributes from multiple objects for other reasons (e.g. maxbytes, timestamps, size, etc.).

The current implementation looks "mostly OK" and will work for basic linear IO patterns, where the file transitions from non-rotational to rotational.  However, any other kind of IO pattern (e.g. HDF5 where some writes are at the beginning of the file and others at the end) might have a serious issue?

IMHO, it would be better to aggregate this information once from the object (maybe from the OSC's the object is allocated on) and then be done with it?  Storing a threshold when the file transitions from non-rotational to rotational would be best, as this could be computed once based on the layout.  It is fairly unlikely that a file would have HDD stripes in the middle and flash at the beginning and end.

Alternately (probably better) is to store the nonrot state in each layout component (which is a perfect 1:1 mapping), and then this can be checked at IO submission time to see what type of storage it is covering.
Patrick Farrell PS19 · 2024-04-11 23:58
Hm, OK.  I don't think we can do this as easily as we'd like - the issue is we have to have this information very early.  I can consider this, though, your points are good ones.

The good thing is this isn't essential to merging the core feature, particularly since we're leaving it off by default for 2.16.
Andreas Dilger PS19 · 2026-04-26 02:56
Actually, an OST is (generally) only going to be rotational or non-rotational, and this is already returned to the client via statfs, so the clients should have full knowledge whether any IO is on flash or disk.
owner Patrick Farrell · uploader Marc Vef · PS21 uploaded 118d ago · NEW · open in Gerrit ↗
commit message
LU-13802 llite: add file nonrotational check

This patch adds the ability to note whether or not the
last IO to a file hit a rotational or a non-rotational
device.

This will be used in selecting the cutover thresholds for
hybrid IO, since DIO is synchronous and much slower on
spinning disk.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Marc Vef <mvef@whamcloud.com>
Change-Id: I75a9970f91b1776ed6f04ac0d000a9ba576df75a
59801 master J !B ✗T –R 2/2−
LU-19109 llite: remove extra vvp_env_new_io call
mine needs rebase — checkpatch: cannot be cherry-picked
1 unresolved S +9 −5
72d
needs rebase — checkpatch: cannot be cherry-picked
build aborted (#114406)
1 unresolved thread(s) await your reply — last from Marc Vef
janitor run: 2 failing config(s), none unique to this patch — janitor results
build #114406 ABORTED
reviews: Marc Vef +1 2025-06-17 16:32 · Timothy Day +1 2025-06-17 16:37
no vote yet: Andreas Dilger
patchsets: PS1 06-17 PS2 06-17 PS3 06-17 PS4 06-17
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS3 2025-06-17 16:24 Marc Vef file.c:2193 — I was wondering if the Janitor flags this. Technically, I don't think we can get here since `rc` would be -ENOMEM if we jumped out in line :
Lustre Gerrit Janitor PS3 · 2025-06-17 16:14
error: 'io' may be used uninitialized in this function [-Werror=maybe-uninitialized]
Marc Vef PS3 · 2025-06-17 16:24
I was wondering if the Janitor flags this. Technically, I don't think we can get here since `rc` would be -ENOMEM if we jumped out in line :2006 where `io` would not be set yet.

Looks like that still needs to be fixed (compile failed). I guess it'd be easiest to keep the first call to `vvp_env_new_io()` and drop the second one?
owner Patrick Farrell · uploader Patrick Farrell · PS4 uploaded 428d ago · NEW · open in Gerrit ↗
commit message
LU-19109 llite: remove extra vvp_env_new_io call

vvp_env_new_io is called twice in ll_file_io_generic, which
is confusing since the second call overwrites the first.

Fix this and a cleanup path mistake, where we assume the
IO was set up after the call to vvp_env_new_io, which is
wrong.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6186e17db8b04f01fd37ea7ac5d4b69b30d0258c
64937 master J –B ✗T –R 1/2−
LU-20016 ec: ISA-L SIMD for userspace and kernel
mine build failure (#122958)
25 unresolved XL +36039 −19
97d
build failure (#122958)
Andreas Dilger voted -1
25 unresolved thread(s) await your reply — last from Andreas Dilger
build #122958 FAILURE
reviews: Ronnie Sahlberg +1 2026-03-27 21:35 · Andreas Dilger -1 2026-04-06 21:18
no vote yet: Qian Yingjin, Hiroshi Nishida, Marc Vef
patchsets: PS1 03-27 PS2 03-27 PS3 03-27
threads: 25 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-03-29 08:52 Andreas Dilger COMMIT_MSG:14 — It would make sense to put an LLM to work on converting the NASM .asm files int GCC .S files. It should be possible to have it iterate on g
Andreas Dilger PS1 · 2026-03-29 08:52
It would make sense to put an LLM to work on converting the NASM .asm files int GCC .S files.  It should be possible to have it iterate on getting the GCC-compiled code to generate the same x86 byte code, or at least compile and run correctly to pass whatever correctness tests exist for this code. 

In fact, a quick search shows that NASM already has a tool to do this:

    Automatically convert Intel NASM assembly to GNU Assembler (GAS/GASM)
    syntax using the intel2gas tool, which converts between NASM and AT&T
    syntax, or by utilizing NASM's built-in output capabilities to generate
    GAS-compatible objects.
    
    $ intel2gas -i input.asm -o output.s

These generated/converted .S files should be stored alongside the original .asm files in Git.  If NASM is available the originals can be compiled, but in the common case where NASM is not available the .S files would be compiled and linked into the kernel modules.

I think it is worthwhile to keep both, since it would be easier to update the .asm files from upstream ISA-L, but it might be some time before the .S files are update to match.
reply PS1 2026-03-29 08:52 Andreas Dilger COMMIT_MSG:26 — Are these bugs in the upstream ISA-L code that should be pushed back to them?
Andreas Dilger PS1 · 2026-03-29 08:52
Are these bugs in the upstream ISA-L code that should be pushed back to them?
reply PS1 2026-03-29 08:52 Andreas Dilger COMMIT_MSG:28 — Similarly, is this code from upstream ISA-L, or a test wrapper that we developed?
Andreas Dilger PS1 · 2026-03-29 08:52
Similarly, is this code from upstream ISA-L, or a test wrapper that we developed?
reply PS3 2026-04-06 21:18 Andreas Dilger COMMIT_MSG:7 — This should probably use LU-19905, or change the description of LU-20016?
Andreas Dilger PS3 · 2026-04-06 21:18
This should probably use LU-19905, or change the description of LU-20016?
reply PS3 2026-05-13 00:10 Andreas Dilger COMMIT_MSG:71 — This table is the same between the x86 and aarch64 patches. It would be useful to fix one or the other to have the correct data for that CP
Andreas Dilger PS3 · 2026-05-13 00:10
This table is the same between the x86 and aarch64 patches.  It would be useful to fix one or the other to have the correct data for that CPU architecture.
reply PS1 2026-03-29 08:52 Andreas Dilger lustre-erasurecode.m4:23 — (minor) this should have a warning that the C version may only be 1/20-1/30th as fast, at least until the .S versions are available.
Andreas Dilger PS1 · 2026-03-29 08:52
(minor) this should have a warning that the C version may only be 1/20-1/30th as fast, at least until the .S versions are available.
reply PS3 2026-04-06 21:18 Andreas Dilger ec_aarch64_neon.c:17 — (minor) It would be better to specify which kernel version is non-functional, so that this can become conditional upon a newer kernel (assum
Andreas Dilger PS3 · 2026-04-06 21:18
(minor) It would be better to specify which kernel version is non-functional, so that this can become conditional upon a newer kernel (assuming there is a benefit to use SVE-optimized versions).
reply PS3 2026-04-06 21:18 Andreas Dilger ec_aarch64_neon.c:20 — (minor) Again, please specify kernel versions so that this can be fixed in the future for newer kernel versions.
Andreas Dilger PS3 · 2026-04-06 21:18
(minor) Again, please specify kernel versions so that this can be fixed in the future for newer kernel versions.
reply PS3 2026-04-06 21:18 Andreas Dilger ec_aarch64_neon.c:31 — (style) `bool`?
Andreas Dilger PS3 · 2026-04-06 21:18
(style) `bool`?
reply PS3 2026-04-06 21:18 Andreas Dilger ec_aarch64_neon.c:34 — These warnings are correct and the prototypes should be moved to a .h file that is included here and into the file where these functions are
wc-checkpatch PS3 · 2026-03-27 13:45
(style)  externs should be avoided in .c files
Andreas Dilger PS3 · 2026-04-06 21:18
These warnings are correct and the prototypes should be moved to a .h file that is included here and into the file where these functions are implemented.  Having the function prototype in a local .c file prevents the compiler from checking argument type/count against the implementation, and can result in hard-to-find bugs in the future.
reply PS3 2026-04-06 21:18 Andreas Dilger ec_aarch64_neon.c:87 — (defect?) According to the comments for `kernel_neon_begin()`:
Andreas Dilger PS3 · 2026-04-06 21:18
(defect?) According to the comments for `kernel_neon_begin()`:
```
 * Unless called from non-preemptible task context, @state must point to a
 * caller provided buffer that will be used to preserve the task's kernel mode
 * FPSIMD context when it is scheduled out, or if it is interrupted by kernel
 * mode FPSIMD occurring in softirq context. May be %NULL otherwise.
 */
void kernel_neon_begin(struct user_fpsimd_state *state)
```
I'm thinking that this would be declared on the stack in e.g. `gf_vect_dot_prod()` and passed to `ec_neon_usable()->kernel_neon_begin()` so that it can also be passed (as required) to `kernel_neon_end()`:
```
 * The value of @state must match the value passed to the preceding call to     
 * kernel_neon_begin().
 */
void kernel_neon_end(struct user_fpsimd_state *state)
```

The `struct user_fpsimd_state` is 528 bytes, so a _bit_ heavy to put on the stack, but at the same time this is (very likely) to be on a PAGE_SIZE=64KiB system so stack space should be available for this, and it will not have a deep call chain below this point.  I think doing a `kmalloc()` and `kfree()` for each call would add noticeable overhead and should be avoided it possible.  Alternatives would include having a dedicated slab for this, so that there is a per-CPU cache (528 does not fit into standard slabs well) and it likely has local allocations objects cached in the slab.
reply PS3 2026-04-06 21:18 Andreas Dilger ec_aarch64_neon.c:165 — (style) should this be changed to `rows >= 6` and remove the `case 6:` in the switch, as is done in `ec_encode_data_neon()` above?
Andreas Dilger PS3 · 2026-04-06 21:18
(style) should this be changed to `rows >= 6` and remove the `case 6:` in the switch, as is done in `ec_encode_data_neon()` above?
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 145d ago · NEW · open in Gerrit ↗
commit message
LU-20016 ec: ISA-L SIMD for userspace and kernel

Integrate Intel ISA-L optimized assembly into Lustre's
erasure coding library for both userspace and kernel,
on x86_64 and aarch64. Add debugfs kernel benchmark
for measuring FPU save/restore overhead.

Userspace x86_64 (libec.a):
- 72 NASM assembly files (SSE/AVX/AVX2/AVX-512/GFNI)
- ec_multibinary.asm: runtime CPUID dispatch
- ec_highlevel_func.c: N-vector dispatch layer
- Falls back to C scalar when NASM unavailable

Userspace aarch64 (libec.a):
- NEON + SVE .S assembly + SVE C intrinsics
- ec_aarch64_dispatcher.c: getauxval() dispatch
- ec_aarch64_highlevel_func.c: N-vector dispatch

Kernel x86_64 (ec.ko):
- Pre-assemble ISA-L NASM .asm files into .o,
  link into ec.ko (71 assembly objects)
- ec_dispatch.c: boot_cpu_has() selects AVX2/AVX/SSE
  at module init, kernel_fpu_begin/end wrapping
- ec_highlevel_func.c: N-vector dispatch layer
- Falls back to C scalar in interrupt context

Kernel aarch64 (ec.ko):
- NEON .S assembly files (GAS format, direct kbuild)
- ec_aarch64_neon.c: kernel_neon_begin/end wrapping
  with may_use_simd() check, hwcap detection
- SVE excluded from kernel (toolchain portability)

Build system:
- lustre-erasurecode.m4: detect NASM, aarch64
- erasurecode/autoMakefile.am: three-way dispatch
- utils/Makefile.am: link against libec.a
- ec/Makefile.in: NASM pre-assembly for kernel

Bug fixes in ec_perf_bench.c:
- -p flag was setting k instead of p
- frag_ptrs allocated stripe_size pointers not m
- Inverted exit code and stale rc from getopt
- Use aligned_alloc(64) for data buffers

Kernel benchmark (debugfs):
- /sys/kernel/debug/lustre/ec/benchmark
- 4 phases: FPU overhead, SIMD+FPU per-call,
  SIMD+FPU amortized, C scalar baseline
- Input format (write to debugfs entry):
    echo 1 > .../ec/benchmark        (defaults)
    echo "k=5 p=2 s=128" > .../ec/benchmark
    cat .../ec/benchmark
  Parameters (key=value, space separated):
    k  data stripes     (default 5, max k+p=16)
    p  parity stripes   (default 2)
    s  stripe size in KB (default 128, max 65536)
  "echo 1" runs with all defaults. Unrecognized
  input returns -EINVAL. cat shows results or
  usage instructions if not yet run.

Fix gf_vect_mul_init naming to use _base suffix
consistently (aligns with ISA-L convention) in
both userspace and kernel ec_base.c.

Performance (5+2, 1 thread, QEMU VM, AVX2):

Stripe | Kernel  | Kernel  | Userspace | SIMD     | Kernel vs
Size   | SIMD    | Scalar  | SIMD      | Speedup  | Userspace
       |         |         |           | in Kernel|
-------|---------|---------|-----------|----------|----------
 64 KB | 17099   | 540     | 404345*   | 31.7x    | 0.04x*
128 KB | 16888   | 531     | 197511*   | 31.8x    | 0.09x*
256 KB | 17032   | 539     | 98401*    | 31.6x    | 0.17x*
  1 MB | 17142   | 538     | 24830     | 31.9x    | 0.69x
  4 MB | 10309   | 533     | 5385      | 19.3x    | 1.91x
 16 MB | 10954   | 534     | 1048      | 20.5x    | 10.5x

All throughput in MB/s. (*) Userspace numbers at
small stripes are inflated by cache residency.
At 4-16MB the kernel is faster -- its kvmalloc
pages are physically scattered, matching real
Lustre page cache behavior. Replicating this in
userspace is non-trivial and not worth the effort;
the kernel benchmark is authoritative.

FPU save/restore overhead was measured at 25-54 ns
on this platform (Ryzen 3700X) -- negligible vs
encode time (~39us at 128KB). The benchmark
measures this separately (Phase 1) so it can be
characterized on other hardware where it may be
more significant.

Generated with Claude Code + Tools

Test-Parameters: testlist=sanity-ec
Change-Id: If4c57c328c0e23bb6769dcbc45d52d43b03a7837
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
64938 master J !B ✗T –R 0/2
LU-20016 ec: kernel SIMD, aarch64 support, benchmark
mine build failure (#122956)
1 unresolved XL +14347 −20
98d
build failure (#122956)
1 unresolved thread(s) await your reply — last from Andreas Dilger
janitor run: build failed — no tests ran — janitor results
build #122956 FAILURE
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-05-13 00:17 Andreas Dilger COMMIT_MSG:7 — This should use LU-19905.
Andreas Dilger PS1 · 2026-05-13 00:17
This should use LU-19905.
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 145d ago · NEW · open in Gerrit ↗
commit message
LU-20016 ec: kernel SIMD, aarch64 support, benchmark

Add kernel-space SIMD erasure coding via ISA-L's
proven NASM assembly (pre-assembled at build time)
and aarch64 NEON assembly. Add debugfs benchmark
for measuring FPU save/restore overhead.

Kernel x86_64 (ec.ko):
- Pre-assemble ISA-L NASM .asm files into .o,
  link into ec.ko (71 assembly objects)
- ec_dispatch.c: boot_cpu_has() selects AVX2/AVX/SSE
  at module init, kernel_fpu_begin/end wrapping
- ec_highlevel_func.c: N-vector dispatch layer
- Falls back to C scalar in interrupt context

Kernel aarch64 (ec.ko):
- NEON .S assembly files (GAS format, direct kbuild)
- ec_aarch64_neon.c: kernel_neon_begin/end wrapping
  with may_use_simd() check, hwcap detection
- SVE excluded from kernel (toolchain portability)

Userspace aarch64 (libec.a):
- NEON + SVE .S assembly + SVE C intrinsics
- ec_aarch64_dispatcher.c: getauxval() dispatch
- ec_aarch64_highlevel_func.c: N-vector dispatch

Kernel benchmark (debugfs):
- /sys/kernel/debug/lustre/ec/benchmark
- 4 phases: FPU overhead, SIMD+FPU per-call,
  SIMD+FPU amortized, C scalar baseline
- Input format (write to debugfs entry):
    echo 1 > .../ec/benchmark        (defaults)
    echo "k=5 p=2 s=128" > .../ec/benchmark
    cat .../ec/benchmark
  Parameters (key=value, space separated):
    k  data stripes     (default 5, max k+p=16)
    p  parity stripes   (default 2)
    s  stripe size in KB (default 128, max 65536)
  "echo 1" runs with all defaults. Unrecognized
  input returns -EINVAL. cat shows results or
  usage instructions if not yet run.

Performance (5+2, 1 thread, QEMU VM, AVX2):

Stripe | Kernel  | Kernel  | Userspace | SIMD     | Kernel vs
Size   | SIMD    | Scalar  | SIMD      | Speedup  | Userspace
       |         |         |           | in Kernel|
-------|---------|---------|-----------|----------|----------
 64 KB | 17099   | 540     | 404345*   | 31.7x    | 0.04x*
128 KB | 16888   | 531     | 197511*   | 31.8x    | 0.09x*
256 KB | 17032   | 539     | 98401*    | 31.6x    | 0.17x*
  1 MB | 17142   | 538     | 24830     | 31.9x    | 0.69x
  4 MB | 10309   | 533     | 5385      | 19.3x    | 1.91x
 16 MB | 10954   | 534     | 1048      | 20.5x    | 10.5x

All throughput in MB/s. (*) Userspace numbers at
small stripes are inflated by cache residency.
At 4-16MB the kernel is faster -- its kvmalloc
pages are physically scattered, matching real
Lustre page cache behavior. Replicating this in
userspace is non-trivial and not worth the effort;
the kernel benchmark is authoritative.

FPU save/restore overhead was measured at 25-54 ns
on this platform (Ryzen 3700X) -- negligible vs
encode time (~39us at 128KB). The benchmark
measures this separately (Phase 1) so it can be
characterized on other hardware where it may be
more significant.

Generated with Claude Code + Tools

Test-Parameters: testlist=sanity-ec
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Id37586461376ab266c61ed541473279f83c790ff
63198 master J –B ✗T –R 0/2−
LU-19744 doc: bulk man page review
mine needs rebase — checkpatch: cannot be cherry-picked
stalled 100d L +309 −281
100d
needs rebase — checkpatch: cannot be cherry-picked
build failure (#120070)
build #120070 FAILURE
patchsets: PS1 12-29 PS2 12-29
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 233d ago · NEW · open in Gerrit ↗
commit message
LU-19744 doc: bulk man page review

Bulk review done by Augment and Claude Code.

Completed systematic review of Section 3 library function
man pages (llapi_*), fixing grammar, formatting, function
signature errors, and SEE ALSO ordering throughout all
123 pages.

Major sections reviewed:
- Changelog API (8 pages)
- File Operations (13 pages)
- Filesystem Info (9 pages)
- Locking (2 pages)
- Heat/IO Hints (3 pages)
- HSM (11 pages)
- Layout API (30 pages)
- Misc API (8 pages)
- PCC (12 pages)
- Project Quota (8 pages)
- Quota (1 page)
- Remove by FID (2 pages)
- Search/Discovery (6 pages)
- Foreign Files (1 page)

Critical signature fixes found during careful review:

PCC (Persistent Client Cache):
- llapi_pcc_detach_fid_fd.3: removed documentation for
  non-existent llapi_pcc_detach_fid_fd() function
- llapi_pccdev_get.3: fixed parameter name (path->mntpath)
- llapi_pccdev_set.3: fixed parameter name (path->mntpath)

Project Quota:
- llapi_project_fgetprjid.3: added missing 'struct' keyword
- llapi_project_get.3: added missing 'struct' keyword
- llapi_project_getprjid.3: fixed parameter type
  (const unsigned int->__u32)
- llapi_project_open.3: fixed double pointer (*hdl->**hdl)
- llapi_project_put.3: added missing 'struct' keyword

Search/Discovery:
- llapi_root_path_open.3: fixed parameter name (fd->outfd)
- llapi_search_rootpath.3: added missing semicolons
- llapi_search_tgt.3: fixed parameter names
  (pool_name->poolname, tgt_name->tgtname/mdtname/ostname)

Foreign Files:
- llapi_unlink_foreign.3: fixed parameter name (name->dname)

Other improvements:
- Fixed grammar, capitalization, and formatting throughout
- Corrected function parameter types and names
- Fixed missing error codes in ERRORS sections
- Improved consistency in RETURN VALUES sections
- Fixed typos and awkward phrasing
- Sorted SEE ALSO sections alphabetically (31 files)

All signature changes verified against source code in
lustre/utils/liblustreapi*.c and
lustre/include/lustre/lustreapi.h

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I643e4b2ad2d00b5ebf58d4136d1524bd92b7cb5d
62868 master J ✗1B ✗T –R 0/2−
LU-12187 llite: enable FLR EC support unconditionally
mine needs rebase — checkpatch: cannot be cherry-picked
1 unique failure ec2 pt_ecro stalled 100d S +5 −26
100d
needs rebase — checkpatch: cannot be cherry-picked
build failure (#119174)
janitor: 1 test failure unique to this patch — recovery-small@zfs:test_155
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
build #119174 FAILURE
no vote yet: Marc Vef
tags: pt_ecro
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 259d ago · NEW · open in Gerrit ↗
commit message
LU-12187 llite: enable FLR EC support unconditionally

Remove module parameter guards and enable FLR EC support
unconditionally. This patch is intended to be applied
after the guarded development phase is complete.

Changes:
- Remove mdt_enable_flr_ec module parameter
- Remove llite_enable_flr_ec module parameter
- Add OBD_CONNECT2_FLR_EC unconditionally to client
  connect flags
- Change ll_enable_erasure_coding default from 0 to 1
- Remove MODOPTS_MDT and MODOPTS_LLITE settings from
  test framework

Test-Parameters: ignore
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I431d309f85c8964e13a11eaaa729d944e9228c29
62489 master J ✓B ✓T ✗3R 0/2−
LU-19566 tests: test EC with lfsck
mine needs rebase — checkpatch: cannot be cherry-picked
ec2 pt_ecro stalled 100d M +133 −0
100d
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-subtest-change, review-dne-zfs-subtest-change, review-ldiskfs-dne-arm
Marc Vef voted -1
failed enforced testplatformdetail
review-dne-subtest-change crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity-lfsck. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-subtest-change crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity-lfsck. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-dne-arm RHEL 8.10 / x86_64, Rocky 9.5 / aarch64 ran 5 tests. 1 tests failed: sanity-lnet. session
build #123110 SUCCESS · tests all Maloo sessions
reviews: Marc Vef -1 2026-04-02 10:19
patchsets: PS1 11-11 PS2 11-11 PS3 03-30 Marc Vef
your previous vote: -1 on PS2 (2025-11-11 21:52) — now at PS3
tags: pt_ecro
owner Patrick Farrell · uploader Marc Vef · PS3 uploaded 142d ago · NEW · open in Gerrit ↗
commit message
LU-19566 tests: test EC with lfsck

EC parity mirror components do not contain regular
file data, so it's essential they be recognized as
parity components after an lfsck repair.

This test verifies this functionality.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I0384d7676043cc23f52da7df41385dc61809114a
62389 master J !B ✓T ✗2R 0/2−
LU-19566 lustre: add layout flags to lfsck
mine needs rebase — checkpatch: cannot be cherry-picked
ec2 pt_ecro stalled 100d 19 unresolved L +458 −98
100d
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-part-3
Marc Vef voted -1
19 unresolved thread(s) await your reply — last from Andreas Dilger
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
6 optional test failure(s) — informational
build #123276 SUCCESS · tests all Maloo sessions
reviews: Marc Vef -1 2026-04-02 10:21
no vote yet: Lai Siyao, Andreas Dilger
patchsets:
+9 earlier PS1 11-05 PS2 11-05 PS3 11-06 PS4 11-07 PS5 11-07 PS6 11-07 PS7 11-08 PS8 11-08 PS9 11-09
PS10 11-11 PS11 11-11 PS12 11-26 PS13 03-30 Marc Vef PS14 03-30 Marc Vef
your previous vote: -1 on PS3 (2025-11-06 23:41) — now at PS14
threads: 19 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS14 2026-04-24 20:42 Andreas Dilger COMMIT_MSG:23 — (typo) field is actually named `ff_comp_flags`
Andreas Dilger PS14 · 2026-04-24 20:42
(typo) field is actually named `ff_comp_flags`
reply PS14 2026-04-24 20:42 Andreas Dilger lustre_fid.h:335 — (style) rather than duplicating this code each time, it should just incrementally decode the new parts:
Andreas Dilger PS14 · 2026-04-24 20:42
(style) rather than duplicating this code each time, it should just incrementally decode the new parts:
```
        } else /* if (size >= sizeof(struct filter_fid_217) */ {
                struct filter_fid_217 *ff_old = (struct filter_fid_217 *)dst;

                ost_layout_cpu_to_le(&ff_old->ff_layout, &src->ff_layout);
                ff_old->ff_layout_version = cpu_to_le32(src->ff_layout_version);
                ff_old->ff_range = cpu_to_le32(src->ff_range);
        }
        if (size >= offsetof(dst->ff_comp_flags) + sizeof(dst->ff_comp_flags)) {
		dst->ff_comp_flags = cpu_to_le32(src->ff_comp_flags);
	}
```
reply PS14 2026-04-24 20:42 Andreas Dilger lustre_fid.h:363 — (style) same as above - process each chunk incrementally instead of duplicating code
Andreas Dilger PS14 · 2026-04-24 20:42
(style) same as above - process each chunk incrementally instead of duplicating code
reply PS14 2026-04-24 20:42 Andreas Dilger lustre_idl.h:3303 — (defect) this comment should not be removed
Andreas Dilger PS14 · 2026-04-24 20:42
(defect) this comment should not be removed
reply PS14 2026-04-24 20:42 Andreas Dilger lustre_idl.h:3295 — Oh, hmm. There was another patch looking to use one of the uid_h fields:
Andreas Dilger PS14 · 2026-04-24 20:42
Oh, hmm.  There was another patch looking to use one of the uid_h fields:
https://review.whamcloud.com/64468 ("LU-18847 mdt: version layout checking")

but it is using the `cr_fsuid_h` field in `struct mdt_rec_create`, so this should be fine.

(style) better to use `enum lov_comp_md_entry_flags` to make it more clear which "flags" these are, and they can be found more easily.  The wirecheck.c code will ensure that the enum size remains consistent.
reply PS14 2026-04-24 20:42 Andreas Dilger lustre_user.h:444 — (minor) I think this is a misnomer to write "for filter_fid", since it is primarily used for components. Maybe `layout flags for components
Andreas Dilger PS14 · 2026-04-24 20:42
(minor) I think this is a misnomer to write "for filter_fid", since it is primarily used for components.  Maybe `layout flags for components and filter_fid`?
reply PS14 2026-04-24 20:42 Andreas Dilger ofd_objects.c:564 — (style) this shouldn't be in the comment here, as it will invariably become outdated in the future
Andreas Dilger PS14 · 2026-04-24 20:42
(style) this shouldn't be in the comment here, as it will invariably become outdated in the future
reply PS14 2026-04-24 20:42 Andreas Dilger ofd_objects.c:662 — (style) should there be a helper function for this, like:
Andreas Dilger PS14 · 2026-04-24 20:42
(style) should there be a helper function for this, like:
```
/* return minimum size of in-use filter_fid to maximize interop with old tools */
size_t filter_fid_sizeof(struct filter_fid *ff)
{
        BUILD_BUG_ON(sizeof(*ff) >
                     sizeof(struct filter_fid_217) + sizeof(ff->ff_comp_flags));
        /* duplicate next chunk when new fields are added to filter_fid */
        /* if (!ff->ff_new_field && ff->ff_previous_last_field)
                return sizeof(struct filter_fid_next); */
        if (!ff->ff_comp_flags /* && ff->ff_layout_version */)
                return sizeof(struct filter_fid_217);
        return sizeof(*ff);
}
```
reply PS14 2026-04-24 20:42 Andreas Dilger ofd_objects.c:854 — (minor) `ff_size = filter_fid_sizeof(ff);`
Andreas Dilger PS14 · 2026-04-24 20:42
(minor) `ff_size = filter_fid_sizeof(ff);`
reply PS14 2026-04-24 20:42 Andreas Dilger ofd_objects.c:880 — (minor) `ff_size = filter_fid_sizeof(ff);`
Andreas Dilger PS14 · 2026-04-24 20:42
(minor) `ff_size = filter_fid_sizeof(ff);`
reply PS14 2026-04-24 20:42 Andreas Dilger pack_generic.c:2843 — (minor) It isn't clear if there is any value to printing this field, especially *always* printing it (maybe vs. only printing it if it is no
Andreas Dilger PS14 · 2026-04-24 20:42
(minor) It isn't clear if there is any value to printing this field, especially *always* printing it (maybe vs. only printing it if it is non-zero for some reason)
reply PS14 2026-04-24 20:42 Andreas Dilger sanity-lfsck.sh:6507 — (minor) update to 2.17.52.52 at least
wc-checkpatch PS14 · 2026-03-30 13:49
(style)  'version_code 2.17' may be misspelled - perhaps 'version 2.16.x should be used'?
Andreas Dilger PS14 · 2026-04-24 20:42
(minor) update to 2.17.52.52 at least
tags: pt_ecro
owner Patrick Farrell · uploader Marc Vef · PS14 uploaded 142d ago · NEW · open in Gerrit ↗
commit message
LU-19566 lustre: add layout flags to lfsck

EC parity mirror components do not contain regular
file data, so it's essential they be recognized as
parity components after an lfsck repair.

They are distinguished by a component flag, so we
must add component flag support to lfsck.

This support can be landed without the rest of EC
support, so this is based on master.  There is a
test for lfsck + EC in:
https://review.whamcloud.com/c/62489

Details:
Extended struct filter_fid from 52 to 56 bytes by
adding __u32 ff_flags field to store component flags
(like LCME_FL_INIT, LCME_FL_PARITY) in OST objects.

Created versioned structure (filter_fid_217) for
backward compatibility with old 52-byte filter_fid.

Modified lu_orphan_rec_v3 to add lor_comp_flags
field (replacing lor_padding_1) to store component
flags from filter_fid. This allows LFSCK to preserve
component flags during reconstruction.

Extended wire protocol by adding o_comp_flags field
to struct obdo (replacing o_padding_4) and added
OBD_MD_FLCOMPFLAGS flag to indicate when component
flags are valid in the obdo.

Updated client to set o_comp_flags in the obdo.

Modified OFD to read o_comp_flags from obdo and
store it in ff_flags during writes, setattr, punch,
and fallocate operations.

Updated LFSCK to read ff_flags from filter_fid and
restore component flags when reconstructing layouts
from orphan OST objects.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I716dbf24db48cc50385a2fa9bcc446d291380814
62863 master J !B ✓T ✓R 1/2−
LU-11509 misc: add script lfru-performance.sh
reviewing kg.xu · PS4→PS13 since your -1 — your objection was dropped
stalled 111d 3 unresolved L +237 −21
111d
janitor run: 4 failing config(s), none unique to this patch — janitor results
4 optional test failure(s) — informational
build #122012 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2026-03-04 00:41
no vote yet: Timothy Day
patchsets:
+8 earlier PS1 12-03 PS2 12-04 PS3 12-05 PS4 12-08 PS5 12-09 PS6 12-09 PS7 12-10 PS8 02-15
PS9 02-21 PS10 02-24 PS11 02-25 PS12 02-28 PS13 03-02
your previous vote: -1 on PS4 (2025-12-08 16:38) — now at PS13
threads: 3 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS13 2026-03-04 00:41 Andreas Dilger COMMIT_MSG:35 — This should actually run the test script to see that it is working:
Andreas Dilger PS13 · 2026-03-04 00:41
This should actually run the test script to see that it is working:
```
Test-Parameters: testlist=lfru-performance
```
I've submitted a manual test session via the `Test Results` page to see if it works.

https://testing.whamcloud.com/test_sessions/related?jobs=lustre-reviews&builds=122012#redirect

Ideally this testing could be run regularly via one of the test scripts (e.g. performance-sanity.sh or sanity-benchmark.sh) to monitor performance over time.  Putting it in a separate test script means that the test framework needs to be modified to run this.
reply PS13 2026-03-06 05:51 kg.xu patchset comment — Ping
kg.xu PS13 · 2026-03-06 05:51
Ping
reply PS13 2026-03-04 00:41 Andreas Dilger ldlm_cache_policy.c:176 — (style) It is better if comments do not contain the actual values in the constants, since that makes it more likely the comments become inco
Andreas Dilger PS13 · 2026-03-04 00:41
(style) It is better if comments do not contain the actual values in the constants, since that makes it more likely the comments become incorrect over time.
owner kg.xu · uploader kg.xu · PS13 uploaded 170d ago · NEW · open in Gerrit ↗
commit message
LU-11509 misc: add script lfru-performance.sh

LFRU was introduced to provide scan-resistant, which was validated in
sanity-test-124g. Furthermore, it ensures that high-priority locks
are more likely to remain in the cache, improving overall system
stability and performance under mixed workloads.

1. A new benchmark test, `lfru-performance.sh`, is introduced to
compare LFRU against LRU. This test simulates a workload where both
hot and cold files are accessed with a 50:50 ratio, involving 800 hot
files and 16,000 cold files, and fixed sized cache size.

The LFRU algorithm reduced the number of lock-RPCs (measured by
`ldlm-enqueue` calls) by ~8% compared to the LRU policy.

| Test Run | LFRU Enqueues | LRU Enqueues | Improvement |
| 1        | 160075        | 174250       | 8%          |
| 2        | 159372        | 175925       | 9%          |
| 3        | 159488        | 174533       | 8%          |
| 4        | 159712        | 175481       | 8%          |
| 5        | 159986        | 174493       | 8%          |

The benchmark results showed that LFRU outperforms LRU in this
mixed-access scenario.

2. Update ldlm_lfru_priv_too_many() so that the eviction
trigger for priv_lock is now primarily based on its ratio to
total_lock_counts. The use of LDLM_DEFAULT_LRU_SIZE is removed.

Signed-off-by: Keguang Xu <squalfof@gmail.com>
Change-Id: I60903947180fb8c2b4e1a74e94cb2c5bb387d9d5
45963 master J !B ✓T ✗1R 1/2−
LU-15069 llite: Clean up bit shift for assert
mine needs rebase — checkpatch: cannot be cherry-picked
stalled 123d S +6 −7
123d
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-part-4
janitor run: 4 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-4 CentOS 8.3/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
build #85372 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2022-01-05 06:03
no vote yet: James Simmons
patchsets: PS1 01-04 PS2 01-04
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 1688d ago · NEW · open in Gerrit ↗
commit message
LU-15069 llite: Clean up bit shift for assert

There is a bizarre comment which says we're not converting
pages to bytes yet to save cost in checking an assert, but
we do that conversion immediately after the assert *and*
it requires doing a similar shift in the assert.

This is quite strange - clean it up.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Id2bb4e6910276537d807828a9a33439dea054c3b
63981 master J ✗1B ✓T ✓R 2/2−
LU-19487 osc: fix shrinker loop in osc_lru_list_shrink
mine Oleg Drokin voted -1
stalled 123d 6 unresolved S +9 −5
123d
Oleg Drokin voted -1
6 unresolved thread(s) await your reply — last from Andreas Dilger
no vote yet from Qian Yingjin
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
sanity1@zfs:test_56abseen in 5 other reviews
build #123341 SUCCESS · tests all Maloo sessions
reviews: Marc Vef +1 2026-04-03 01:02 · Andreas Dilger +1 2026-04-03 01:02 · Oleg Drokin -1 2026-04-18 05:20
no vote yet: Qian Yingjin
patchsets:
+3 earlier PS1 02-12 PS2 02-12 PS3 02-17
PS4 02-17 PS5 02-18 PS6 02-26 PS7 02-28 PS8 04-03
threads: 6 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS5 2026-02-26 06:14 Andreas Dilger COMMIT_MSG:34 — I guess the intent is that the patch passed 5x as many iterations as without the patch, so it is improving the situation to some extent.
Alex Zhuravlev PS5 · 2026-02-26 05:54
this 88 of 500 sounds strange to me.. is it still failing?
Andreas Dilger PS5 · 2026-02-26 06:14
I guess the intent is that the patch passed 5x as many iterations as without the patch, so it is improving the situation to some extent.
reply PS8 2026-04-18 05:20 Oleg Drokin COMMIT_MSG:9 — if this was the real problem introducing commit, it should be Fixes: header below.
Oleg Drokin PS8 · 2026-04-18 05:20
if this was the real problem introducing commit, it should be Fixes: header below.
reply PS8 2026-04-18 05:20 Oleg Drokin patchset comment — The pieces of this patch don't add up.
Oleg Drokin PS8 · 2026-04-18 05:20
The pieces of this patch don't add up.

While I understand it improves the situation, now that that was demonstrated, it's time for a real human to look into why and make a patch that actually makes sense.
reply PS8 2026-04-18 05:20 Oleg Drokin osc_page.c:785 — is this the actual weight bearing "fix" of this patch?
Oleg Drokin PS8 · 2026-04-18 05:20
is this the actual weight bearing "fix" of this patch?
reply PS8 2026-04-18 05:20 Oleg Drokin osc_page.c:691 — this comment seems wrong.
Oleg Drokin PS8 · 2026-04-18 05:20
this comment seems wrong.
We can never get here via unevict-clear (osc_unevict_cache_shrink call I guess?) because it sets reason to SK_REASON_UNEVICT_LRU, but that case is already handled above.
That leaves a call for normal reclaim from osc_lru_reclaim?
reply PS8 2026-04-18 05:20 Oleg Drokin osc_page.c:695 — I am not sure how this statement makes any sense?
Oleg Drokin PS8 · 2026-04-18 05:20
I am not sure how this statement makes any sense?
owner Patrick Farrell · uploader Patrick Farrell · PS8 uploaded 138d ago · NEW · open in Gerrit ↗
commit message
LU-19487 osc: fix shrinker loop in osc_lru_list_shrink

Commit 109e32dc23 ("LU-19223 osc: stop after scanning")
changed the scan-limit tracking in osc_lru_list_shrink()
from a countdown to a count-up, and added a
--pages_scanned adjustment in the cl_object-switch path
to avoid counting object-switch iterations as scans.

When LRU pages belong to many different cl_objects, the
decrement causes pages_scanned to stagnate near zero,
making the loop run far longer than max_pages_to_scan
allows.  The kernel's do_shrink_slab then re-calls the
shrinker because nr_scanned stays low, creating a
CPU-bound infinite loop that hangs the system.

Remove the --pages_scanned adjustment.  The cl_object
switch does real work (dropping the spinlock, calling
cl_io_init) and should count toward the scan limit.

For forced scans (unevict-clear, cache-limit reduction,
etc.), increase the scan budget to target<<1 without
capping at lru_in_list so that object-switch overhead
does not prevent the shrinker from reaching its target.

Reproduced on a single-node test setup: sanityn test_16g
hung at iteration 17 of 100 without the fix (system
required hard reboot), passed 88 of 500 iterations
cleanly with the fix applied.

Generated with Claude Code + Tools

Test-Parameters: testlist=sanityn env=ONLY=16g,ONLY_REPEAT=10
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I7c007a1c021067e0b166b00045223ad8a927b5aa
65227 master J !B ✓T ✗1R 0/2
LU-20112 tests: verify drop_caches evicts client cache pages
mine enforced failed: review-ldiskfs-dne-arm
stalled 130d S +41 −0
130d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-dne-arm RHEL 8.10 / x86_64, Rocky 9.5 / aarch64 ran 5 tests. 1 tests failed: sanity. session
build #123740 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 130d ago · NEW · open in Gerrit ↗
commit message
LU-20112 tests: verify drop_caches evicts client cache pages

Add sanity test_101k that verifies drop_caches actually evicts
Lustre client page cache pages once any in-flight bulk RPC pin
has been released.

Read pages reap their bulk pin immediately on RPC completion.
Write pages keep the pin until the OST commits, so the test
forces a commit via dd conv=fsync. Both paths assert the
post-drop read shows ost_read activity (cache miss).

Note: global sync(2) does NOT drain Lustre's bulk pins -- only
fsync(fd) does, because only fsync goes through ll_fsync ->
OST_SYNC. cancel_lru_locks osc also drains the pins by
canceling the DLM extent locks, which is what the read path
in this test uses.

Generated with Claude Code + Tools

Test-Parameters: testlist=sanity env=ONLY=101k
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Iafa8f5986fed38d98964a3ebea929e0b412a8e49
58977 master J !B ✗T –R 1/2−
LU-16488 utils: fix help message for 'lctl interface_list'
mine needs rebase — checkpatch: cannot be cherry-picked
stalled 131d S +21 −22
131d
needs rebase — checkpatch: cannot be cherry-picked
build failure (#113047)
janitor run: build failed — no tests ran — janitor results
build #113047 FAILURE
reviews: Andreas Dilger +1 2025-05-02 23:00
patchsets: PS1 04-25 PS2 05-02 Andreas Dilger
owner Patrick Farrell · uploader Andreas Dilger · PS2 uploaded 473d ago · NEW · open in Gerrit ↗
commit message
LU-16488 utils: fix help message for 'lctl interface_list'

The help message for 'lctl interface_list' command was incorrect.
It was saying:
"You must run 'interface_list <network>' command before 'network'"

But the correct syntax is:
"lctl --net tcp0 interface_list"

This patch updates the help message in lctl.c and the man page to
reflect the correct usage. It also updates the error message in
portals.c to be more accurate.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I7be1c0189d4177ce0c6ed67d77c98ab723684191
65029 master J !B ✓T ✓R 1/2−
LU-20069 osc: pass page index explicitly for DIO encrypt
mine Sebastien Buisson voted -1
stalled 135d 1 unresolved S +8 −7
135d
Sebastien Buisson voted -1
1 unresolved thread(s) await your reply — last from Sebastien Buisson
no vote yet from Shaun Tancheff, Jian Yu
janitor run: 3 failing config(s), none unique to this patch — janitor results
6 optional test failure(s) — informational
build #123332 SUCCESS · tests all Maloo sessions
reviews: Sebastien Buisson -1 2026-04-03 07:41 · Andreas Dilger +1 2026-04-03 06:29
no vote yet: Shaun Tancheff, Jian Yu
patchsets: PS1 04-01 PS2 04-02 PS3 04-02
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-04-02 13:36 Sebastien Buisson folio.h:245 — This is pretty similar to `ll_filemap_get_folios`, but I guess with all the #define involved it is not easy to factorize. Maybe introduce `l
Sebastien Buisson PS1 · 2026-04-02 13:36
This is pretty similar to `ll_filemap_get_folios`, but I guess with all the #define involved it is not easy to factorize. Maybe introduce `ll_split_folio` to do the split loop (and which would be a no-op in case folio_order is not defined).
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 139d ago · NEW · open in Gerrit ↗
commit message
LU-20069 osc: pass page index explicitly for DIO encrypt

DIO encrypted file corruption during migration. The encrypt
path in osc_brw_prep_request() writes cp_page_index into
page_folio(page)->index, then osc_encrypt_pagecache_blocks()
reads it back via folio->index + page offset. For DIO pages
that are part of compound pages (order > 0), the page offset
within the folio is added to the index, producing a wrong
AES-XTS tweak. The decrypt path correctly uses cp_page_index
directly.

Compound pages can appear for DIO allocations on any kernel
-- reproduced on RHEL 9.6 and SLES 15.6.

Fix: pass cp_page_index explicitly to
osc_encrypt_pagecache_blocks() for DIO, mirroring the
decrypt path. Eliminates the fragile round-trip through
folio->index that breaks for compound pages.

Generated with Claude Code + Tools

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Iba44faefa61a7da6377e9d906b0453ef4ded5d13
64588 master J ✗1B ✗T –R 0/2−
LU-19989 llite: add FLR IWM connect flag and switches
mine needs rebase — checkpatch: cannot be cherry-picked
1 unique failure stalled 141d 1 unresolved M +111 −12
141d
needs rebase — checkpatch: cannot be cherry-picked
build failure (#122567)
janitor: 1 test failure unique to this patch — recovery-small@ldiskfs+DNE:test_131
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@ldiskfs+DNE:test_131seen in 64 other reviews
build #122567 FAILURE
patchsets: PS1 03-15 PS2 03-15 PS3 03-15 PS4 03-15
your previous vote: -1 on PS1 (2026-03-15 17:44) — now at PS4
threads: 0 need your reply · 0 waiting on others · 1 own notes · 0 bot
note PS1 2026-03-15 17:44 Patrick Farrell mdt_mds.c:99 — Also we should have a trap set before the 2.18 release to check if we should remove these parameters, as discussed
Patrick Farrell PS1 · 2026-03-15 17:44
Ah, interesting.

We have a mistake here - twice.  Or maybe four times, have to check llite.

These parameters should all be defaulting to disabled.
Patrick Farrell PS1 · 2026-03-15 17:44
Also we should have a trap set before the 2.18 release to check if we should remove these parameters, as discussed
owner Patrick Farrell · uploader Patrick Farrell · PS4 uploaded 157d ago · NEW · open in Gerrit ↗
commit message
LU-19989 llite: add FLR IWM connect flag and switches

Add OBD_CONNECT2_FLR_IMMED_MIRROR connect flag support,
LCME_FL_IMMEDIATE layout flag, and enable_immediate_mirror
parameter to control immediate write mirror layouts.

Add module parameters to gate presentation of connection
flag.

Define LCME_FL_IMMEDIATE (0x800) and add it to
LCME_KNOWN_FLAGS, LCME_USER_COMP_FLAGS,
LCME_CL_COMP_FLAGS, and LCME_TEMPLATE_FLAGS.
LCME_FL_IMMEDIATE and LCME_FL_PARITY are mutually
exclusive.

Generated with Claude Code + Tools

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I173c890d899a52cd57719cc89cc0629e54c86e51
53518 master J ✗22B ✓T ✗5R 0/2−
LU-17240 tests: add parallel format/mount/unmount support
carrying Timothy Day · needs rebase — checkpatch: cannot be cherry-picked
22 unique failures stalled 141d 6 unresolved L +233 −63
141d
needs rebase — checkpatch: cannot be cherry-picked
janitor: 22 test failures unique to this patch — conf-sanity2@ldiskfs+DNE:test_73c, conf-sanity2@ldiskfs+DNE:test_73e, conf-sanity2@ldiskfs+DNE:test_74 +19 more
enforced failed: review-dne-part-2, review-dne-part-3, review-dne-part-4
6 unresolved thread(s) await your reply — last from Andreas Dilger
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity2@ldiskfs+DNE:test_73cseen in 8 other reviews
conf-sanity2@ldiskfs+DNE:test_73eseen in 8 other reviews
conf-sanity2@ldiskfs+DNE:test_74seen in 12 other reviews
conf-sanity2@ldiskfs+DNE:test_75seen in 9 other reviews
conf-sanity3@ldiskfs+DNE:test_87seen in 7 other reviews
conf-sanity3@ldiskfs+DNE:test_88seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_89seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_90aseen in 12 other reviews
conf-sanity3@ldiskfs+DNE:test_90bseen in 15 other reviews
conf-sanity3@ldiskfs+DNE:test_90cseen in 21 other reviews
conf-sanity3@ldiskfs+DNE:test_90dseen in 24 other reviews
conf-sanity3@ldiskfs+DNE:test_91seen in 29 other reviews
conf-sanity3@ldiskfs+DNE:test_98seen in 34 other reviews
conf-sanity3@ldiskfs+DNE:test_99seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_120seen in 13 other reviews
conf-sanity4@ldiskfs+DNE:test_161seen in 5 other reviews
sanity-quota@ldiskfs+DNE:test_91seen in 1 other review
sanity-quota@ldiskfs+DNE:test_92seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_93seen in 5 other reviews
sanity-quota@ldiskfs+DNE:test_94seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_95aseen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_95bseen in 4 other reviews
failed enforced testplatformdetail
review-dne-part-2 crashed RHEL 8.10 / x86_64 ran 13 tests. 1 tests failed: sanity-lfsck. %% THIS TEST SESSION CRASHED %% session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
2 optional test failure(s) — informational
build #120087 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger, Alex Zhuravlev
patchsets:
+10 earlier PS1 12-20 PS2 01-04 Andreas Dilger PS3 01-04 Andreas Dilger PS4 01-04 Andreas Dilger PS5 10-11 PS6 10-11 PS7 10-22 Andreas Dilger PS8 10-25 PS9 05-19 Alex Zhuravlev PS10 11-24 Patrick Farrell
PS11 12-15 Patrick Farrell PS12 12-29 Patrick Farrell PS13 01-01 Patrick Farrell PS14 01-01 Patrick Farrell PS15 01-01 Patrick Farrell
threads: 6 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS9 2025-07-31 20:10 Andreas Dilger COMMIT_MSG:15 — Should this set PARALLEL_MKFS='mdt ost mgt' or are we just trying to get the old behavior to work at this point?
Andreas Dilger PS9 · 2025-07-31 20:10
Should this set PARALLEL_MKFS='mdt ost mgt' or are we just trying to get the old behavior to work at this point?
reply PS9 2025-07-31 20:10 Andreas Dilger COMMIT_MSG:16 — This should add "fortestonly" until it is passing testing, so it doesn't run a score of other test sessions.
Andreas Dilger PS9 · 2025-07-31 20:10
This should add "fortestonly" until it is passing testing, so it doesn't run a score of other test sessions.
reply PS9 2025-07-31 19:57 Andreas Dilger patchset comment — It looks like the problem being hit by conf-sanity.sh is that lustre-initialization has already formatted mounted the MDTs and OSTs, but the
Andreas Dilger PS9 · 2025-07-31 19:57
It looks like the problem being hit by conf-sanity.sh is that lustre-initialization has already formatted mounted the MDTs and OSTs, but then it tries to format them again:

    mkfs.lustre --mgs --fsname=lustre --mdt --index=0 --param=sys.timeout=20 --param=mdt.identity_upcall=/usr/sbin/l_getidentity --backfstype=ldiskfs --device-size=200000 --mkfsoptions=\"-b 4096 -E lazy_itable_init\" --reformat /dev/vg_Role_MDS/mdt1
    mkfs.lustre FATAL: Unable to build fs /dev/vg_Role_MDS/mdt1 (256)

   Permanent disk data:
    Target:     lustre:MDT0000
    Index:      0
    Lustre FS:  lustre
    Mount type: ldiskfs
    Flags:      0x65
              (MDT MGS first_time update )
    Persistent mount opts: user_xattr,errors=remount-ro
    Parameters: sys.timeout=20 mdt.identity_upcall=/usr/sbin/l_getidentity

   device size = 1888MB
    formatting backing filesystem ldiskfs on /dev/vg_Role_MDS/mdt1
	target name   lustre:MDT0000
	kilobytes     200000
	options       -b 4096  -I 1024 -i 2560 -q -O uninit_bg,^extents,dirdata,dir_nlink,quota,project,huge_file,ea_inode,large_dir,^fast_commit,flex_bg -E lazy_itable_init,lazy_journal_init,packed_meta_blocks -F
mkfs_cmd = mke2fs -j -b 4096 -L lustre:MDT0000 -b 4096  -I 1024 -i 2560 -q -O
    /dev/vg_Role_MDS/mdt1 is apparently in use by the system; will not make a filesystem here!

Possibly there is new state in test-framework.sh to track the parallel formatting, but this is lost between lustre-initialization and the instance of test-framework.sh that is starting up?
reply PS9 2025-07-31 20:10 Andreas Dilger test-framework.sh:2695 — At this point in the conf-sanity.sh "reformat_and_config->formatall->stop mds1" chain, this is called and does not detect the MDT as mounted
Andreas Dilger PS9 · 2025-07-31 20:10
At this point in the conf-sanity.sh "reformat_and_config->formatall->stop mds1" chain, this is called and does not detect the MDT as mounted:

    CMD: trevis-130vm6 [ -e "/dev/vg_Role_MDS/mdt1" ]
    CMD: trevis-130vm6 grep -c /mnt/lustre-mds1' ' /proc/mounts || true
    CMD: trevis-130vm6 lsmod | grep lnet > /dev/null && lctl dl | grep ' ST ' || true

so something is going wrong during this stage and some debugging should be added here.  It would probably be the same to debug locally by running "llmount.sh" and then run "conf-sanity.sh" afterward.
reply PS12 2025-12-29 03:55 Andreas Dilger test-framework.sh:5364 — (style) prefer `[[...]]` for bash
Andreas Dilger PS12 · 2025-12-29 03:55
(style) prefer `[[...]]` for bash
reply PS12 2025-12-29 03:55 Andreas Dilger test-framework.sh:5680 — (style) it would be better to declare this before usage in `stopall()` above
Andreas Dilger PS12 · 2025-12-29 03:55
(style) it would be better to declare this before usage in `stopall()` above
owner Timothy Day · uploader Patrick Farrell · PS15 uploaded 230d ago · NEW · open in Gerrit ↗
commit message
LU-17240 tests: add parallel format/mount/unmount support

Add support for parallel format, mount, and unmount operations
in the test framework. These operations are controlled by a
hierarchy of variables that allow fine-grained control over
which operations run in parallel, which target types are
parallelized, and whether different target types can overlap.

Variable hierarchy:
- PARALLEL_OPS: Master switch controlling all operations
- PARALLEL_FORMAT, PARALLEL_MOUNT, PARALLEL_UMOUNT: Enable
  parallelism for specific operations (default to PARALLEL_OPS)
- PARALLEL_FORMAT_TARGETS, PARALLEL_MOUNT_TARGETS,
  PARALLEL_UMOUNT_TARGETS: Space-separated list of target types
  to parallelize within each operation (e.g., "mdt ost")
- PARALLEL_FORMAT_TYPES, PARALLEL_MOUNT_TYPES,
  PARALLEL_UMOUNT_TYPES: Whether to overlap different target
  types during operations (inter-type parallelism)

Implementation:
- New helper function parallel_enabled_for(operation, target_type)
  checks if parallelism is enabled for a specific combination
- Updated formatall(), mountmds(), mountoss(), stopall(),
  unmountoss() to support parallel execution with proper wait
  barriers between target types when overlap is disabled
- MGS excluded from parallel operations since there's only
  ever one MGS target

All parallel operations are disabled by default (PARALLEL_OPS=0)
for backward compatibility. Future patches will enable these
features gradually after validation.

Test results show significant performance improvements when enabled:
- Parallel format with type overlap: 19% faster than baseline
- Parallel mount within types: 7% faster
- Parallel unmount within types: 21% faster

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I51af959a4f20644d9bd5166c1c1c8ebcfbef69f3
64591 master J ✗2B ✓T ✗9R 0/2
LU-19991 llapi: immediate mirror layout support
mine janitor: 2 test failures unique to this patch — sanity1@zfs:test_27D, sanity-lfsck@ldiskfs+DNE:test_45
2 unique failures stalled 154d 3 unresolved L +825 −1
154d
janitor: 2 test failures unique to this patch — sanity1@zfs:test_27D, sanity-lfsck@ldiskfs+DNE:test_45
enforced failed: review-dne-part-1, review-dne-part-4, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-ubuntu
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@zfs:test_27Dseen in 80 other reviews
sanity-lfsck@ldiskfs+DNE:test_45seen in 14 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
12 optional test failure(s) — informational
build #122568 SUCCESS · tests all Maloo sessions
patchsets: PS1 03-15 PS2 03-15 PS3 03-15 PS4 03-15 PS5 03-15
threads: 0 need your reply · 0 waiting on others · 3 own notes · 0 bot
note PS5 2026-03-17 22:17 Patrick Farrell pack_generic.c:2461 — [Sashiko] The label "lcme_flags:" is used on the line above to print the hex flags value. The new line reuses the same label for an "immedia
Patrick Farrell PS5 · 2026-03-17 22:17
[Sashiko] The label "lcme_flags:" is used on the line above to print the hex flags value. The new line reuses the same label for an "immediate mirror" string, so two consecutive log lines with that label would have different types of content. Would something like "lcme_immediate:" be clearer?
note PS5 2026-03-17 22:17 Patrick Farrell llapi_layout_test.c — [Sashiko] test40: The third argument to llapi_layout_sanity() is the flr flag. With flr=false, the sanity callback checks flags against the
Patrick Farrell PS5 · 2026-03-17 22:17
[Sashiko] test40: The third argument to llapi_layout_sanity() is the flr flag. With flr=false, the sanity callback checks flags against the non-FLR allowed set, which does not include LCME_FL_IMMEDIATE. So the call returns LSE_FLAGS rather than LSE_IMMEDIATE_MIRROR_COUNT. The assertion rc != 0 passes, but the path the test description describes -- "immediate needs >= 2 mirrors" -- is never reached. Would passing flr=true and asserting rc == LSE_IMMEDIATE_MIRROR_COUNT better match the stated intent?
note PS5 2026-03-17 22:17 Patrick Farrell liblustreapi_layout.c — [Sashiko] llapi_layout_comp_flags_set() enforces that LCME_FL_IMMEDIATE and LCME_FL_PARITY are mutually exclusive, but the sanity callback d
Patrick Farrell PS5 · 2026-03-17 22:17
[Sashiko] llapi_layout_comp_flags_set() enforces that LCME_FL_IMMEDIATE and LCME_FL_PARITY are mutually exclusive, but the sanity callback doesn't appear to check that combination independently. In the FLR case (lsa_flr=true), both flags are in LCME_USER_COMP_FLAGS and would pass the flags validation. Can a layout with both LCME_FL_IMMEDIATE and LCME_FL_PARITY on the same component pass llapi_layout_sanity() without error -- for example, one read back via llapi_layout_get_by_fd()?
owner Patrick Farrell · uploader Patrick Farrell · PS5 uploaded 157d ago · NEW · open in Gerrit ↗
commit message
LU-19991 llapi: immediate mirror layout support

Add LCME_FL_IMMEDIATE kernel helpers, llapi validation,
and layout passthrough support.

Add lsme_is_immediate() and lsm_entry_is_immediate()
helpers in lov_internal.h. Add debug print for
LCME_FL_IMMEDIATE in pack_generic.c.

Add LCME_FL_IMMEDIATE + LCME_FL_PARITY mutual exclusion
validation, >= 2 mirror requirement, and per-mirror
all-or-nothing enforcement in liblustreapi_layout.c
sanity checks. Fix llapi_layout_set_by_fd to pass
correct FLR flag to sanity check.

Add llapi_layout_test cases: flag round-trip (test38),
mutual exclusion (test39), mirror count validation
(test40), kernel setstripe/getstripe round-trip
(test41), directory default layout inheritance
(test42), multi-component mirror flag consistency
(test43), re-open by path (test44), flag clearing
(test45), both-mirrors IMMEDIATE (test46), 3-mirror
isolation (test47), partial IMMEDIATE rejection
(test48).

Generated with Claude Code + Tools

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I42f17a6bba89c6c5c1f1a3e9d71ab3a0fb7c7f1e
63164 master J !B ✓T ✓R 1/2−
LU-930 doc: man page improvements
mine needs rebase — checkpatch: cannot be cherry-picked
stalled 162d 3 unresolved L +249 −146
162d
needs rebase — checkpatch: cannot be cherry-picked
3 unresolved thread(s) await your reply — last from Andreas Dilger
no vote yet from Marc Vef
janitor run: 1 failing config(s), none unique to this patch — janitor results
build #120257 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2026-01-10 01:09
no vote yet: Marc Vef
patchsets: PS1 12-24 PS2 01-09 Marc Vef PS3 01-10 Andreas Dilger
threads: 3 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-01-10 01:05 Andreas Dilger COMMIT_MSG:7 — ```suggestion
Marc Vef PS1 · 2026-01-09 11:02
(defect) This should use a proper LU number
Andreas Dilger PS1 · 2026-01-10 01:05
```suggestion
LU-930 doc: man page improvements
```

Could just use the default "man page improvement" ticket...
reply PS3 2026-01-12 08:40 Marc Vef patchset comment — The other patch indeed has similar changes as this one (and the same issues around nodemap_add vs. nodemap_new). Since I already fixed that
Andreas Dilger PS3 · 2026-01-10 01:13
It looks like there are patches under LU-19744 that are conflicting with this one.  It might be that this "LU-0000" patch was intended as a test, but should have been marked with "fortestonly" or "ignore" to avoid attention...
Marc Vef PS3 · 2026-01-12 08:40
The other patch indeed has similar changes as this one (and the same issues around nodemap_add vs. nodemap_new). Since I already fixed that here, it may make sense to fold the changes here into the other patch. Either way, this patch looks good.

Let's see what Patrick says.
reply PS1 2025-12-24 12:31 Andreas Dilger lctl.8:386 — Rather than adding sub-commands to lctl, it is better to add a separate manage for it. That allows proper formatting, subsections, examples
Andreas Dilger PS1 · 2025-12-24 12:31
Rather than adding sub-commands to lctl, it is better to add a separate manage for it.  That allows proper formatting, subsections, examples, etc.
owner Patrick Farrell · uploader Andreas Dilger · PS3 uploaded 221d ago · NEW · open in Gerrit ↗
commit message
LU-930 doc: man page improvements

Various man page improvements - adding missing
commands and options, fixing typos, fixing
format issues, etc.

Includes one trivial fix to lctl.c.

Focuses on man8.

This code was generated by Augment.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I222ea824b25b0a3104dc4a8bc8f56c10449045e4
57426 master J !B ✓T ✗3R 0/2−
LU-18553 llite: ensure layout refresh on fast read
mine needs rebase — checkpatch: cannot be cherry-picked
stalled 162d 1 unresolved M +47 −15
162d
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-ubuntu
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.3 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
2 optional test failure(s) — informational
build #109666 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Shaun Tancheff, Andreas Dilger, Alex Zhuravlev, Zhenyu Xu
patchsets: PS1 12-13 PS2 12-13 PS3 12-13
threads: 0 need your reply · 0 waiting on others · 1 own notes · 0 bot
note PS3 2024-12-13 18:24 Patrick Farrell rw.c:2019 — And look, we can finally get rid of this terrifying (and correct!) TODO ....... eek
Patrick Farrell PS3 · 2024-12-13 18:24
And look, we can finally get rid of this terrifying (and correct!) TODO ....... eek
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 614d ago · NEW · open in Gerrit ↗
commit message
LU-18553 llite: ensure layout refresh on fast read

It is essential to refresh the layout before doing a fast
read, otherwise we could read stale data if the layout has
changed and, eg, the mirror our data is from is now stale.

Today, we do this refresh incidentally in
file_read_confine_iter->cl_io_init->vvp_io_init, but this
is obviously fragile to future changes, since it's not
directly associated with the fast read path.

Add dedicated code in the fast read path to refresh the
layout.

Also opportunistically rename a few functions to make clear
they are Lustre functions and not kernel functions.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ifbd827b79847309fe8d798963774ccd6650ad22f
64273 master J !B ✓T ✗1R 0/2
LU-19344 llite: use ktime_get_coarse for read stats
mine enforced failed: review-ldiskfs
stalled 164d 1 unresolved S +12 −3
164d
enforced failed: review-ldiskfs
1 unresolved thread(s) await your reply — last from Shaun Tancheff
1 thread(s) waiting on others
janitor run: 5 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #122029 SUCCESS · tests all Maloo sessions
no vote yet: Shaun Tancheff
patchsets: PS1 02-28 PS2 02-28 PS3 03-02
threads: 1 need your reply · 1 waiting on others · 0 own notes · 0 bot
reply PS3 2026-03-08 01:00 Shaun Tancheff file.c:2494 — Since this is just a delta, why not use jiffies instead?
Shaun Tancheff PS3 · 2026-03-08 01:00
Since this is just a delta, why not use jiffies instead?

u64 kstart = get_jiffies_64();
...
ll_stats_ops_tally(ll_i2sbi(file_inode(file)),
LLPROC_LL_READ,
jiffies_to_usecs(get_jiffies_64() - kstart));
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 170d ago · NEW · open in Gerrit ↗
commit message
LU-19344 llite: use ktime_get_coarse for read stats

Replace ktime_get() with ktime_get_coarse() for read
timing stats in do_file_read_iter.  ktime_get() reads
the hardware clocksource on every call, which is
expensive on virtualized guests - pvclock_clocksource_read
was the #1 CPU consumer at 9.16% of the tiny read profile
on a KVM guest.  Virtualization is not niche; all major
cloud providers run KVM or similar hypervisors, so this
cost is broadly relevant.

ktime_get_coarse() reads a cached jiffies-granularity
timestamp (~1-4ms resolution), avoiding the hardware
read entirely.  The coarse granularity is sufficient for
the aggregate min/max/sum/count stats collected by
ll_stats_ops_tally - these stats summarize thousands of
ops, so per-op microsecond precision is not needed.

Also move kstart assignment after the zero-count early
return to avoid unnecessary work.

perf profile with ktime_get_coarse (KVM, pvclock):
  pvclock_clocksource_read: 0.02% (from other callers)
  ktime_get_coarse_ts64:    0.74%

Benchmark (8-byte sequential reads, 2M iterations):
  Before (ktime_get):       ~3,600k reads/sec
  After (ktime_get_coarse): ~4,100k reads/sec (+14%)

Generated with Claude Code + Tools

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I1c25e14b2fbb9a6f7f4f6f999aa9f2c6e2a0bb8c
63197 master J !B ✗T –R 0/2−
LU-19744 doc: bulk man page review
mine needs rebase — checkpatch: cannot be cherry-picked
stalled 165d L +367 −151
165d
needs rebase — checkpatch: cannot be cherry-picked
build failure (#120071)
Marc Vef voted -1
Andreas Dilger voted -1
janitor run: 1 failing config(s), none unique to this patch — janitor results
build #120071 FAILURE
reviews: Marc Vef -1 2026-03-04 14:34 · Andreas Dilger -1 2026-03-07 00:48
patchsets: PS1 12-29 PS2 12-29
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 233d ago · NEW · open in Gerrit ↗
commit message
LU-19744 doc: bulk man page review

Bulk review done by Augment and Claude Code.

Complete systematic review of Lustre man pages (sections 5, 7, 8)
with fixes for documentation errors, missing options, formatting
issues, and cross-references.

Key fixes include:
- Add missing options: --nomgs, --nidsfile, -q/--quiet, --catalog,
  -l, and others documented in usage but missing from man pages
- Fix formatting errors: .TH syntax, incomplete sentences, SEE ALSO
  sections
- Add missing cross-references to related man pages
- Fix typos and grammar errors
- Improve consistency across man pages
- Add missing NAME section to lnetctl.8
- Fix alphabetical ordering in SEE ALSO sections (18 nodemap files)

Files modified: 60+ man pages across sections 5, 7, and 8
Total changes: systematic improvements to documentation accuracy
and completeness

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I4896b64767e58c2b939b5a70db394a6f920949d5
64302 master J !B ✓T ✗1R 0/2
LU-19344 llite: inline fast path of ll_stats_ops_tally
mine enforced failed: review-ldiskfs-ubuntu
stalled 169d S +45 −3
169d
janitor run: 5 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
3 optional test failure(s) — informational
build #122031 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 170d ago · NEW · open in Gerrit ↗
commit message
LU-19344 llite: inline fast path of ll_stats_ops_tally

Inline the common case of ll_stats_ops_tally() for
the default STATS_TRACK_ALL mode with per-CPU stats.
This eliminates the out-of-line function call chain
through ll_stats_ops_tally -> lprocfs_counter_add ->
lprocfs_stats_lock/unlock on every read and write.

The inlined version directly accesses the per-CPU
counter struct under get_cpu()/put_cpu(), updating
count, sum, sumsquare, min, and max in place.  The
slow path (__ll_stats_ops_tally) handles filtered
tracking modes (PID/PPID/GID) and the NOPERCPU case.

perf profile before inlining (KVM tiny writes):
  lprocfs_counter_add: 1.41%
  lprocfs_stats_lock:  0.64%
  ll_stats_ops_tally:  0.14%
  lprocfs_stats_unlock: 0.05%
  Total stats overhead: 2.24%

After inlining: all four functions gone from profile.

Benchmark (8-byte sequential I/O, 2M iterations):
  Writes: ~2,179k/sec -> ~2,307k/sec (+6%)
  Reads:  ~4,100k/sec -> ~4,335k/sec (+6%)

Combined with ktime_get_coarse (patches 1-2):
  Writes: ~1,970k/sec -> ~2,307k/sec (+17% total)
  Reads:  ~3,600k/sec -> ~4,335k/sec (+20% total)

Generated with Claude Code + Tools

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie9e79d466fee8401dfc08485896124f918c0c9d4
63255 master J ✗8B ✓T ✓R 0/2−
LU-17000 lnet: refactor lnet_net_show_dump
mine needs rebase — checkpatch: cannot be cherry-picked
stalled 173d 1 unresolved L +260 −230
173d
needs rebase — checkpatch: cannot be cherry-picked
1 unresolved thread(s) await your reply — last from Chris Horn
CI green — no vote yet from James Simmons, Arshad Hussain, Chris Horn, Andreas Dilger
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
sanity-quota@zfs+DNE:test_12bseen in 19 other reviews
sanity-quota@zfs+DNE:test_17seen in 23 other reviews
sanity-quota@zfs+DNE:test_25seen in 17 other reviews
sanity-quota@zfs+DNE:test_33seen in 23 other reviews
sanity-quota@zfs+DNE:test_34seen in 23 other reviews
sanity-quota@zfs+DNE:test_37seen in 23 other reviews
sanity-quota@zfs+DNE:test_38seen in 23 other reviews
sanity-sec@zfs:test_25bseen in 31 other reviews
4 optional test failure(s) — informational
build #120343 SUCCESS · tests all Maloo sessions
no vote yet: James Simmons, Arshad Hussain, Chris Horn, Andreas Dilger
patchsets: PS1 01-06 PS2 01-12
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-01-07 16:19 Chris Horn COMMIT_MSG:28 — This patch could run with `Test-Parameters: trivial` if it is refreshed.
Chris Horn PS1 · 2026-01-07 16:19
This patch could run with `Test-Parameters: trivial` if it is refreshed.
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 219d ago · NEW · open in Gerrit ↗
commit message
LU-17000 lnet: refactor lnet_net_show_dump

Refactor lnet_net_show_dump() to improve readability and
reduce function size from ~360 lines to ~160 lines.

Changes:
- Add lnet_ni_dump_ctx struct to hold shared dump state
- Extract lnet_ni_dump_one_msg_stats() helper for message
  stats (send/recv/drop) - eliminates code duplication
- Extract lnet_ni_dump_health_stats() helper for health
  statistics
- Extract lnet_ni_dump_tunables() helper for net tunables
- Extract lnet_ni_format_cpts() helper for CPT list
  formatting with proper buffer overflow checking
- Extract lnet_ni_dump_extended() to handle all
  verbosity-dependent NI dumping with linear control flow
  instead of goto-based skipping

The refactoring eliminates goto labels (skip_msg_stats,
skip_udsp) by restructuring the verbosity-based logic
into clear conditional blocks.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I210f78fdf201a416f16733bc5ba4afdf45e92065
63188 master J ✓B ✓T ✗26R 0/2
LU-17240 tests: enable parallel mounting by default
mine enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-part-7, review-dne-part-8, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-6, review-ldiskfs, review-ldiskfs-ubuntu
stalled 229d XS +2 −2
229d
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 11 tests. 4 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 15 tests. 4 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-6 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-part-7 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-part-8 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-part-8 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 5 tests failed: sanity-pfl, lnet-selftest, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: replay-ost-single. session
review-dne-zfs-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
9 optional test failure(s) — informational
build #120089 SUCCESS · tests all Maloo sessions
patchsets: PS1 12-29 PS2 01-01
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 230d ago · NEW · open in Gerrit ↗
commit message
LU-17240 tests: enable parallel mounting by default

Enable parallel mounting of targets within types by default.
This allows multiple OSTs (or MDTs in multi-MDT configurations)
to be mounted simultaneously, but maintains sequential ordering
between different target types (MDT before OST).

Configuration:
- PARALLEL_MOUNT now defaults to 1 (enabled)
- PARALLEL_MOUNT_TYPES explicitly set to 0 (no inter-type overlap)
- PARALLEL_MOUNT_TARGETS="mdt ost" (MGS excluded)

Test environment:
- 1 MGS (combined with MDS)
- 1 MDT (245MB)
- 2 OSTs (391MB each)

Performance results:
- Baseline (serial mounting): 29.7s
- Parallel mounting within types: 27.3s
- Improvement: 8% faster (2.4s savings)

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I71efad13359e3490129ce90dece5fee1d2513c75
63187 master J ✗18B ✓T ✗6R 0/2
LU-17240 tests: enable parallel formatting by default
mine janitor: 18 test failures unique to this patch — conf-sanity3@ldiskfs+DNE:test_87, conf-sanity3@ldiskfs+DNE:test_88, conf-sanity3@ldiskfs+DNE:test_89 +15 more
18 unique failures stalled 229d XS +1 −1
229d
janitor: 18 test failures unique to this patch — conf-sanity3@ldiskfs+DNE:test_87, conf-sanity3@ldiskfs+DNE:test_88, conf-sanity3@ldiskfs+DNE:test_89 +15 more
enforced failed: review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-7
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity3@ldiskfs+DNE:test_87seen in 7 other reviews
conf-sanity3@ldiskfs+DNE:test_88seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_89seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_90aseen in 12 other reviews
conf-sanity3@ldiskfs+DNE:test_90bseen in 15 other reviews
conf-sanity3@ldiskfs+DNE:test_90cseen in 21 other reviews
conf-sanity3@ldiskfs+DNE:test_90dseen in 24 other reviews
conf-sanity3@ldiskfs+DNE:test_91seen in 29 other reviews
conf-sanity3@ldiskfs+DNE:test_98seen in 34 other reviews
conf-sanity3@ldiskfs+DNE:test_99seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_120seen in 13 other reviews
conf-sanity4@ldiskfs+DNE:test_161seen in 7 other reviews
sanity-quota@ldiskfs+DNE:test_91seen in 1 other review
sanity-quota@ldiskfs+DNE:test_92seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_93seen in 5 other reviews
sanity-quota@ldiskfs+DNE:test_94seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_95aseen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_95bseen in 4 other reviews
failed enforced testplatformdetail
review-dne-part-2 RHEL 9.5 / x86_64 ran 13 tests. 1 tests failed: sanity-lfsck. session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-part-7 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
2 optional test failure(s) — informational
build #120088 SUCCESS · tests all Maloo sessions
patchsets: PS1 12-29 PS2 01-01
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 230d ago · NEW · open in Gerrit ↗
commit message
LU-17240 tests: enable parallel formatting by default

Enable parallel formatting of targets by default. This includes
both intra-type parallelism (multiple MDTs or OSTs formatted
simultaneously) and inter-type parallelism (MDT and OST formatting
overlapping).

Configuration:
- PARALLEL_FORMAT now defaults to 1 (enabled)
- PARALLEL_FORMAT_TYPES inherits from PARALLEL_FORMAT (=1)
- PARALLEL_FORMAT_TARGETS="mdt ost" (MGS excluded)
- Other operations (mount, unmount) remain disabled

Test environment:
- 1 MGS (combined with MDS)
- 1 MDT (245MB)
- 2 OSTs (391MB each)

Performance results:
- Baseline (serial formatting): 31.1s
- Parallel formatting: 17.3-25.7s
- Improvement: 17-44% faster

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I7cac5b4a677e3fee97edf57bb9a7cf3469bab92b
63191 master J !B ✓T ✗27R 0/2
LU-17240 tests: enable parallel unmounting across types
mine enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-part-7, review-dne-part-8, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-6, review-dne-zfs-part-7, review-ldiskfs, review-ldiskfs-ubuntu
stalled 229d XS +1 −1
229d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 15 tests. 5 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck, runtests. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 17 tests. 5 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck, runtests. This build will be s session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-6 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-7 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-part-7 RHEL 8.10 / x86_64 ran 7 tests. 2 tests failed: sanity-scrub, sanity-pcc. session
review-dne-part-8 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-part-8 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 15 tests. 6 tests failed: sanity-pfl, lnet-selftest, pjdfstest, sanity-sec, sanity-lfsck, runtests. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: replay-ost-single. session
review-dne-zfs-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-zfs-part-7 RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: sanity-pcc. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 8 tests. 2 tests failed: sanity-sec, sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 8 tests. 2 tests failed: sanity-sec, sanity. session
9 optional test failure(s) — informational
build #120092 SUCCESS · tests all Maloo sessions
patchsets: PS1 12-29 PS2 01-01
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 230d ago · NEW · open in Gerrit ↗
commit message
LU-17240 tests: enable parallel unmounting across types

Enable inter-type parallelism for unmount operations, allowing
clients, MDTs, and OSTs to unmount simultaneously rather than
waiting for each type to complete sequentially.

WARNING: This feature is known to have stability issues and can
cause hangs during unmount. It is enabled here for testing
purposes only and should not be used in production environments.

Configuration:
- PARALLEL_UMOUNT_TYPES now inherits from PARALLEL_UMOUNT (=1)
- Allows client, MDT, and OST unmounts to overlap

Test environment:
- 1 MGS (combined with MDS)
- 1 MDT (245MB)
- 2 OSTs (391MB each)

Performance results (when it works):
- Baseline (sequential types): 24.6s
- With inter-type overlap: 11.9s
- Improvement: 51% faster (12.7s savings)

Known issues:
- Intermittent hangs during unmount operations
- Race conditions in cleanup ordering
- Resource deadlocks between target types

Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I413c5be0437049c88a6c1066681ed258fa41fa06
63189 master J ✗83B ✓T ✗25R 0/2
LU-17240 tests: enable parallel unmounting by default
mine janitor: 83 test failures unique to this patch — conf-sanity2@ldiskfs+DNE:test_73c, conf-sanity2@ldiskfs+DNE:test_73e, conf-sanity2@ldiskfs+DNE:test_74 +80 more
83 unique failures stalled 229d XS +1 −1
229d
janitor: 83 test failures unique to this patch — conf-sanity2@ldiskfs+DNE:test_73c, conf-sanity2@ldiskfs+DNE:test_73e, conf-sanity2@ldiskfs+DNE:test_74 +80 more
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-part-7, review-dne-part-8, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-6, review-ldiskfs, review-ldiskfs-ubuntu
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity2@ldiskfs+DNE:test_73cseen in 8 other reviews
conf-sanity2@ldiskfs+DNE:test_73eseen in 8 other reviews
conf-sanity2@ldiskfs+DNE:test_74seen in 12 other reviews
conf-sanity2@ldiskfs+DNE:test_75seen in 9 other reviews
conf-sanity3@ldiskfs+DNE:test_87seen in 7 other reviews
conf-sanity3@ldiskfs+DNE:test_88seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_89seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_90aseen in 12 other reviews
conf-sanity3@ldiskfs+DNE:test_90bseen in 15 other reviews
conf-sanity3@ldiskfs+DNE:test_90cseen in 21 other reviews
conf-sanity3@ldiskfs+DNE:test_90dseen in 24 other reviews
conf-sanity3@ldiskfs+DNE:test_91seen in 29 other reviews
conf-sanity3@ldiskfs+DNE:test_98seen in 34 other reviews
conf-sanity3@ldiskfs+DNE:test_99seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_103NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
conf-sanity3@ldiskfs+DNE:test_120seen in 13 other reviews
conf-sanity4@ldiskfs+DNE:test_154NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
conf-sanity4@ldiskfs+DNE:test_161seen in 5 other reviews
sanity2@ldiskfs+DNE:test_130iseen in 3 other reviews
sanity-lfsck@zfs:test_18aseen in 2 other reviews
sanity-lfsck@zfs:test_18cseen in 2 other reviews
sanity-lfsck@zfs:test_18dseen in 2 other reviews
sanity-lfsck@zfs:test_18eseen in 2 other reviews
sanity-lfsck@zfs:test_18fseen in 3 other reviews
sanity-lfsck@zfs:test_18gseen in 2 other reviews
sanity-lfsck@zfs:test_18hseen in 3 other reviews
sanity-lfsck@zfs:test_20aseen in 2 other reviews
sanity-lfsck@zfs:test_20bseen in 2 other reviews
sanity-lfsck@zfs:test_45seen in 1 other review
sanity-quota@ldiskfs+DNE:test_59seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_60seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_62seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_64seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_66seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_67seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_68seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_69seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_70aseen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_70bseen in 5 other reviews
sanity-quota@ldiskfs+DNE:test_71aseen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_71bseen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_72seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_73aseen in 5 other reviews
sanity-quota@ldiskfs+DNE:test_73bseen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_74seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_75seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_76seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_77seen in 7 other reviews
sanity-quota@ldiskfs+DNE:test_79seen in 6 other reviews
sanity-quota@ldiskfs+DNE:test_80seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_81seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_82seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_83seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_84seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_85seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_86seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_87seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_89seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_90aseen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_90bseen in 5 other reviews
sanity-scrub@ldiskfs+DNE:test_1bseen in 5 other reviews
sanity-scrub@ldiskfs+DNE:test_1cseen in 6 other reviews
sanity-scrub@ldiskfs+DNE:test_2seen in 6 other reviews
sanity-scrub@ldiskfs+DNE:test_4aseen in 6 other reviews
sanity-scrub@ldiskfs+DNE:test_4bseen in 10 other reviews
sanity-scrub@ldiskfs+DNE:test_4cseen in 12 other reviews
sanity-scrub@ldiskfs+DNE:test_4dseen in 16 other reviews
sanity-scrub@ldiskfs+DNE:test_4eseen in 13 other reviews
sanity-scrub@ldiskfs+DNE:test_5seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_6seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_7seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_8seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_9seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_10aseen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_11seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_14seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_15seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_17aseen in 5 other reviews
sanity-scrub@ldiskfs+DNE:test_17bseen in 5 other reviews
sanity-sec@ldiskfs+DNE:test_75bseen in 3 other reviews
sanityn@ldiskfs+DNE:test_104seen in 3 other reviews
sanityn@ldiskfs+DNE:test_106aseen in 2 other reviews
sanityn@ldiskfs+DNE:test_115seen in 3 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 crashed RHEL 8.10 / x86_64 ran 13 tests. 4 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck. %% THIS TEST SESSION CRASHED % session
review-dne-part-2 RHEL 9.5 / x86_64 ran 15 tests. 4 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-6 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-part-7 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-part-8 crashed RHEL 8.10 / x86_64 ran 2 tests. 1 tests failed: lustre-initialization. %% THIS TEST SESSION CRASHED %% session
review-dne-part-8 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 5 tests failed: sanity-pfl, lnet-selftest, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: replay-ost-single. session
review-dne-zfs-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
9 optional test failure(s) — informational
build #120090 SUCCESS · tests all Maloo sessions
patchsets: PS1 12-29 PS2 01-01
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 230d ago · NEW · open in Gerrit ↗
commit message
LU-17240 tests: enable parallel unmounting by default

Enable parallel unmounting of targets within types by default.
This allows multiple clients, OSTs, or MDTs to be unmounted
simultaneously within their respective type groups, but maintains
sequential ordering between different target types (clients, then
MDTs, then OSTs).

Configuration:
- PARALLEL_UMOUNT now defaults to 1 (enabled)
- PARALLEL_UMOUNT_TYPES remains 0 (no inter-type overlap)
- PARALLEL_UMOUNT_TARGETS="client mdt ost"

Test environment:
- 1 MGS (combined with MDS)
- 1 MDT (245MB)
- 2 OSTs (391MB each)

Performance results:
- Baseline (serial unmounting): 30.9s
- Parallel unmounting within types: 26.5s
- Improvement: 14% faster (4.4s savings)

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Icbd5fa4fc79259225b03a9feab0bc50b4b48b09d
63190 master J ✗73B ✓T ✗26R 0/2
LU-17240 tests: enable parallel mounting across types
mine janitor: 73 test failures unique to this patch — conf-sanity2@ldiskfs+DNE:test_73c, conf-sanity2@ldiskfs+DNE:test_73e, conf-sanity2@ldiskfs+DNE:test_74 +70 more
73 unique failures stalled 229d XS +1 −1
229d
janitor: 73 test failures unique to this patch — conf-sanity2@ldiskfs+DNE:test_73c, conf-sanity2@ldiskfs+DNE:test_73e, conf-sanity2@ldiskfs+DNE:test_74 +70 more
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-part-7, review-dne-part-8, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-6, review-ldiskfs, review-ldiskfs-ubuntu
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity2@ldiskfs+DNE:test_73cseen in 8 other reviews
conf-sanity2@ldiskfs+DNE:test_73eseen in 8 other reviews
conf-sanity2@ldiskfs+DNE:test_74seen in 12 other reviews
conf-sanity2@ldiskfs+DNE:test_75seen in 9 other reviews
conf-sanity4@ldiskfs+DNE:test_154seen in 1 other review
conf-sanity4@ldiskfs+DNE:test_161seen in 5 other reviews
sanity2@ldiskfs+DNE:test_130iseen in 3 other reviews
sanity3@zfs:test_271fseen in 10 other reviews
sanity-lfsck@zfs:test_18aseen in 2 other reviews
sanity-lfsck@zfs:test_18cseen in 2 other reviews
sanity-lfsck@zfs:test_18dseen in 2 other reviews
sanity-lfsck@zfs:test_18eseen in 2 other reviews
sanity-lfsck@zfs:test_18fseen in 4 other reviews
sanity-lfsck@zfs:test_18gseen in 2 other reviews
sanity-lfsck@zfs:test_18hseen in 3 other reviews
sanity-lfsck@zfs:test_20aseen in 2 other reviews
sanity-lfsck@zfs:test_20bseen in 2 other reviews
sanity-lfsck@zfs:test_45seen in 1 other review
sanity-quota@ldiskfs+DNE:test_59seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_60seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_62seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_64seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_66seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_67seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_68seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_69seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_70aseen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_70bseen in 5 other reviews
sanity-quota@ldiskfs+DNE:test_71aseen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_71bseen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_72seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_73aseen in 5 other reviews
sanity-quota@ldiskfs+DNE:test_73bseen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_74seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_75seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_76seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_77seen in 7 other reviews
sanity-quota@ldiskfs+DNE:test_79seen in 6 other reviews
sanity-quota@ldiskfs+DNE:test_80seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_81seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_82seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_83seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_84seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_85seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_86seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_87seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_89seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_90aseen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_90bseen in 5 other reviews
sanity-scrub@ldiskfs+DNE:test_1bseen in 5 other reviews
sanity-scrub@ldiskfs+DNE:test_1cseen in 6 other reviews
sanity-scrub@ldiskfs+DNE:test_2seen in 6 other reviews
sanity-scrub@ldiskfs+DNE:test_4aseen in 6 other reviews
sanity-scrub@ldiskfs+DNE:test_4bseen in 10 other reviews
sanity-scrub@ldiskfs+DNE:test_4cseen in 12 other reviews
sanity-scrub@ldiskfs+DNE:test_4dseen in 16 other reviews
sanity-scrub@ldiskfs+DNE:test_4eseen in 13 other reviews
sanity-scrub@ldiskfs+DNE:test_5seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_6seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_7seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_8seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_9seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_10aseen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_11seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_14seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_15seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_17aseen in 5 other reviews
sanity-scrub@ldiskfs+DNE:test_17bseen in 5 other reviews
sanity-sec@ldiskfs+DNE:test_75bseen in 3 other reviews
sanity-sec@ldiskfs+DNE:test_82NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@ldiskfs+DNE:test_104seen in 3 other reviews
sanityn@ldiskfs+DNE:test_106aseen in 2 other reviews
sanityn@ldiskfs+DNE:test_115seen in 3 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 11 tests. 4 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 15 tests. 4 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-6 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-part-7 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-part-8 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-part-8 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 2 tests failed: sanity-sec, recovery-small. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 5 tests failed: sanity-pfl, lnet-selftest, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 11 tests. 2 tests failed: sanity-quota, replay-ost-single. session
review-dne-zfs-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
8 optional test failure(s) — informational
build #120091 SUCCESS · tests all Maloo sessions
patchsets: PS1 12-29 PS2 01-01
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 230d ago · NEW · open in Gerrit ↗
commit message
LU-17240 tests: enable parallel mounting across types

Enable inter-type parallelism for mount operations, allowing
MDT and OST mounting to overlap rather than waiting for MDT
to complete before starting OST mounts.

Configuration:
- PARALLEL_MOUNT_TYPES now inherits from PARALLEL_MOUNT (=1)
- Allows MDT and OST mounts to run simultaneously

Test environment:
- 1 MGS (combined with MDS)
- 1 MDT (245MB)
- 2 OSTs (391MB each)

Performance results:
- Baseline (sequential types): 24.9s
- With inter-type overlap: 26.8s
- Result: 8% slower (1.9s penalty)

Note: Inter-type mount parallelism shows a small performance
degradation in this configuration. The overhead of running
MDT and OST mounts simultaneously appears to outweigh any
parallelism benefits, likely due to resource contention or
mount dependencies. This feature is enabled for completeness
and may show benefits in larger configurations.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I9981fc1a56d5196e311a95f9808cb14a163f09c3
62742 master J –B ✗T –R 0/2
LU-17240 tests: fix dm-flakey device handling
mine build failure (#119060)
stalled 233d 1 unresolved M +57 −62
233d
build failure (#119060)
1 unresolved thread(s) await your reply — last from Andreas Dilger
build #119060 FAILURE
patchsets: PS1 11-26 PS2 11-28
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2025-12-07 22:22 Andreas Dilger conf-sanity.sh:5596 — (style) line could be split after '||'
wc-checkpatch PS1 · 2025-11-26 16:31
(style)  line length of 84 exceeds 80 columns
Andreas Dilger PS1 · 2025-12-07 22:22
(style) line could be split after '||'
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 264d ago · NEW · open in Gerrit ↗
commit message
LU-17240 tests: fix dm-flakey device handling

The recent parallel unmount commit attempted to fix
device name functions to return the actual mounted
device for dm-flakey support, but this created circular
dependencies during initialization that caused hangs.

The proper solution is to add a new facet_real_dev()
function that returns the currently mounted device
(which could be a dm-flakey device) when the facet is
mounted, or falls back to the logical device name when
unmounted.

This is needed because direct device access tools like
debugfs, tune2fs, dumpe2fs, and e2fsck need to access
the actual mounted device (dm-flakey) to see current
filesystem state, not the underlying physical device
which may have stale data buffered in the dm layer.

Updated all test code that uses these tools to call
facet_real_dev() instead of ostdevname() or mdsdevname()
to get the correct device for direct access.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I8d9785351904fc4f21721f872a8cdce7958159a5
46810 master J ✗2B ✓T ✓R 0/2−
LU-15367 tests: Multiop allow mmap control
mine needs rebase — checkpatch: cannot be cherry-picked
stalled 251d S +12 −1
251d
needs rebase — checkpatch: cannot be cherry-picked
CI green — no vote yet from Sebastien Buisson, Andreas Dilger
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-quota@zfs:test_48seen in 24 other reviews
5 optional test failure(s) — informational
build #118694 SUCCESS · tests all Maloo sessions
no vote yet: Sebastien Buisson, Andreas Dilger
patchsets:
+4 earlier PS1 03-12 PS2 08-18 PS3 08-18 PS4 08-20
PS5 08-28 PS6 09-07 PS7 01-25 PS8 02-28 PS9 11-17
owner Patrick Farrell · uploader Patrick Farrell · PS9 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-15367 tests: Multiop allow mmap control

Add the ability for multiop to specify where to access a
file when it's mmaped by repurposing the 'w' and 'r'
options when a file is mmapped.

This makes multiop able to easily simulate application
behavior using processed iotrace logs as input.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6ff455f15a59132018525410c7fcce840c5b6209
54052 master J !B ✓T ✗2R 0/2
LU-15069 llite: remove ras_align
mine enforced failed: review-dne-part-2, review-dne-part-5
stalled 259d 1 unresolved S +6 −25
259d
enforced failed: review-dne-part-2, review-dne-part-5
1 thread(s) waiting on others
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-2 RHEL 9.5 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: recovery-small. session
3 optional test failure(s) — informational
build #119152 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger, Sebastien Buisson, Timothy Day
patchsets:
+4 earlier PS1 02-15 PS2 02-15 PS3 02-15 PS4 02-15
PS5 02-15 PS6 02-15 PS7 02-15 PS8 11-23 PS9 12-03
your previous vote: -1 on PS2 (2024-02-15 00:19) — now at PS9
threads: 0 need your reply · 1 waiting on others · 0 own notes · 0 bot
owner Patrick Farrell · uploader Patrick Farrell · PS9 uploaded 259d ago · NEW · open in Gerrit ↗
commit message
LU-15069 llite: remove ras_align

ras_align is quite odd - it aligns to either RPC size,
which has some justification, or to window size, which is
totally strange.  Window size has nothing to do with
alignment and shouldn't be used for this at all.

And ras_align rounds *down*, which results in extra misses
because it's shrinking the readahead window selected by the
rest of the readahead logic.

Finally, although aligning readahead to RPC boundaries
sounds nice, it makes readahead itself far more complicated
by messing up the math for offsets and window sizes, for
limited benefit:
It is not very important for RPCs to be *aligned* so long as
they are *large*, which is handled by the rest of the
readahed logic.

This significantly cleans up some of the readahead behavior
and fixes the misses introduced by rounding down.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I267076a79120e145f49a4b2ffdeff97b4f2b158b
50966 master J ✓B ✓T ✗1R 0/2−
LU-17473 llite: wait for partially successful aio
mine needs rebase — checkpatch: cannot be cherry-picked
stalled 260d S +36 −7
260d
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-zfs
failed enforced testplatformdetail
review-zfs RHEL 8.9 / x86_64 ran 8 tests. 1 tests failed: replay-single. session
1 optional test failure(s) — informational
build #108711 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Shaun Tancheff, Andreas Dilger
patchsets:
+49 earlier PS1 05-11 PS2 05-14 PS3 05-14 PS4 05-14 PS5 05-15 PS6 05-24 PS7 05-24 PS8 05-30 PS9 05-30 PS10 05-31 PS11 05-31 PS12 05-31 PS13 05-31 PS14 06-06 PS15 06-06 PS16 06-06 PS17 06-09 PS18 06-09 PS19 06-09 PS20 06-17 PS21 06-29 PS22 07-27 PS23 08-01 PS24 08-01 PS25 08-03 PS26 08-07 PS27 08-09 PS28 08-10 PS29 08-13 PS30 08-13 PS31 08-13 PS32 08-14 PS33 08-14 PS34 08-14 PS35 08-15 PS36 08-15 PS37 08-15 PS38 08-15 PS39 08-15 PS40 08-21 PS41 09-07 PS42 09-07 PS43 09-09 PS44 09-15 PS45 09-15 PS46 09-28 PS47 10-20 PS48 10-24 PS49 01-16
PS50 01-16 PS51 01-26 PS52 02-08 PS53 03-01 Andreas Dilger PS54 11-02
owner Patrick Farrell · uploader Patrick Farrell · PS54 uploaded 655d ago · NEW · open in Gerrit ↗
commit message
LU-17473 llite: wait for partially successful aio

For various reasons (notably conflicting buffered IO), we
may need to fall back from DIO to buffered IO.  This also
affects AIO, and if it happens, we will sometimes submit
only part of an AIO with the AIO path, completing the rest
with the buffered path.

Userspace doesn't expect this, expecting us to either do
all or none of the IO with AIO, so it doesn't wait for
completion in this case.

To meet this expectation, we must recognize this case and
wait for AIO to complete before returning to userspace.

Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Iac7abac3bd01f027c353120483932a62c6475277
35758 master J !B ✓T ✓R 0/2−
LU-12645 tests: Add read ahead tests
carrying Patrick Farrell · Andreas Dilger voted -1
stalled 267d 2 unresolved L +351 −119
267d
Andreas Dilger voted -1
2 unresolved thread(s) await your reply — last from Andreas Dilger
no vote yet from Qian Yingjin, Li Xi
janitor run: 2 failing config(s), none unique to this patch — janitor results
build #102223 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2025-11-25 02:32
no vote yet: Qian Yingjin, Li Xi
patchsets:
+40 earlier PS16 09-24 PS17 09-24 PS18 09-25 PS19 09-25 PS20 10-01 PS21 10-03 PS22 10-05 PS23 10-05 PS24 10-15 PS25 10-15 PS26 10-15 PS27 10-17 PS28 10-20 PS29 10-21 PS30 11-05 PS31 11-07 PS32 11-08 PS33 12-09 PS34 02-06 PS35 03-07 PS36 01-17 Patrick Farrell (personal) PS37 04-12 Andreas Dilger PS38 04-12 Andreas Dilger PS39 08-10 PS40 08-10 PS41 08-10 PS42 08-10 PS43 08-11 PS44 08-11 PS45 08-11 PS46 08-11 PS47 08-16 PS48 02-14 PS49 02-14 PS50 02-14 PS51 02-14 PS52 02-14 PS53 02-15 PS54 02-15 PS55 02-15
PS56 02-15 PS57 02-15 PS58 02-15 PS59 02-15 PS60 02-15
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS60 2025-11-25 02:32 Andreas Dilger multiop.c:86 — It would be even more useful if `i` was "number of iterations for the next command"?
Andreas Dilger PS60 · 2025-11-25 02:32
It would be even more useful if `i` was "number of iterations for the next command"?
reply PS60 2025-11-25 02:32 Andreas Dilger multiop.c:88 — The `J` option has already been used by madvise(HUGEPAGE), and 'j' is used by this patch, though `j` = "jump" would probably make more sense
Andreas Dilger PS60 · 2025-11-25 02:32
The `J` option has already been used by madvise(HUGEPAGE), and 'j' is used by this patch, though `j` = "jump" would probably make more sense and flock can use something else, maybe `I`?.

It would be good to get this patch landed, since a number of test cases appear to be using the
owner Patrick Farrell · uploader Patrick Farrell · PS60 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-12645 tests: Add read ahead tests

The existing readahead tests are too lenient, not checking
misses at all.  They also do not cover enough cases, and
use a complex special purpose utility, which takes in to
account stripe size, etc.  This is overly complex and not
really correct - strided read patterns don't have to have
any relation to stripe size.

Instead, we can just modify multiop to support writing or
reading a certain number of times, optionally jumping
between each operation.  This allows describing any
possible strided pattern with just four arguments -
iterations, size, jump, and starting offset.  (It's also
possible to use this for backwards reads.)

This patch uses multiop to add a short but strict & varied
set of tests for sequential and strided readahead.  It
also simplifies/replaces many of the existing readahead
tests, which did odd things like disable the cache on the
server, which is irrelevant to client side readahead.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Change-Id: I774585a17deac8c0f3b25ddbe047617177f3caf3
52135 master J !B ✗T –R 0/2
LU-15367 scripts: Add iotrace to multiop script
mine build failure (#118771)
stalled 273d 1 unresolved L +569 −1
273d
build failure (#118771)
1 thread(s) waiting on others
janitor run: 3 failing config(s), none unique to this patch — janitor results
build #118771 FAILURE
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+7 earlier PS1 08-28 PS2 08-28 PS3 08-28 PS4 08-28 PS5 01-25 PS6 02-28 PS7 11-17
PS8 11-17 PS9 11-18 PS10 11-18 PS11 11-18 PS12 11-18
threads: 0 need your reply · 1 waiting on others · 0 own notes · 0 bot
owner Patrick Farrell · uploader Patrick Farrell · PS12 uploaded 274d ago · NEW · open in Gerrit ↗
commit message
LU-15367 scripts: Add iotrace to multiop script

With the standardization of iotrace and multiop having the
ability to take input from a file, we can start directly
translating iotrace recordings to multiop input.

This allows us to use multiop to simulate the I/O call
sequences of an iotrace recording.

There are a number of limitations currently, which we may
choose to fix later (if this turns out very useful):
1. No support for multiple open files (multiop limitation)
2. Can only play-back one thread at a time

We use the ability to go from command to iotrace recordin
back to multiop command to test this functionality.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I2ec4f358c97ceb15b717342af5cc9854b9c60677
52204 master J ✗7B ✓T ✗19R 0/2
LU-13814 osc: Move osc_page members to osc_async_page
mine janitor: 7 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity1@zfs:test_56x +4 more
7 unique failures stalled 275d S +14 −14
275d
janitor: 7 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity1@zfs:test_56x +4 more
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-4, review-dne-part-5, review-dne-part-8, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-5, review-dne-zfs-part-6, review-ldiskfs, review-ldiskfs-ubuntu
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 48 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-sec@ldiskfs+DNE:test_59aseen in 7 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 6 tests. 2 tests failed: lustre-initialization, replay-dual. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 13 tests. 1 tests failed: replay-dual. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 7 tests. 2 tests failed: sanityn, recovery-small. session
review-dne-part-8 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 1 tests. 1 tests failed: node-provisioning. %% NODE-PROVISIONING FAILED MULTIPLE TIMES FOR review-dne-zfs session
review-dne-zfs-part-5 RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: recovery-small. session
review-dne-zfs-part-6 RHEL 8.10 / x86_64 ran 6 tests. 1 tests failed: replay-single. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu failed 2× RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 3 tests failed: sanity-sec, sanity-lnet, sanity. session
6 optional test failure(s) — informational
build #118662 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+26 earlier PS1 08-31 PS2 09-05 PS3 09-09 PS4 09-09 PS5 09-10 PS6 09-10 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-12 PS13 09-14 PS14 09-15 PS15 09-24 PS16 09-25 PS17 09-26 PS18 09-26 PS19 10-05 PS20 10-05 PS21 10-20 PS22 10-22 PS23 10-22 PS24 02-27 PS25 10-28 PS26 11-03
PS27 04-29 PS28 05-01 PS29 11-09 PS30 11-16 PS31 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS31 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: Move osc_page members to osc_async_page

We're going to start using osc_async_page separately from
osc_page, since it's used for both DIO and buffered, but
osc_page is not.

This moves all of the members which are needed for DIO.

This commit deliberately ignores some packing related
issues which will be handled *much* later, since the names
and members of these structs will keep changing.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I994af9563142201a2c7193735ac02568735bd8d5
52188 master J ✓B ✓T ✗13R 0/2
LU-13814 osc: remove use of cp_obj
mine enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-2, review-dne-zfs-part-3, review-ldiskfs, review-ldiskfs-ubuntu
stalled 275d 1 unresolved XS +1 −2
275d
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 11 tests. 2 tests failed: sanity-lnet, sanity-sec. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-dom. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 7 tests. 1 tests failed: recovery-small. session
review-dne-part-6 RHEL 8.10 / x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 7 tests. 2 tests failed: sanity-sec, recovery-small. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 2 tests failed: node-reset, sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 7 tests. 2 tests failed: sanity-lnet, sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
3 optional test failure(s) — informational
build #118659 SUCCESS · tests all Maloo sessions
patchsets:
+31 earlier PS1 08-30 PS2 08-30 PS3 08-31 PS4 09-05 PS5 09-09 PS6 09-09 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-12 PS15 09-14 PS16 09-15 PS17 09-24 PS18 09-25 PS19 09-26 PS20 09-26 PS21 10-05 PS22 10-05 PS23 10-20 PS24 10-22 PS25 10-22 PS26 02-27 PS27 10-28 PS28 11-03 PS29 04-28 PS30 05-01 PS31 07-04
PS32 07-14 PS33 11-06 PS34 11-09 PS35 11-16 PS36 11-16
threads: 0 need your reply · 0 waiting on others · 1 own notes · 0 bot
note PS33 2025-11-06 22:41 Patrick Farrell osc_request.c:1674 — Note to self:
Patrick Farrell PS33 · 2025-11-06 22:41
Note to self:
I am not 100% sure this is finding the right object, but it should blow up if not.  Might need a cl_object_top() here if it does.
owner Patrick Farrell · uploader Patrick Farrell · PS36 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove use of cp_obj

Since we're going to lose the cl_page, we need to remove
usage of its members from the code which handles DIO pages.
This removes cp_obj usage from the one place where it's
used by the DIO code, by adding it to the BRW async args.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ic53b872d930305c345a03c75dc21a613874bf3c8
52187 master J !B ✓T ✗9R 0/2
LU-13814 clio: use osc_dio_completion everywhere
mine enforced failed: review-dne-part-3, review-dne-part-5, review-dne-part-6, review-dne-part-8, review-dne-selinux-ssk-part-2, review-dne-zfs-part-3, review-dne-zfs-part-4, review-dne-zfs-part-5, review-ldiskfs-ubuntu
stalled 275d M +34 −27
275d
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-6 RHEL 9.5 / x86_64 ran 6 tests. 1 tests failed: replay-single. session
review-dne-part-8 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 12 tests. 1 tests failed: sanity-hsm. session
review-dne-zfs-part-5 RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: recovery-small. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 8 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #118658 SUCCESS · tests all Maloo sessions
patchsets:
+31 earlier PS1 08-30 PS2 08-30 PS3 08-31 PS4 09-05 PS5 09-09 PS6 09-09 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-12 PS15 09-14 PS16 09-15 PS17 09-24 PS18 09-25 PS19 09-26 PS20 09-26 PS21 10-05 PS22 10-05 PS23 10-20 PS24 10-22 PS25 10-22 PS26 02-27 PS27 10-28 PS28 11-03 PS29 04-28 PS30 05-01 PS31 07-04
PS32 07-14 PS33 11-06 PS34 11-09 PS35 11-16 PS36 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS36 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: use osc_dio_completion everywhere

The conversion to osc_dio_completion was incomplete because
some other code wasn't ready.  Finish that conversion.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Id6500bfb55dc27e783a91f58498f9a13906056b8
52189 master J ✗3B ✓T ✗12R 0/2
LU-13814 osc: Remove usage of cdp_cl_pages
mine janitor: 3 test failures unique to this patch — recovery-small@zfs:test_155, sanity-sec@ldiskfs+DNE:test_59a, sanity-sec@zfs:test_59a
3 unique failures stalled 275d XS +0 −7
275d
janitor: 3 test failures unique to this patch — recovery-small@zfs:test_155, sanity-sec@ldiskfs+DNE:test_59a, sanity-sec@zfs:test_59a
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-4, review-dne-part-5, review-dne-part-7, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-6, review-dne-zfs-part-7, review-ldiskfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-sec@ldiskfs+DNE:test_59aseen in 8 other reviews
sanity-sec@zfs:test_59aseen in 9 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 11 tests. 2 tests failed: sanity-lnet, sanity-sec. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: insanity. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-6 RHEL 8.10 / x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. session
review-dne-zfs-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 7 tests. 1 tests failed: sanity. session
3 optional test failure(s) — informational
build #118660 SUCCESS · tests all Maloo sessions
patchsets:
+31 earlier PS1 08-30 PS2 08-30 PS3 08-31 PS4 09-05 PS5 09-09 PS6 09-09 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-12 PS15 09-14 PS16 09-15 PS17 09-24 PS18 09-25 PS19 09-26 PS20 09-26 PS21 10-05 PS22 10-05 PS23 10-20 PS24 10-22 PS25 10-22 PS26 02-27 PS27 10-28 PS28 11-03 PS29 04-28 PS30 05-01 PS31 07-04
PS32 07-14 PS33 11-06 PS34 11-09 PS35 11-16 PS36 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS36 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: Remove usage of cdp_cl_pages

As part of eliminating cl_page in the DIO path, we need to
clear out all uses of it.

This is one more minor one - there's no need to clear this
list before returning from this function, because if it
fails we give up entirely.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I9dc1053c542ce7a903a93f7b9a1fb0bfc6ac1641
52203 master J ✗7B ✓T ✗18R 0/2
LU-17063 osc: remove duplicate info
mine janitor: 7 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity1@zfs:test_56x +4 more
7 unique failures stalled 275d 2 unresolved M +33 −43
275d
janitor: 7 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity1@zfs:test_56x +4 more
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-4, review-dne-part-6, review-dne-part-8, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-6, review-dne-zfs-part-7, review-ldiskfs, review-ldiskfs-ubuntu
2 unresolved thread(s) await your reply — last from Andreas Dilger
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-sec@ldiskfs+DNE:test_59aseen in 7 other reviews
sanity-sec@zfs:test_59aseen in 9 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 11 tests. 2 tests failed: sanity-lnet, sanity-sec. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-part-6 RHEL 8.10 / x86_64 ran 5 tests. 2 tests failed: lustre-initialization, replay-single. session
review-dne-part-8 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-zfs-part-6 RHEL 8.10 / x86_64 ran 6 tests. 1 tests failed: replay-single. session
review-dne-zfs-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
6 optional test failure(s) — informational
build #118661 SUCCESS · tests all Maloo sessions
no vote yet: Shaun Tancheff, Andreas Dilger, Sebastien Buisson
patchsets:
+13 earlier PS1 08-31 PS2 09-08 PS3 09-09 PS4 09-10 PS5 09-10 PS6 09-13 PS7 09-14 PS8 09-17 PS9 10-20 PS10 01-19 PS11 02-27 PS12 10-28 PS13 11-03
PS14 04-28 PS15 05-01 PS16 11-09 PS17 11-16 PS18 11-16
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS4 2023-09-10 17:26 Andreas Dilger lustre_osc.h:94 — I think "packed" is needed to combine fields across data structures. However, it is less useful for in-memory data structures so if it is n
Patrick Farrell PS4 · 2023-09-10 16:59
So I think I figured out what's weird here, but check me if I'm wrong.

I don't think it makes sense to both have padding bits AND the ((packed)) attribute?  Basically the effect of the padding bits is to prevent ((packed)) from taking effect.  Neighboring bitfields are combined without the ((packed)) attribute - at least in my observations - but the alignment requirements (the requirements for good performance, that is) are respected.  When you add ((packed)), the alignment requirements are ignored.  Adding the packing bits basically cancels that out again.

Without packed and without the packing bits, we seem to get the desired packing while respecting recommended alignment.

Thoughts?
Andreas Dilger PS4 · 2023-09-10 17:26
I think "packed" is needed to combine fields across data structures.  However, it is less useful for in-memory data structures so if it is no longer needed it could be removed. 

Did you check the structs without "packed" with pahole?
reply PS13 2024-11-14 06:42 Andreas Dilger lustre_osc.h:59 — These bitfields are handled by the compiler, this isn't the same as the "bitfield" macros used by the kernel that need to be "long" variable
Shaun Tancheff PS13 · 2024-11-13 03:51
Does this struct need to be long aligned?
Wondering if 4 byte alignment is an issue for some 64 bit arch
Patrick Farrell PS13 · 2024-11-13 16:09
The alignment here more generally is a bit messy - because we chose packed to prefer memory efficiency, we're not padding.

Much later, I have a portion of this series which removes every member of this struct and handles packing other stuff better.

I'll see about integrating some of it earlier in the series.
Andreas Dilger PS13 · 2024-11-14 06:42
These bitfields are handled by the compiler, this isn't the same as the "bitfield" macros used by the kernel that need to be "long" variables.
owner Patrick Farrell · uploader Patrick Farrell · PS18 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-17063 osc: remove duplicate info

The from/to in osc_page replicate the info provided by
oap_page_off and oap_count in osc_async_page, so just use
those.

Getting the full benefit of this requires removing the
padding, but with that done, this gets us a full 8 bytes
of size reduction in osc_page (and therefore cl_page)
size.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: If9f2ea5abfe1da6e586072f22c5e0758988b7760
52205 master J ✗8B ✓T ✗2R 0/2
LU-13814 osc: rename osc_async_page
mine janitor: 8 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity3@ldiskfs+DNE:test_230n +5 more
8 unique failures stalled 275d L +250 −249
275d
janitor: 8 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity3@ldiskfs+DNE:test_230n +5 more
enforced failed: review-ldiskfs-dne
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity3@ldiskfs+DNE:test_230nseen in 7 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 47 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-hsm@zfs:test_254bNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
1 optional test failure(s) — informational
build #118663 SUCCESS · tests all Maloo sessions
patchsets:
+26 earlier PS1 08-31 PS2 09-05 PS3 09-09 PS4 09-09 PS5 09-10 PS6 09-10 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-12 PS13 09-14 PS14 09-15 PS15 09-24 PS16 09-25 PS17 09-26 PS18 09-26 PS19 10-05 PS20 10-05 PS21 10-20 PS22 10-22 PS23 10-22 PS24 02-27 PS25 10-28 PS26 11-03
PS27 04-29 PS28 05-01 PS29 11-09 PS30 11-16 PS31 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS31 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: rename osc_async_page

osc_async_page isn't for async IO - it's for all data IO.

Rename it osc_transfer_page so the name fits the usage.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I930aae585763f95d9085bea179765a0431bccf52
52206 master J ✗7B ✓T ✗2R 0/2
LU-13814 osc: rename osc_prep_async_page
mine janitor: 7 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity3@ldiskfs+DNE:test_230n +4 more
7 unique failures stalled 275d S +7 −6
275d
janitor: 7 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity3@ldiskfs+DNE:test_230n +4 more
enforced failed: review-ldiskfs-dne
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity3@ldiskfs+DNE:test_230nseen in 7 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-sec@zfs:test_59aseen in 9 other reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
1 optional test failure(s) — informational
build #118664 SUCCESS · tests all Maloo sessions
patchsets:
+27 earlier PS1 08-31 PS2 09-05 PS3 09-09 PS4 09-09 PS5 09-10 PS6 09-10 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-12 PS13 09-14 PS14 09-15 PS15 09-24 PS16 09-25 PS17 09-26 PS18 09-26 PS19 10-05 PS20 10-05 PS21 10-20 PS22 10-22 PS23 10-22 PS24 02-27 PS25 02-27 PS26 10-28 PS27 11-03
PS28 04-29 PS29 05-01 PS30 11-09 PS31 11-16 PS32 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS32 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: rename osc_prep_async_page

This is another piece of renaming osc_async_page to
osc_transfer_page.  This is kept separate to make the
previous patch as focused as possible.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ifd57eec46aeeb059ac836e09aa47322a69cc1493
52207 master J ✗8B ✗T –R 0/2
LU-13814 osc: rename osc_async_flags
mine build failure (#118665)
8 unique failures stalled 275d M +24 −26
275d
build failure (#118665)
janitor: 8 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity3@ldiskfs+DNE:test_230n +5 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity3@ldiskfs+DNE:test_230nseen in 7 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-sec@ldiskfs+DNE:test_59aseen in 7 other reviews
sanity-sec@zfs:test_59aseen in 9 other reviews
build #118665 FAILURE
patchsets:
+26 earlier PS1 08-31 PS2 09-05 PS3 09-09 PS4 09-09 PS5 09-10 PS6 09-10 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-12 PS13 09-14 PS14 09-15 PS15 09-24 PS16 09-25 PS17 09-26 PS18 09-26 PS19 10-05 PS20 10-05 PS21 10-20 PS22 10-22 PS23 10-22 PS24 02-27 PS25 10-28 PS26 11-03
PS27 04-29 PS28 05-01 PS29 11-09 PS30 11-16 PS31 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS31 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: rename osc_async_flags

Async flags are used for all osc pages, rename them
accordingly.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ibf808bcad5f03d950b4d2d05fb11f047fd28f311
52208 master J ✗7B ✗T –R 0/2
LU-13814 clio: add cp_inode to page allocation
mine build failure (#118667)
7 unique failures stalled 275d S +19 −22
275d
build failure (#118667)
janitor: 7 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity1@zfs:test_56x +4 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-flr@zfs:test_70aseen in 75 other reviews
sanity-sec@ldiskfs+DNE:test_59aseen in 5 other reviews
build #118667 FAILURE
patchsets:
+27 earlier PS1 08-31 PS2 09-05 PS3 09-09 PS4 09-09 PS5 09-10 PS6 09-10 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-12 PS13 09-14 PS14 09-15 PS15 09-16 PS16 09-24 PS17 09-25 PS18 09-26 PS19 09-26 PS20 10-05 PS21 10-05 PS22 10-20 PS23 10-22 PS24 10-22 PS25 02-27 PS26 10-28 PS27 11-03
PS28 04-29 PS29 05-01 PS30 11-09 PS31 11-16 PS32 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS32 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: add cp_inode to page allocation

cp_inode can be set correctly during page allocation,
rather than after.  This is a prelude to moving cp_inode to
the osc_transfer_page, but that's better done in a separate
patch.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I509f6cfbae8e5a6ec6b07c8253d68f6dd2794e59
52226 master J ✗10B ✗T –R 0/2
LU-13814 clio: move cp_inode to transfer page
mine build failure (#118666)
10 unique failures stalled 275d M +61 −49
275d
build failure (#118666)
janitor: 10 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity3@ldiskfs+DNE:test_230n +7 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity3@ldiskfs+DNE:test_230nseen in 7 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-lfsck@ldiskfs+DNE:test_18fNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-lfsck@ldiskfs+DNE:test_18gseen in 4 other reviews
sanity-lfsck@ldiskfs+DNE:test_18hseen in 4 other reviews
sanity-sec@ldiskfs+DNE:test_59aseen in 6 other reviews
build #118666 FAILURE
patchsets:
+30 earlier PS1 09-01 PS2 09-01 PS3 09-03 PS4 09-05 PS5 09-09 PS6 09-09 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-12 PS16 09-14 PS17 09-15 PS18 09-16 PS19 09-24 PS20 09-25 PS21 09-26 PS22 09-26 PS23 10-05 PS24 10-05 PS25 10-20 PS26 10-22 PS27 10-22 PS28 02-27 PS29 10-28 PS30 11-03
PS31 04-29 PS32 05-01 PS33 11-09 PS34 11-16 PS35 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS35 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: move cp_inode to transfer page

As part of moving DIO to use only the transfer page and
not cl_page, we need to eliminate uses of cl_page where we
have a transfer page available.  That requires moving
cp_inode to the transfer page.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: If0312c7fa22501b789437479fadb023f09f341b8
52228 master J ✗9B ✗T –R 0/2
LU-13814 osc: replace cra_page
mine build failure (#118669)
9 unique failures stalled 275d S +23 −14
275d
build failure (#118669)
janitor: 9 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa +6 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity3@ldiskfs+DNE:test_230nseen in 7 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-flr@zfs:test_70aseen in 74 other reviews
sanity-sec@ldiskfs+DNE:test_59aseen in 7 other reviews
build #118669 FAILURE
patchsets:
+31 earlier PS1 09-01 PS2 09-01 PS3 09-02 PS4 09-03 PS5 09-05 PS6 09-09 PS7 09-09 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-12 PS17 09-14 PS18 09-15 PS19 09-16 PS20 09-24 PS21 09-25 PS22 09-26 PS23 09-26 PS24 10-05 PS25 10-05 PS26 10-20 PS27 10-22 PS28 10-22 PS29 02-27 PS30 10-28 PS31 11-03
PS32 04-29 PS33 05-01 PS34 11-09 PS35 11-16 PS36 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS36 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: replace cra_page

cra_page requires there to be a cl_page associated with an
OSC transfer page.  Since we're breaking that association,
we replace it with the page index, which can do what's
required.

Test-Parameters: forjanitoronly
Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I1163dae32bce6ae9fcc458251c047f05ddfa6ec1
52227 master J ✗6B ✗T –R 0/2
LU-13814 clio: move cp_page_index to transfer page
mine build failure (#118668)
6 unique failures stalled 275d M +32 −25
275d
build failure (#118668)
janitor: 6 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity1@zfs:test_56x +3 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 47 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
build #118668 FAILURE
patchsets:
+30 earlier PS1 09-01 PS2 09-01 PS3 09-03 PS4 09-05 PS5 09-09 PS6 09-09 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-12 PS16 09-14 PS17 09-15 PS18 09-16 PS19 09-24 PS20 09-25 PS21 09-26 PS22 09-26 PS23 10-05 PS24 10-05 PS25 10-20 PS26 10-22 PS27 10-22 PS28 02-27 PS29 10-28 PS30 11-03
PS31 04-29 PS32 05-01 PS33 11-09 PS34 11-16 PS35 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS35 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: move cp_page_index to transfer page

cp_page_index is needed for both DIO and BIO, so it has to
move to the OSC transfer page.

Test-Parameters: forjanitoronly
Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I2eceda45e3ac0b92973362b5427948fd1163adc9
52229 master J ✓B ✗T –R 0/2
LU-13814 osc: add DIO/BIO related asserts
mine build failure (#118670)
stalled 275d S +10 −0
275d
build #118670 FAILURE
patchsets:
+32 earlier PS1 09-01 PS2 09-01 PS3 09-02 PS4 09-03 PS5 09-03 PS6 09-05 PS7 09-09 PS8 09-09 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-12 PS18 09-14 PS19 09-15 PS20 09-16 PS21 09-24 PS22 09-25 PS23 09-26 PS24 09-26 PS25 10-05 PS26 10-05 PS27 10-20 PS28 10-22 PS29 10-22 PS30 02-27 PS31 10-28 PS32 11-03
PS33 04-29 PS34 05-01 PS35 11-09 PS36 11-16 PS37 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS37 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: add DIO/BIO related asserts

These will be adjusted when cp_type is moved to the otp
page, but for now, these asserts help ensure we don't have
any DIO pages in unexpected locations.

Test-Parameters: forjanitoronly
Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I9342a502e0195d86af5f6826e5677b96f6b57f20
55655 master J –B ✗T –R 0/2−
LU-0000 tgt: async write commit
mine needs rebase — checkpatch: cannot be cherry-picked
stalled 284d L +345 −143
284d
needs rebase — checkpatch: cannot be cherry-picked
build failure (#106123)
build #106123 FAILURE
patchsets: PS1 07-07 PS2 07-13
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 767d ago · NEW · open in Gerrit ↗
commit message
LU-0000 tgt: async write commit

A first and insufficient try at server side async.

For hybrid, we should in fact do everything async except
lock acquisition.  That means splitting the handler in to
a sync and async portions.

Test-Parameters: forbuildonly
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: Iba526e4d75b41992ea3ed77bb3c2a76fa9a1c41b
52391 master J !B ✓T ✓R 2/2−
LU-13805 llite: fail unaligned DIO for RDMA pages
mine needs rebase — checkpatch: cannot be cherry-picked
udio stalled 295d 1 unresolved M +98 −52
295d
needs rebase — checkpatch: cannot be cherry-picked
Alexey Lyashkov voted -1
1 unresolved thread(s) await your reply — last from Timothy Day
no vote yet from Qian Yingjin, Shaun Tancheff, Shuichi Ihara, Sebastien Buisson
janitor run: 2 failing config(s), none unique to this patch — janitor results
4 optional test failure(s) — informational
build #117333 SUCCESS · tests all Maloo sessions
reviews: Alexey Lyashkov -1 2025-10-16 08:58 · Andreas Dilger +1 2025-10-15 23:37 · Timothy Day +1 2025-10-23 18:16
no vote yet: Qian Yingjin, Shaun Tancheff, Shuichi Ihara, Sebastien Buisson
patchsets:
+16 earlier PS1 09-15 PS2 09-15 PS3 09-28 PS4 10-20 PS5 10-24 PS6 01-16 PS7 02-08 PS8 02-23 PS9 02-23 PS10 03-01 Andreas Dilger PS11 05-14 PS12 06-07 PS13 06-07 PS14 07-07 PS15 07-11 PS16 07-20
PS17 12-09 PS18 04-01 PS19 04-28 PS20 09-26 PS21 10-10
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS21 2025-10-23 18:16 Timothy Day sanity.sh:15571 — It would be nice to have a sanity test (or perhaps a small sanity-gds.sh) that exercises this using real hardware, for those that have it av
Timothy Day PS21 · 2025-10-23 18:16
It would be nice to have a sanity test (or perhaps a small sanity-gds.sh) that exercises this using real hardware, for those that have it available. That's outside the scope of this patch, but this test case would be good to have in such a test suite.
owner Patrick Farrell · uploader Patrick Farrell · PS21 uploaded 313d ago · NEW · open in Gerrit ↗
commit message
LU-13805 llite: fail unaligned DIO for RDMA pages

Unaligned DIO needs to directly access the page contents in
order to copy to the buffer.  This means it can't work with
RDMA only (non-CPU accessible) pages.

Implement that limitation.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I52bd1d4cc143e1018ddf6942403142f26be4430f
60498 master J ✓B ✓T ✗12R 0/2−
LU-19223 shrinkers: Add nr_scanned to all shrinkers
mine needs rebase — checkpatch: cannot be cherry-picked
stalled 295d M +36 −15
295d
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-5, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-5, review-ldiskfs, review-ldiskfs-ubuntu
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 13 tests. 1 tests failed: sanity-sec. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 13 tests. 1 tests failed: sanity-sec. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 7 tests. 2 tests failed: recovery-small, lustre-rsync-test. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: recovery-small. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 7 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 7 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 8 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #115489 SUCCESS · tests all Maloo sessions
no vote yet: James Simmons, Andreas Dilger, Neil Brown, Timothy Day
patchsets: PS1 08-02 PS2 08-03
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 381d ago · NEW · open in Gerrit ↗
commit message
LU-19223 shrinkers: Add nr_scanned to all shrinkers

If the Lustre shrinkers can't free any pages but don't set
nr_scanned, they may be called forever by the kernel - see
do_shrink_slab() in the kernel.

Add nr_scanned support to the remaining Lustre shrinkers:
- LDLM pools server and client shrinkers
- Lu site shrinker
- Page pools shrinkers

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ica35a0dabe1dce78fd3cd29174ef142a965be824
60807 master J ✗3B ✓T ✗14R 0/2
LU-0000 osc: ghost index entries for deleted pages
mine janitor: 3 test failures unique to this patch — conf-sanity1@ldiskfs+DNE:test_30a, recovery-small@ldiskfs+DNE:test_67, sanity-sec@zfs:test_21
3 unique failures stalled 300d M +209 −35
300d
janitor: 3 test failures unique to this patch — conf-sanity1@ldiskfs+DNE:test_30a, recovery-small@ldiskfs+DNE:test_67, sanity-sec@zfs:test_21
enforced failed: review-dne-part-1, review-dne-part-4, review-dne-part-5, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-dne-zfs-part-4, review-dne-zfs-part-5, review-ldiskfs, review-ldiskfs-ubuntu, review-zfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity1@ldiskfs+DNE:test_30aseen in 1 other review
recovery-small@ldiskfs+DNE:test_67NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-sec@zfs:test_21seen in 2 other reviews
failed enforced testplatformdetail
review-dne-part-1 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-1 crashed RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-4 crashed RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-flr. %% THIS TEST SESSION CRASHED %% session
review-dne-part-4 crashed RHEL 9.5 / x86_64 ran 11 tests. 1 tests failed: sanity-flr. %% THIS TEST SESSION CRASHED %% session
review-dne-part-5 crashed RHEL 8.10 / x86_64 ran 5 tests. 2 tests failed: sanityn, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-part-5 crashed RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. %% THIS TEST SESSION CRASHED %% session
review-dne-selinux-ssk-part-1 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-1 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 crashed RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-flr. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-5 crashed RHEL 8.10 / x86_64 ran 5 tests. 2 tests failed: sanityn, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 8 tests. 1 tests failed: sanity. session
review-zfs crashed RHEL 8.10 / x86_64 ran 10 tests. 1 tests failed: sanity-flr. %% THIS TEST SESSION CRASHED %% session
6 optional test failure(s) — informational
build #115873 SUCCESS · tests all Maloo sessions
patchsets: PS1 08-19 PS2 08-19 PS3 08-19 Janitor Bot
your previous vote: -1 on PS1 (2025-08-19 20:35) — now at PS3
owner Patrick Farrell · uploader Janitor Bot · PS3 uploaded 365d ago · NEW · open in Gerrit ↗
commit message
LU-0000 osc: ghost index entries for deleted pages

Replace OSC radix tree page entries with a ghost value
that encodes the page index when pages are deleted.
On insert, detect and replace such ghosts with the real page.

This allows us to discard these 'ghost' pages after
they've been removed.

Add COIO_PCACHE_TRUNCATE and handle it in vvp to truncate
pagecache by [start,end] page indices for a cl_object.

Aggregate contiguous ghost indices in OSC discard paths and
invoke cl_object_inode_ops() to drop pagecache efficiently.

Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I9f1d9a383e267fd6f1d8419d180f99bdb71d6667
58981 master J !B ✓T ✗15R 0/2−
LU-17159 lod: mark file layouts with append striping
mine needs rebase — checkpatch: cannot be cherry-picked
stalled 364d 1 unresolved M +74 −2
364d
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-part-1, review-dne-part-4, review-dne-part-6, review-dne-selinux-ssk-part-1, review-dne-subtest-change, review-dne-zfs-part-1, review-dne-zfs-part-4, review-dne-zfs-subtest-change, review-ldiskfs, review-ldiskfs-ubuntu
Andreas Dilger voted -1
1 unresolved thread(s) await your reply — last from Andreas Dilger
janitor run: build failed — no tests ran — janitor results
failed enforced testplatformdetail
review-dne-part-1 crashed RHEL 9.4 / x86_64 ran 6 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-1 crashed RHEL 8.10 / x86_64 ran 6 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-4 crashed RHEL 8.10 / x86_64 ran 13 tests. 2 tests failed: sanity-flr, sanity-dom. %% THIS TEST SESSION CRASHED %% session
review-dne-part-4 crashed RHEL 9.4 / x86_64 ran 13 tests. 2 tests failed: sanity-flr, sanity-dom. %% THIS TEST SESSION CRASHED %% session
review-dne-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: replay-single. session
review-dne-selinux-ssk-part-1 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-subtest-change RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 crashed RHEL 8.10 / x86_64 ran 6 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 crashed RHEL 8.10 / x86_64 ran 13 tests. 2 tests failed: sanity-flr, sanity-dom. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-subtest-change RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs crashed RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 9.4 / x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.10 / x86_64, RHEL 9.4 / x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-ubuntu crashed RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 8 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
7 optional test failure(s) — informational
build #112825 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2025-04-26 10:40
no vote yet: Qian Yingjin
patchsets: PS1 04-25 PS2 04-26 PS3 04-26 PS4 04-26 PS5 04-26
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS5 2025-04-29 23:35 Andreas Dilger lod_object.c:5405 — Instead of making this a
Zhenyu Xu PS5 · 2025-04-29 16:03
if want_composite is true, then we need to set mirror_count to 1, as there is an assertion to make sure mirror_count == 0 only for plain layout file in lod_fill_mirrors() as LU-18962 shows.
Andreas Dilger PS5 · 2025-04-29 23:35
Instead of making this a
owner Patrick Farrell · uploader Patrick Farrell · PS5 uploaded 480d ago · NEW · open in Gerrit ↗
commit message
LU-17159 lod: mark file layouts with append striping

Add LCM_FL_APPEND flag to file layouts when a file is opened with
O_APPEND flag. This makes it easier to diagnose layout behavior
when the MDS decides to use append-specific layout, which can
override the default file layout.

Add dah_flags to dt_allocation_hint structure to pass MDS_OPEN_APPEND
flag from mdd_object_make_hint() to lod_ah_init(). The flag is set in
mdd_object_make_hint() when MDS_OPEN_APPEND is present in the open
flags, and is then used in lod_ah_init() to set the LCM_FL_APPEND flag
in the layout.

Also added BUILD_BUG_ON tests for LCM_FL flags in wiretest.c to ensure
the flag values remain consistent.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I927faae3a385a9d0acf40a37ab1be0c0d4cbb82c
60538 master J !B ✗T –R 0/2
LU-0000 lod: initial implementation
mine build failure (#115548)
stalled 379d L +254 −81
379d
janitor run: build failed — no tests ran — janitor results
build #115548 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 379d ago · NEW · open in Gerrit ↗
commit message
LU-0000 lod: initial implementation

This is an initial and partially incorrect
implementation, which I'll be tearing up a bit
until we can actually get layout creation to
work.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I229b5751b60f8078e22dbb4ed3e2e205d3e4c9a1
54196 master J ✗3B ✓T ✗2R 0/2
LU-17433 osc: simplify osc_lock_set
mine janitor: 3 test failures unique to this patch — conf-sanity3@ldiskfs+DNE:test_135, sanity-flr@ldiskfs+DNE:test_200a, sanity-flr@zfs:test_200b
3 unique failures stalled 379d M +10 −68
379d
janitor: 3 test failures unique to this patch — conf-sanity3@ldiskfs+DNE:test_135, sanity-flr@ldiskfs+DNE:test_200a, sanity-flr@zfs:test_200b
enforced failed: review-dne-selinux-ssk-part-2, review-ldiskfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity3@ldiskfs+DNE:test_135seen in 20 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 2 other reviews
sanity-flr@zfs:test_200bseen in 1 other review
failed enforced testplatformdetail
review-dne-selinux-ssk-part-2 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity-sec. session
review-ldiskfs crashed RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity-lnet. %% THIS TEST SESSION CRASHED %% session
build #102531 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 904d ago · NEW · open in Gerrit ↗
commit message
LU-17433 osc: simplify osc_lock_set

The presence of osc_lock_set_writer and osc_lock_set_reader
and their complexity appears to be a holdover from the old
CLIO, before the 2.7 era CLIO simplification.

Most of the checks in the functions are unnecessary - we
can't get here unless it's the same object and the range of
the lock matches that of the IO.  These may've been needed
with the older more complicated CLIO locking, but they're
not needed now.

Clean all that up to make the code a bit more readable.

Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I728039e18834eb08d9eb1f3492f8001c2a12f52b
55918 master J ✗1B ✓T …R 0/2
LU-17993 debug: to reveal page count issue
reviewing Zhenyu Xu · PS2→PS22 since your -1 — your objection was dropped
1 unique failure stalled 379d 8 unresolved M +79 −3
379d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_398cseen in 1 other review
build #107556 SUCCESS · tests all Maloo sessions · test queue
no vote yet: Qian Yingjin, Shaun Tancheff, Hongchao Zhang
patchsets:
+17 earlier PS1 08-02 PS2 08-05 PS3 08-07 PS4 08-08 PS5 08-29 Hongchao Zhang PS6 08-30 Hongchao Zhang PS7 08-30 Hongchao Zhang PS8 09-01 Hongchao Zhang PS9 09-02 Hongchao Zhang PS10 09-03 Hongchao Zhang PS11 09-03 Hongchao Zhang PS12 09-04 Hongchao Zhang PS13 09-04 Hongchao Zhang PS14 09-05 Hongchao Zhang PS15 09-05 Hongchao Zhang PS16 09-05 Hongchao Zhang PS17 09-09 Hongchao Zhang
PS18 09-09 Hongchao Zhang PS19 09-10 Hongchao Zhang PS20 09-10 Hongchao Zhang PS21 09-11 Hongchao Zhang PS22 09-12 Hongchao Zhang
your previous vote: -1 on PS2 (2024-08-05 21:20) — now at PS22
threads: 7 need your reply · 1 waiting on others · 0 own notes · 0 bot
reply PS2 2024-08-05 23:05 Oleg Drokin COMMIT_MSG:12 — since it looks like this patch will get refreshed eventually, please also fix this typo -> divide.
Oleg Drokin PS2 · 2024-08-05 23:05
since it looks like this patch will get refreshed eventually, please also fix this typo -> divide.
reply PS1 2024-08-03 06:05 Shaun Tancheff file.c:2184 — truncate
Shaun Tancheff PS1 · 2024-08-03 06:05
truncate
reply PS1 2024-08-05 04:51 Zhenyu Xu rw26.c:387 — I have a doubt here, if the start of the 1st page is not page aligned, since @to most of time is PAGE_SIZE, so at each loop, the page is alw
Zhenyu Xu PS1 · 2024-08-05 04:51
I have a doubt here, if the start of the 1st page is not page aligned, since @to most of time is PAGE_SIZE, so at each loop, the page is always not page aligned as well, is it a glitch here?

Should @to be like this:
       if (from != 0)
              to = min(PAGE_SIZE - from, from + size);
       else
              to = min(PAGE, from + size);
and except the 1st/last page, all pages in the middle should always be aligned full page.
reply PS2 2024-08-27 06:27 Shaun Tancheff rw26.c:386 — No changes here, code is correct as is.
Shaun Tancheff PS2 · 2024-08-27 06:27
No changes here, code is correct as is.
reply PS1 2024-08-05 04:51 Zhenyu Xu cl_io.c:1383 — from here we can see that the end of the 1st page is page aligned.
Zhenyu Xu PS1 · 2024-08-05 04:51
from here we can see that the end of the 1st page is page aligned.
reply PS1 2024-08-05 04:51 Zhenyu Xu cl_io.c:1387 — and the end of the last page could be page unaligned.
Zhenyu Xu PS1 · 2024-08-05 04:51
and the end of the last page could be page unaligned.
reply PS1 2024-08-03 07:16 Andreas Dilger sanity.sh:14393 — More importantly, for older servers the unaligned DIO should be handled gracefully in some manner, since applications running on newer clien
Shaun Tancheff PS1 · 2024-08-03 06:05
Can we do:

unaligned_dio || skip "Need unaligned dio support"

Instead of server version check?
Andreas Dilger PS1 · 2024-08-03 07:16
More importantly, for older servers the unaligned DIO should be handled gracefully in some manner, since applications running on newer clients will try this and we shouldn't allow them to crash the servers. Just skipping the test doesn't solve the interop problem.

One option for UDIO is to expose the DIO alignment via statx, as XFS does. That will allow userspace applications to know what the DIO alignment requirements are, and applications that don't follow them can return EIO or other error directly (as they did befoer UDIO existed, instead of trying to emulate their way through the issues.
owner Zhenyu Xu · uploader Hongchao Zhang · PS22 uploaded 706d ago · NEW · open in Gerrit ↗
commit message
LU-17993 debug: to reveal page count issue

as title

Test-Parameters: fortestonly
Test-Parameters: testlist=sanity env=ONLY=119h,ONLY_REPEAT=500 clientdistro=el8.8 serverdistro=el8.8
Signed-off-by: Hongchao Zhang <hongchao@whamcloud.com>
Change-Id: Ia502400fb20603c369c34a3fb397a472cc3403c3
57219 master J !B ✓T ✗1R 0/2
LU-0000 obdclass: Refactor cl_object_attr_update
mine enforced failed: review-ldiskfs-dne
stalled 379d S +5 −6
379d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 9.3 / x86_64 ran 5 tests. 2 tests failed: sanity-lnet, sanity. session
build #109281 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 625d ago · NEW · open in Gerrit ↗
commit message
LU-0000 obdclass: Refactor cl_object_attr_update

The object named "top" is not actually a top object - it's
any cl_object and we navigate the list accordingly.

Clarify.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6043f0e6c1705cfeeece62cd71f2208b2197f5cc
58621 master J ✗1B ✓T ✗2R 3/2
LU-13814 llite: remove unnecessary smp_mb()
mine janitor: 1 test failure unique to this patch — replay-single@ldiskfs+DNE:test_65a
1 unique failure stalled 379d XS +0 −5
379d
janitor: 1 test failure unique to this patch — replay-single@ldiskfs+DNE:test_65a
enforced failed: review-dne-part-6, review-ldiskfs-ubuntu
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
replay-single@ldiskfs+DNE:test_65aseen in 66 other reviews
failed enforced testplatformdetail
review-dne-part-6 crashed RHEL 9.4 / x86_64 ran 6 tests. 1 tests failed: replay-single. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
2 optional test failure(s) — informational
build #112134 SUCCESS · tests all Maloo sessions
reviews: Qian Yingjin +1 2025-04-01 01:45 · Marc Vef +1 2025-04-01 09:10 · Andreas Dilger +1 2025-03-31 20:40
patchsets: PS1 03-31 PS2 03-31
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 506d ago · NEW · open in Gerrit ↗
commit message
LU-13814 llite: remove unnecessary smp_mb()

This smp_mb() was added as part of:
https://review.whamcloud.com/c/39542

To help protect the csi_sync_nr atomic.

But it was not justified there, and is not in fact needed.
IO submission has *several* memory barriers before another
thread can see the IO.  (Note there is a discussion on that
Gerrit suggesting it was unneeded.)

For example:
osc_queue_sync_pages uses a spinlock to put the extent on
the list(s) (after this point, it's available for ptlrpc to
make an RPC).  There are several other instances of
spinlocks, AND the use of csi_sync_nr is under memory
barriers (in atomic_dec_and_lock, or under a spinlock).

Let's remove this.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I8b81f8e02025cae801a980d2856993c6d4023716
58680 master J ✗1B ✓T ✗6R 0/2−
LU-18843 mdt: parallel rename in a single directory
mine janitor: 1 test failure unique to this patch — sanity1@zfs:test_24oa
1 unique failure stalled 379d M +70 −25
379d
janitor: 1 test failure unique to this patch — sanity1@zfs:test_24oa
enforced failed: review-dne-part-1, review-ldiskfs, review-ldiskfs-ubuntu
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@zfs:test_24oaNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.4 / x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.4 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.4 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
5 optional test failure(s) — informational
build #112231 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, kg.xu
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 502d ago · NEW · open in Gerrit ↗
commit message
LU-18843 mdt: parallel rename in a single directory

Testing...

Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I920f9c0624ef25469ece046244d97623018acd63
55055 master J !B ✗T –R 0/2−
LU-17831 osc: batch discard for write locks
mine needs rebase — checkpatch: cannot be cherry-picked
stalled 379d M +74 −14
379d
needs rebase — checkpatch: cannot be cherry-picked
build failure (#108972)
janitor run: 42 failing config(s), none unique to this patch — janitor results
build #108972 FAILURE
no vote yet: Qian Yingjin
patchsets: PS1 05-08 PS2 11-13 PS3 11-13
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 644d ago · NEW · open in Gerrit ↗
commit message
LU-17831 osc: batch discard for write locks

Batch page discard when cancelling a write lock.
This roughly halves the time to cancel pages under a write
lock.  A future patch will do this for read locks as well.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I214f6babb69fc2117379490efe3d2d62b8122d90
33710 master J ✓B ✓T ✗1R 0/2
LU-11532 tests: Improve cancel_lru_locks debug
carrying Patrick Farrell · enforced failed: review-dne-zfs-part-3
stalled 380d XS +1 −0
380d
failed enforced testplatformdetail
review-dne-zfs-part-3 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
2 optional test failure(s) — informational
build #97498 SUCCESS · tests all Maloo sessions
no vote yet: James Nunez, Patrick Farrell, Andreas Dilger, Oleg Drokin, Elena
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1084d ago · NEW · open in Gerrit ↗
commit message
LU-11532 tests: Improve cancel_lru_locks debug

Cancel_lru_locks is almost always (always?) used to drop
all locks in a namespace, not just the unused ones.

A very common test failure is when a lock is not cleared
because it is unexpectedly still in use.  Improve the
cancel_lru_locks function to report this case.

A quick scan of the test-framework suggests nothing is
relying on having null output from this function, so this
should be safe even  if some tests are expecting some locks
to be in use (and so remain after this call).

This should improve debugability of failures like LU-11532.

Signed-off-by: Patrick Farrell <paf@cray.com>
Change-Id: Idbb62b9a8881c19ae135bdb1cb22f366d236b43b
36229 master J !B ✗T –R 0/2
LU-12782 llite: Convert attr lock to rwlock
carrying Patrick Farrell · build failure (#95693)
stalled 380d L +146 −109
380d
janitor run: 1 failing config(s), none unique to this patch — janitor results
build #95693 FAILURE
no vote yet: Wang Shilong, James Simmons, Qian Yingjin, Andreas Dilger, Li Dongyang, Shilong Wang
patchsets: PS5 06-18 PS6 06-18 PS7 06-18
owner Patrick Farrell · uploader Patrick Farrell · PS7 uploaded 1158d ago · NEW · open in Gerrit ↗
commit message
LU-12782 llite: Convert attr lock to rwlock

Under some shared file workloads, the cl_object_attr_lock
ends up 'hot'.  Because it is a spinlock which is often
used only for reading, it can easily be converted to an
rwlock.

This should show up in some shared file workloads, notably
shared file reading.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I50d6f04f31eeea3ab5af58a1b6b56c1d4cfc7093
38151 master J ✗21B ✓T ✗15R 0/2
LU-13419 osc: Improve speed of enter_cache_try
carrying Patrick Farrell (personal) · janitor: 21 test failures unique to this patch — sanity1@ldiskfs+DNE:test_39j, sanity2@ldiskfs+DNE:test_64f, sanity2@ldiskfs+DNE:test_133c +18 more
21 unique failures stalled 380d M +31 −23
380d
janitor: 21 test failures unique to this patch — sanity1@ldiskfs+DNE:test_39j, sanity2@ldiskfs+DNE:test_64f, sanity2@ldiskfs+DNE:test_133c +18 more
enforced failed: review-dne-part-1, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-dne-zfs-part-4, review-dne-zfs-part-5, review-dne-zfs-part-6, review-dne-zfs-part-7, review-ldiskfs, review-zfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_39jNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_64fseen in 37 other reviews
sanity2@ldiskfs+DNE:test_133cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_398gseen in 13 other reviews
sanity1@zfs:test_42eNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@zfs:test_45seen in 4 other reviews
sanity-benchmark@ldiskfs+DNE:test_fsxseen in 17 other reviews
sanity-benchmark@ldiskfs+DNE:test_fsx_partial_punchseen in 8 other reviews
sanity-dom@ldiskfs+DNE:test_fsxseen in 7 other reviews
sanity-dom@zfs:test_fsxseen in 7 other reviews
sanity-dom@zfs:test_42eNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-dom@zfs:test_4NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 63 other reviews
sanity-flr@zfs:test_70aseen in 53 other reviews
sanity-hsm@zfs:test_3NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@ldiskfs+DNE:test_16kNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@ldiskfs+DNE:test_18seen in 1 other review
sanityn@zfs:test_16aseen in 3 other reviews
sanityn@zfs:test_16bseen in 3 other reviews
sanityn@zfs:test_16kNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@zfs:test_18seen in 1 other review
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.3 / x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-part-4 RHEL 9.3 / x86_64 ran 9 tests. 2 tests failed: sanity-flr, sanity-dom. session
review-dne-part-5 RHEL 9.3 / x86_64 ran 6 tests. 2 tests failed: sanityn, lustre-rsync-test. session
review-dne-part-6 RHEL 9.3 / x86_64 ran 6 tests. 1 tests failed: replay-single. session
review-dne-selinux-ssk-part-1 RHEL 8.9 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 crashed RHEL 8.9 / x86_64 ran 6 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 RHEL 8.9 / x86_64 ran 9 tests. 1 tests failed: sanity-dom. session
review-dne-zfs-part-5 RHEL 8.9 / x86_64 ran 6 tests. 2 tests failed: sanityn, lustre-rsync-test. session
review-dne-zfs-part-6 RHEL 8.9 / x86_64 ran 6 tests. 1 tests failed: replay-single. session
review-dne-zfs-part-7 RHEL 8.9 / x86_64 ran 4 tests. 1 tests failed: sanity-pcc. session
review-ldiskfs RHEL 9.3 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9 / x86_64, RHEL 9.3 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-zfs RHEL 8.9 / x86_64 ran 10 tests. 2 tests failed: replay-single, sanity-flr. session
18 optional test failure(s) — informational
build #108929 SUCCESS · tests all Maloo sessions
no vote yet: Wang Shilong, Qian Yingjin, Shuichi Ihara, Neil Brown, Li Dongyang, James Simmons, Andreas Dilger
owner Patrick Farrell (personal) · uploader Patrick Farrell · PS11 uploaded 646d ago · NEW · open in Gerrit ↗
commit message
LU-13419 osc: Improve speed of enter_cache_try

When doing writes to many files, one bottleneck on a client
currently seems to be the grant code, specifically
spinning in the lock around:
osc_enter_cache_try

The contention is *just* on osc_enter_cache_try, so there's
no obvious way to refactor the lock, etc.  Instead, we can
look at where time is going in the function.

Two things that stand out:
obd_dirty_pages is an atomic, and expensive:
In my perf tracing, the add_return to this is 50% of the
time in this function.

This can be replaced with a percpu_counter.

These benchmark #s are with the earlier version of the
patch, which mistakenly replaced the atomic with a bare
unsigned long.  I'm not currently able to benchmark the
percpu_counter, but it should be similar.

mpirun -np 36 $IOR -o $LUSTRE -w -t 1M -b 2G -i 1 -F

That's 36 processes on one client, writing to separate
files.

Before patch:
5942 MiB/s
After patch:
14950 MiB/s

Looking in perf, the change is huge:
I go from spending 60% of the time in osc_enter_cache_try
to around 30%, but that's while moving 2.3x the amount of
data per second.

Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: If5a69b906c6b56786e6a06dccc723781591419e8
44206 master J ✓B ✓T ✗2R 0/2
LU-14838 ldlm: Disable lockless on contention
mine enforced failed: review-dne-part-1, review-dne-part-6
stalled 380d M +9 −58
380d
failed enforced testplatformdetail
review-dne-part-1 CentOS 8.3/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-part-6 crashed CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: replay-single. %% THIS TEST SESSION CRASHED %% session
build #22481 SUCCESS · tests all Maloo sessions
no vote yet: Wang Shilong, Andreas Dilger, Mikhail Pershin, Zhenyu Xu, Oleg Drokin
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1828d ago · NEW · open in Gerrit ↗
commit message
LU-14838 ldlm: Disable lockless on contention

The contention detection code is mostly broken, and if it
ever returns -EUSERS to the client, the client will crash
or corrupt user data.

The code is being retained because a rewrite is in flight
and it would be much harder to do that if the code were
fully removed.

But let's disable it at least.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I3128288df8ddd39d2875c817830f7a1884c0e763
44386 master J !B ✓T ✗3R 0/2
LU-14882 tests: Fix S_NOSEC tests
mine enforced failed: review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-ldiskfs-arm
stalled 380d M +51 −34
380d
failed enforced testplatformdetail
review-dne-selinux-ssk-part-1 CentOS 8.3/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs-arm CentOS 8.3/aarch64, CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanity. session
build #82099 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1854d ago · NEW · open in Gerrit ↗
commit message
LU-14882 tests: Fix S_NOSEC tests

The S_NOSEC tests were using incorrect fail_loc values, and
also did not work correctly with correct fail_loc values.

Correct the fail_locs and fix the tests.

Properly fixing the tests required an odd bit of behavior:
Userspace cannot normally tell if we took a lock in Lustre
or not.  This was the problem with the earlier tests:
A successful tests was identical to normal operation, so
it was missed that the tests did not work.

The solution is to return an error when we detect the
*correct* behavior (using a fail loc).  This allows the
test to clearly tell the difference between a successful
test and normal operation.

Fixes: 8bc4b26453 ("LU-8656 vvp: Add S_NOSEC support")
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I3650bb304b7548ba72d2c1812b30c0217883a441
44401 master J !B ✓T ✗9R 0/2
LU-14887 llite: Add DIO splitting tunables
mine enforced failed: review-dne-part-1, review-dne-part-4, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-dne-zfs-part-4, review-ldiskfs, review-ldiskfs-arm, review-ldiskfs-ubuntu, review-zfs
stalled 380d L +298 −16
380d
failed enforced testplatformdetail
review-dne-part-1 CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-dne-part-4 CentOS 8.3/x86_64 ran 11 tests. 2 tests failed: sanity-flr, sanity-dom. session
review-dne-selinux-ssk-part-1 CentOS 8.3/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-dne-zfs-part-4 CentOS 8.3/x86_64 ran 11 tests. 1 tests failed: sanity-dom. session
review-ldiskfs CentOS 8.3/x86_64 ran 7 tests. 1 tests failed: sanity. session
review-ldiskfs-arm CentOS 8.3/aarch64, CentOS 8.3/x86_64 ran 8 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu CentOS 8.3/x86_64, Ubuntu 20.04/x86_64 ran 8 tests. 1 tests failed: sanity. session
review-zfs crashed CentOS 8.3/x86_64 ran 10 tests. 1 tests failed: sanity-flr. %% THIS TEST SESSION CRASHED %% session
build #82259 SUCCESS · tests all Maloo sessions
no vote yet: Wang Shilong, Shuichi Ihara, Andreas Dilger
owner Patrick Farrell · uploader Patrick Farrell · PS7 uploaded 1846d ago · NEW · open in Gerrit ↗
commit message
LU-14887 llite: Add DIO splitting tunables

The new faster DIO path is great, but benefit is only seen
if I/O is split to multiple RPCs.  Currently, this only
happens if I/O size is > RPC size or if I/O crosses a
stripe boundary.

This requirement for splitting means that there is an
inherent conflict between the desire to do large RPCs and
doing single stream I/O at high speed.

This patch adds a pair of tunables, turning on some I/O
splitting by default while allowing users to control the
degree.

DIO parallelism, at the llite layer, specifying how many
chunks we should try to split a DIO In to
Minimum preferred I/O size, at the OSC layer, specifying
the minimum size to which we should split I/O.

Parallelism is a global control of how much splitting is
desired for best performance, the overall preference
between maximum RPC size and maximum single stream
performance.

The OSC level control is because some OSTs have
dramatically different performance with synchronous I/O,
so for a spinning OST, it may be desirable to enforce a
higher minimum I/O size (and so less parallelism), and the
reverse for a flash OST.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I5ce010d97b0bf6d91d05d36a2c74268432b5f1f2
45276 master J ✗5B ✓T ✗5R 0/2
LU-15069 llite: Move most readahead code to ra.c
mine janitor: 5 test failures unique to this patch — sanity-pfl@zfs:test_15, sanity-pfl@zfs:test_16c, sanity-pfl@zfs:test_17 +2 more
5 unique failures stalled 380d XL +1011 −898
380d
janitor: 5 test failures unique to this patch — sanity-pfl@zfs:test_15, sanity-pfl@zfs:test_16c, sanity-pfl@zfs:test_17 +2 more
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-zfs-part-2, review-dne-zfs-part-4, review-zfs
janitor flagged test failures unique to this patch
unique failing testhistory
sanity-pfl@zfs:test_15seen in 3 other reviews
sanity-pfl@zfs:test_16cseen in 2 other reviews
sanity-pfl@zfs:test_17seen in 2 other reviews
sanity-pfl@zfs:test_18seen in 3 other reviews
sanity-pfl@zfs:test_19cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-1 CentOS 8.3/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-part-2 CentOS 8.3/x86_64 ran 7 tests. 1 tests failed: replay-dual. session
review-dne-zfs-part-2 CentOS 8.3/x86_64 ran 7 tests. 2 tests failed: sanity-lfsck, replay-dual. session
review-dne-zfs-part-4 CentOS 8.3/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-zfs crashed CentOS 8.3/x86_64 ran 10 tests. 1 tests failed: sanity-quota. %% THIS TEST SESSION CRASHED %% session
build #83732 SUCCESS · tests all Maloo sessions
no vote yet: Aurelien Degremont
patchsets: PS1 10-18 PS2 10-18 PS3 10-18
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1766d ago · NEW · open in Gerrit ↗
commit message
LU-15069 llite: Move most readahead code to ra.c

The readahead algorithm/prediction code is mixed weirdly
throughout rw.c, which is mostly code which actually moves
data.  Because the prediction/window management code is not
clearly split from the page reading code, there's still
some in rw.c - but this still makes things clearer.

There are also a few trivial function renames where names
were wrong (eg, RAS instead of RIA), and one extra debug
print.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Icc17c057f23233f9f3be8bcf73b9730dfe6b4856
46135 master J ✓B ✓T ✗3R 1/2
LU-15483 tests: Reduce I/O sizes
mine enforced failed: review-dne-part-5, review-dne-zfs-part-2, review-dne-zfs-part-6
stalled 380d S +19 −19
380d
failed enforced testplatformdetail
review-dne-part-5 CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanity-scrub. session
review-dne-zfs-part-2 CentOS 8.3/x86_64 ran 7 tests. 1 tests failed: replay-dual. session
review-dne-zfs-part-6 CentOS 8.3/x86_64 ran 4 tests. 1 tests failed: replay-single. session
build #85874 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2022-01-27 00:49
patchsets: PS1 01-14 PS2 01-26
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 1666d ago · NEW · open in Gerrit ↗
commit message
LU-15483 tests: Reduce I/O sizes

A lot of the LU-13799 tests use significantly more I/O than
is required for the actual test.  In particular, almost all
of them use 64 MiB of data for every test, just because the
tests started out by copy-pasting.

Reduce the I/O size to closer to the minimum required for
each test, which will save some time.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ife9a950c28ee09e2be1909cdd07c6f532a5f92bb
46871 master J ✗2B ✓T ✗6R 0/2
LU-15663 llite: Simplify readahead stats
mine janitor: 2 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101j, sanity2@zfs:test_101j
2 unique failures stalled 380d S +8 −37
380d
janitor: 2 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101j, sanity2@zfs:test_101j
enforced failed: review-dne-part-1, review-dne-part-4, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-ubuntu
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_101jNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_101jNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-1 CentOS 8.3/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-part-4 CentOS 8.3/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-selinux-ssk-part-1 CentOS 8.3/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 CentOS 8.3/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs CentOS 8.3/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu CentOS 8.3/x86_64, Ubuntu 20.04/x86_64 ran 6 tests. 1 tests failed: sanity. session
3 optional test failure(s) — informational
build #86719 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1614d ago · NEW · open in Gerrit ↗
commit message
LU-15663 llite: Simplify readahead stats

Readahead stats should be a user readable collection of
stats, not a debug dump.  Also, even as debug, many of
the stats aren't useful.

Let's clean it up.

RA_STAT_FAILED_FAST_READ is confusing, and it is
recorded for every miss.  Rename it, and move it to be
recorded only for *hits* where we decide not to do fast
read for other reasons.

'zero page window' is an almost useless internal detail
that makes no sense to users, and has little use even as
debug.  Let's just remove it.

zero file size isn't an interesting readahead stat, it's
just a fact about a file.  Remove it.

'failed reach end' is also meaningless for users and not
useful debug.  Remove it.

'readahead to eof' is simply not interesting - readahead
reaching the end of the file is a normal part of operation
and not a useful stat.

RA_STAT_FAILED_MATCH is unused.

NB: This is not marked trivial because the stats are used
in various tests and we need to verify nothing is broken
by these changes.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I24dd543f9703fe5883d774f5e9b3152579494c30
47216 master J !B ✓T ✗5R 0/2
LU-15822 ldlm: Add debug in lock_matches
mine enforced failed: review-dne-zfs-part-1, review-dne-zfs-part-3, review-dne-zfs-part-4, review-ldiskfs-arm, review-zfs
stalled 380d M +98 −16
380d
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-1 CentOS 8.5/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-dne-zfs-part-3 CentOS 8.5/x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-zfs-part-4 CentOS 8.5/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-ldiskfs-arm crashed RHEL 8.6/aarch64, RHEL 8.6/x86_64 ran 8 tests. 1 tests failed: lnet-selftest. %% THIS TEST SESSION CRASHED %% session
review-zfs CentOS 8.5/x86_64 ran 8 tests. 1 tests failed: sanity-quota. session
2 optional test failure(s) — informational
build #89484 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Aurelien Degremont, Andreas Dilger, Vitaly Fertman
patchsets:
+2 earlier PS1 05-05 PS2 05-05
PS3 05-05 PS4 05-05 PS5 05-16 PS6 06-22 Andreas Dilger PS7 09-09 Qian Yingjin
your previous vote: -1 on PS2 (2022-05-05 15:43) — now at PS7
owner Patrick Farrell · uploader Qian Yingjin · PS7 uploaded 1440d ago · NEW · open in Gerrit ↗
commit message
LU-15822 ldlm: Add debug in lock_matches

'lock_matches' is a core LDLM function and entirely
opaque from a debugging perspective, giving no info on why
a lock did not match existing locks.

Let's fix this.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: Icd95a6ba0cd99f689d83758d7576ff45e681d49d
47820 master J ✗6B ✓T ✗9R 0/2−
LU-15979 llite: restore S_NOSEC in ll_update_inode()
reviewing Vladimir Saveliev · PS3→PS6 since your -1 — your objection was dropped
6 unique failures stalled 380d M +54 −8
380d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
lustre-rsync-test@ldiskfs+DNE:test_2cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
lustre-rsync-test@zfs:test_2cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@ldiskfs+DNE:test_70NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@zfs:test_70NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-sec@ldiskfs+DNE:test_51NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-sec@zfs:test_51NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-2 RHEL 8.6/x86_64 ran 7 tests. 2 tests failed: sanity-sec, sanity-lfsck. session
review-dne-part-4 RHEL 8.6/x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-selinux-ssk-part-2 CentOS 8.5/x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 CentOS 8.5/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 CentOS 8.5/x86_64 ran 7 tests. 2 tests failed: sanity-sec, sanity-lfsck. session
review-dne-zfs-part-4 CentOS 8.5/x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-ldiskfs-arm RHEL 8.6/aarch64, RHEL 8.6/x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
review-ldiskfs-ubuntu CentOS 8.5/x86_64, Ubuntu 20.04/x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
review-zfs CentOS 8.5/x86_64 ran 8 tests. 2 tests failed: sanity-flr, sanity-quota. session
2 optional test failure(s) — informational
build #91858 SUCCESS · tests all Maloo sessions
reviews: Vladimir Saveliev -1 2023-01-25 14:55
no vote yet: James Simmons, Qian Yingjin, Andreas Dilger
patchsets:
+1 earlier PS1 06-28
PS2 07-04 PS3 07-06 PS4 07-26 PS5 01-11 PS6 01-24
your previous vote: -1 on PS3 (2022-07-06 22:59) — now at PS6
owner Vladimir Saveliev · uploader Vladimir Saveliev · PS6 uploaded 1303d ago · NEW · open in Gerrit ↗
commit message
LU-15979 llite: restore S_NOSEC in ll_update_inode()

ll_update_inode() is to set S_NOSEC (if needed) after permission
update with help of inode_has_no_xattr() having inode->i_rwsem held.

Without that { creat(); fstat(); write(); } executes to eviction
favorable case:

cl_io_loop
  cl_io_lock                    <- LDLM lock is taken here
  cl_io_start
    vvp_io_write_start
    ...
      __generic_file_aio_write
        file_remove_privs
          security_inode_need_killpriv
          ...
            ll_xattr_get_common
            ...
              mdc_intent_lock   <- enqueue RPC is sent here

If enqueue rpc is delayed, the client may get evicted as not
cancelling lock taken in cl_io_lock.

ll_update_inode() is called without inode->i_rwsem locked for regular
file but one case:
  vfs_setxattr()
    inode_lock(inode);
    ..
    ll_xattr_set()
      ll_setstripe_ea()
        ll_lov_setstripe_ea_info()
          ll_intent_file_open()
	    ll_prep_inode()
	      ll_update_inode()
where ll_update_inode() is called with inode->i_rwsem locked.
In order to be able to detect this case MDS_OPEN_SETXATTR flag is added.

Test to illustrate the issue is added.

The fix does not help for not NOSEC files.
Uncommenting chmod command in the test makes it to fail with eviction.

Test-Parameters: testlist=replay-dual env=ONLY=34,ONLY_REPEAT=100
Change-Id: Ie9e32d03402027f47381edddbd5cb3fb75023d59
HPE-bug-id: LUS-10989
Signed-off-by: Vladimir Saveliev <vladimir.saveliev@hpe.com>
50028 master J !B ✓T ✗7R 0/2−
LU-16564 ldlm: Remove cancel on block
mine enforced failed: review-dne-selinux-ssk-part-1, review-dne-zfs-part-4, review-ldiskfs, review-ldiskfs-arm, review-ldiskfs-ubuntu, review-zfs
stalled 380d M +23 −108
380d
enforced failed: review-dne-selinux-ssk-part-1, review-dne-zfs-part-4, review-ldiskfs, review-ldiskfs-arm, review-ldiskfs-ubuntu, review-zfs
Andreas Dilger voted -1
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-selinux-ssk-part-1 CentOS 8.5/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-4 CentOS 8.5/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-ldiskfs RHEL 8.6/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs CentOS 8.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.6/aarch64, RHEL 8.6/x86_64 ran 6 tests. 2 tests failed: sanity-lnet, sanity. session
review-ldiskfs-ubuntu CentOS 8.5/x86_64, Ubuntu 20.04/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-zfs CentOS 8.5/x86_64 ran 10 tests. 1 tests failed: replay-single. session
4 optional test failure(s) — informational
build #92401 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2025-02-25 16:54
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1280d ago · NEW · open in Gerrit ↗
commit message
LU-16564 ldlm: Remove cancel on block

The LDLM_FL_CANCEL_ON_BLOCK flag was used by liblustre,
but isn't used now.  The comment on it explains why - it's
for clients that can't reply reliably to BL callbacks,
which is a disaster waiting to happen (or, not waiting, as
the case may be).

This should be removed - itss continued presence is
confusing (at least to me!).

Note: It turns out this is used by lease locks.  I think
that use may still be irrelevant - let's test and find out.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I608ef0e48999ac3c43d6a395c5351cf3151d897b
50234 master J !B ✓T …R 0/2−
LU-16624 tests: Add log scan
mine Andreas Dilger voted -1
stalled 380d XS +9 −0
380d
Andreas Dilger voted -1
build OK — testing in progress (typically 6–14h)
janitor run: 1 failing config(s), none unique to this patch — janitor results
4 optional test failure(s) — informational
build #92909 SUCCESS · tests all Maloo sessions · test queue
reviews: Andreas Dilger -1 2023-03-10 04:50
patchsets: PS1 03-08 PS2 03-08
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 1259d ago · NEW · open in Gerrit ↗
commit message
LU-16624 tests: Add log scan

Add a dmesg log scan as a final test to catch warnings that
may have occured in the logs.

Let's see how this works and get some feedback, then I'll
look at adding it to other test sets.

Test-parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I1b1e967b515a737c54702a7048429db79746d632
50379 master J ✗6B ✓T ✗4R 0/2
LU-16656 llite: Improve 'out:' in ll_file_io_generic
mine janitor: 6 test failures unique to this patch — recovery-small@ldiskfs+DNE:test_110m, replay-single@ldiskfs+DNE:test_70c, sanity2@ldiskfs+DNE:test_154g +3 more
6 unique failures stalled 380d XS +2 −1
380d
janitor: 6 test failures unique to this patch — recovery-small@ldiskfs+DNE:test_110m, replay-single@ldiskfs+DNE:test_70c, sanity2@ldiskfs+DNE:test_154g +3 more
enforced failed: review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-zfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@ldiskfs+DNE:test_110mNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
replay-single@ldiskfs+DNE:test_70cseen in 4 other reviews
sanity2@ldiskfs+DNE:test_154gseen in 2 other reviews
sanity-pcc@ldiskfs+DNE:test_1dseen in 3 other reviews
sanity-pcc@zfs:test_1fseen in 2 other reviews
sanity-pcc@zfs:test_1gseen in 3 other reviews
failed enforced testplatformdetail
review-dne-selinux-ssk-part-1 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.7/x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.7/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-zfs RHEL 8.7/x86_64 ran 10 tests. 1 tests failed: replay-single. session
1 optional test failure(s) — informational
build #93762 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger, Zhenyu Xu
patchsets: PS1 03-22 PS2 03-22 PS3 04-10
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1227d ago · NEW · open in Gerrit ↗
commit message
LU-16656 llite: Improve 'out:' in ll_file_io_generic

The location of the 'out:' label in ll_file_io_generic is a
bit scary, because it skips part of the setup for
io restart, where partial io is taken in to account.

This is safe today because 'out' is only used before calls
to cl_io_loop, so IO hasn't started yet, but if 'out' is
ever used later in the function, it will be incorrect.

Let's move it now rather than leave a trap for the unwary.

Note that until cl_io_loop is called "io->ci_nob" is 0, so
this shouldn't change current behavior.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I89e29708a6d17c5eecdf4f86261dfa013c7a5ec3
51104 master J !B ✗T –R 0/2
LU-16845 obd: rename imp_connect_flags_orig
mine build aborted (#95050)
stalled 380d S +20 −20
380d
janitor run: 1 failing config(s), none unique to this patch — janitor results
build #95050 ABORTED
no vote yet: Sebastien Buisson, Andreas Dilger, Alex Zhuravlev
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1184d ago · NEW · open in Gerrit ↗
commit message
LU-16845 obd: rename imp_connect_flags_orig

The imp_connect_flags_orig and imp_connect_flags2_orig
values both end with "_orig", but there is no
corresponding "updated" or other value for them to be
original relative to.  They seem to be named mirroring
ns_connect_flags_orig, where there is also a
ns_connect_flags, but this naming makes no sense for the
import flags since they're not modified in this way.

test-parameters: trivial

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I1551447b2e92f8cff665dd75c43dd4dde6da9a09
51164 master J !B ✓T ✗2R 1/2
LU-16858 build: Remove pinger config option
mine enforced failed: review-dne-part-4, review-dne-zfs-part-1
stalled 380d M +0 −56
380d
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-4 RHEL 8.7/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-zfs-part-1 RHEL 8.7/x86_64 ran 4 tests. 1 tests failed: sanity. session
1 optional test failure(s) — informational
build #95186 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2023-05-30 21:32
no vote yet: Alex Zhuravlev
patchsets: PS1 05-30 PS2 05-30 PS3 05-30
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1177d ago · NEW · open in Gerrit ↗
commit message
LU-16858 build: Remove pinger config option

Lustre is never built or tested without the pinger, so the
config option to build without it should be removed.

Note if anyone does want to disable the pinger this can be
done at runtime.  (This was done historically by Cray, but
is not done any more.  I suspect no one actually does this,
but the option is present if needed.)

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I40aa68fbcee8f68a78316da844951b13bdcb4ffe
51165 master J !B ✓T ✗4R 2/2
LU-14639 build: Remove disable-lru-resize config
mine enforced failed: review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-5, review-zfs
stalled 380d 1 unresolved M +2 −126
380d
enforced failed: review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-5, review-zfs
1 thread(s) waiting on others
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-selinux-ssk-part-2 RHEL 8.7/x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.7/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-dne-zfs-part-5 crashed RHEL 8.7/x86_64 ran 6 tests. 1 tests failed: sanityn. %% THIS TEST SESSION CRASHED %% session
review-zfs crashed RHEL 8.7/x86_64 ran 10 tests. 2 tests failed: replay-single, sanity-quota. %% THIS TEST SESSION CRASHED %% session
1 optional test failure(s) — informational
build #95222 SUCCESS · tests all Maloo sessions
reviews: James Simmons +1 2023-05-31 19:43 · Sebastien Buisson +1 2023-05-31 15:36
no vote yet: Shuichi Ihara, Andreas Dilger, Oleg Drokin
patchsets: PS1 05-30 PS2 05-31
your previous vote: -1 on PS1 (2023-05-31 15:30) — now at PS2
threads: 0 need your reply · 1 waiting on others · 0 own notes · 0 bot
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 1176d ago · NEW · open in Gerrit ↗
commit message
LU-14639 build: Remove disable-lru-resize config

The lru-resize feature is disabled at runtime by setting
lru_resize to 0.  If it is compiled out or disabled at
mount time, then it can never be enabled without
recompiling or remounting.

Disabling it like this doesn't offer any advantages, and
and all customers disabling it are setting lru_size
manually already.

Let's remove the extra ways to disable lru-resize to
avoid confusion and possible bugs.

This patch also removes checks in the tests which verify
the client and server have lru-resize support.  Servers
have had lru-resize support for several years, and with
this patch, it becomes impossible to build clients without
it either.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I801b9eb8cf280e37bc81b3adade7973e295d151f
52731 master J ✓B ✓T ✗3R 0/2
LU-17210 llite: add kernel readahead asserts
mine enforced failed: review-dne-part-5, review-ldiskfs-arm, review-zfs
stalled 380d S +33 −0
380d
failed enforced testplatformdetail
review-dne-part-5 RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanityn. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-zfs RHEL 8.8/x86_64 ran 8 tests. 1 tests failed: sanity-quota. session
3 optional test failure(s) — informational
build #99522 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets: PS1 10-17 PS2 10-17 PS3 10-18
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1036d ago · NEW · open in Gerrit ↗
commit message
LU-17210 llite: add kernel readahead asserts

Add a set of asserts which confirm kernel readahead is
disabled and wasn't used for mmap.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I0924f2b1a2bc78e44b9a2082c3dad93a51b4d000
60435 master J !B ✗T –R 0/2
LU-0000 osc: batch osc_consume_write_grant
mine build failure (#115381)
stalled 386d S +20 −18
386d
janitor run: build failed — no tests ran — janitor results
build #115381 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 386d ago · NEW · open in Gerrit ↗
commit message
LU-0000 osc: batch osc_consume_write_grant

Do osc_consume_write_grant on blocks of transfer pages.

Test-Parameters: ignore
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Ieb211c4f7930da1ba431902a9703c22114d8829e
58687 master J !B ✓T ✗5R 0/2
LU-9834 tests: fix loop condition in llapi_layout_test
mine enforced failed: review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-ubuntu, review-zfs
stalled 387d XS +1 −1
387d
janitor run: 5 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity-lnet. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.4 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
review-zfs RHEL 8.10 / x86_64 ran 8 tests. 1 tests failed: sanity-quota. session
2 optional test failure(s) — informational
build #112819 SUCCESS · tests all Maloo sessions
patchsets: PS1 04-04 PS2 04-25
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 480d ago · NEW · open in Gerrit ↗
commit message
LU-9834 tests: fix loop condition in llapi_layout_test

The loop condition in test29 of llapi_layout_test.c was
incorrect, causing the loop to never execute. The
condition was:

for (i = LOV_MAX_STRIPE_COUNT-1; i <= 0; i--)

Since LOV_MAX_STRIPE_COUNT-1 is a large positive number
and the condition checks if i <= 0, the loop body was
never entered.

This patch fixes the condition to i >= 0 so that the loop
properly executes as intended, starting from
LOV_MAX_STRIPE_COUNT-1 and decrementing until it reaches 0.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: If96063227542f79004688786f0aeb42e3b27b9d5
46139 master J ✗2B ✓T ✗1R 0/2−
LU-15483 tests: Use fallocate to fill OSTs
mine janitor: 2 test failures unique to this patch — sanity2@ldiskfs+DNE:test_398k, sanity2@ldiskfs+DNE:test_398l
2 unique failures stalled 387d M +32 −29
387d
janitor: 2 test failures unique to this patch — sanity2@ldiskfs+DNE:test_398k, sanity2@ldiskfs+DNE:test_398l
enforced failed: review-ldiskfs-dne
Andreas Dilger voted -1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_398kNEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
sanity2@ldiskfs+DNE:test_398lNEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
failed enforced testplatformdetail
review-ldiskfs-dne CentOS 8.3/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #85873 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2022-01-26 19:17
patchsets: PS1 01-14 PS2 01-14 Andreas Dilger PS3 01-26
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1666d ago · NEW · open in Gerrit ↗
commit message
LU-15483 tests: Use fallocate to fill OSTs

Rather than using dd, we can use fallocate to fill the
OSTs in 398k and 398l, which should make them much faster.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Id65726ccafb3a6e57581b3b14c846ad6b3757c35
50508 master J ✗1B ✓T ✗4R 0/2
LU-16704 tests: cleanup after 398l
mine janitor: 1 test failure unique to this patch — sanity1@ldiskfs+DNE:test_39r
1 unique failure stalled 387d 2 unresolved XS +5 −3
387d
janitor: 1 test failure unique to this patch — sanity1@ldiskfs+DNE:test_39r
enforced failed: review-dne-part-2, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-6
1 unresolved thread(s) await your reply — last from Sebastien Buisson
1 thread(s) waiting on others
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_39rseen in 19 other reviews
failed enforced testplatformdetail
review-dne-part-2 RHEL 8.8/x86_64 ran 7 tests. 1 tests failed: sanity-lfsck. session
review-dne-zfs-part-2 crashed RHEL 8.8/x86_64 ran 9 tests. 1 tests failed: replay-dual. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 RHEL 8.8/x86_64 ran 9 tests. 1 tests failed: sanity-hsm. session
review-dne-zfs-part-6 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: replay-single. session
2 optional test failure(s) — informational
build #97488 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger, Sebastien Buisson, xinliang
patchsets: PS1 04-03 PS2 04-04 PS3 08-31
threads: 1 need your reply · 1 waiting on others · 0 own notes · 0 bot
reply PS1 2023-04-04 07:08 Sebastien Buisson sanity.sh:25737 — These commands are piling up in a stack, which means they are going to be executed in reverse order IIUC, which gives:
Sebastien Buisson PS1 · 2023-04-04 07:08
These commands are piling up in a stack, which means they are going to be executed in reverse order IIUC, which gives:
1. wait_mds_ost_sync
2. wait_delete_completed
3. rm -f $DIR/$tfile*

Is this what we want?
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1084d ago · NEW · open in Gerrit ↗
commit message
LU-16704 tests: cleanup after 398l

Test 398l fills an OST, so we should have it delete the
files it created and wait for delete/sync before the end of
the test.

Otherwise it can cause ENOSPC on tests that run after it.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I5b5916046689c4a016893bc44cdfe9012bd4e987
50621 master J !B ✗T –R 0/2
LU-17433 osc: Make unaligned DIO async
mine build failure (#112159)
stalled 387d 1 unresolved XS +5 −0
387d
build failure (#112159)
1 thread(s) waiting on others
janitor run: 27 failing config(s), none unique to this patch — janitor results
build #112159 FAILURE
no vote yet: Qian Yingjin
patchsets:
+4 earlier PS1 04-13 PS2 04-13 PS3 04-13 PS4 04-19
PS5 08-04 Qian Yingjin PS6 02-23 PS7 07-03 PS8 07-03 PS9 04-01
threads: 0 need your reply · 1 waiting on others · 0 own notes · 0 bot
owner Patrick Farrell · uploader Patrick Farrell · PS9 uploaded 505d ago · NEW · open in Gerrit ↗
commit message
LU-17433 osc: Make unaligned DIO async

Because unaligned DIO is using a copy of the data from
userspace, we can make the writes async on the OST side.
Because DIO expects that data be 'safe', we cannot just
go entirely async and not wait for RPC completion, but we
can wait only for RPC completion and not force a commit
sync on the server.

This is because having our own copy of the data lets us
replay the RPC after write() has completed, which is not
possible for regular DIO.

This reduces the DIO 'O_SYNC' guarantee slightly for
unaligned DIO (and other small DIO if we change this).
Before this patch, after a DIO write(), the data is fully
committed to disk and cannot be lost even if the client and
server crash.

With this patch, after write() returns, if the server
crashes, the client can replay the RPC, and if the client
crashes, the server will finish writing out the data.
However, if the client and server both crash, the data will
be lost.

For this reason, we make this behavior tunable:
llite.*.dio_full_sync

With the default to '0'.

Todo: Run through tests
Get perf #s for this
Write a test verifying this behavior?

Test-parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6ab6da2844010df209f219eb9df75c4bbb6e2042
55056 master J ✓B ✓T ✗1R 0/2
LU-17831 osc: discard all if discard one
mine enforced failed: review-dne-zfs-part-4
stalled 387d S +8 −3
387d
failed enforced testplatformdetail
review-dne-zfs-part-4 RHEL 8.9 / x86_64 ran 9 tests. 2 tests failed: sanity-hsm, sanity-flr. session
4 optional test failure(s) — informational
build #108947 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Alexander Zarochentsev, Andreas Dilger
patchsets: PS1 05-08 PS2 05-08 PS3 11-12
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 644d ago · NEW · open in Gerrit ↗
commit message
LU-17831 osc: discard all if discard one

When we cancel a read lock, we check if another read lock
also protects the same pages.  This is surprisingly
expensive.

So don't do this for every page: If we find a page which is
not covered by a second lock (and therefore must be
discarded), we discard all pages after that one.

This cuts the time to discard 8 GiB of data under a read
lock from 2.2 seconds to 1.2 seconds on a small VM system,
so nearly a 50% reduction in time required.

We may also do batch discards in the future, which this
will permit.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I5b5a63c9fcae246fd3db35e613df1cd882544946
55080 master J –B ✓T ✗2R 0/2
LU-17843 build: correctly create lustre-devel.files
mine enforced failed: review-ldiskfs, review-ldiskfs-ubuntu
stalled 387d XS +4 −2
387d
failed enforced testplatformdetail
review-ldiskfs RHEL 9.4 / x86_64 ran 5 tests. 1 tests failed: sanity-lnet. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
3 optional test failure(s) — informational
build #111798 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger, Minh Diep, Jian Yu
patchsets: PS1 05-11 PS2 05-11 PS3 03-18 Andreas Dilger
owner Patrick Farrell · uploader Andreas Dilger · PS3 uploaded 519d ago · NEW · open in Gerrit ↗
commit message
LU-17843 build: correctly create lustre-devel.files

The lustre-devel.files file is currently 'created' in the
%description section of rpmbuild (the :> command), but that
command doesn't do anything in %description.

Move this to %install and add a blank line so the file is
not empty.  Otherwise, the lustre-devel.files file is only
populated when we build with --shared, not static.
If the lustre-devel.files file is not present OR if it's
entirely empty (0 size), this results in an error in
rpmbuild.

Note the lustre-devel package still has other contents
added in the %files directive, so lustre-devel is sound -
the issue is just that you can't build RPMs when compiling
statically due to the spec file issues.

Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: Ic598531e376ce1cd356330023b74ec624b9adea8
55618 master J ✗1B ✓T ✗21R 0/2
LU-0000 tgt: true async write commits
mine janitor: 1 test failure unique to this patch — runtests-ssk@ldiskfs+SharedKey:test_1
1 unique failure stalled 387d M +113 −20
387d
janitor: 1 test failure unique to this patch — runtests-ssk@ldiskfs+SharedKey:test_1
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-part-7, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-3, review-dne-zfs-part-4, review-dne-zfs-part-5, review-dne-zfs-part-6, review-dne-zfs-part-7, review-ldiskfs, review-zfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests-ssk@ldiskfs+SharedKey:test_1seen in 5 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.3/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 9.3/x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-part-3 RHEL 9.3/x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 9.3/x86_64 ran 9 tests. 4 tests failed: sanity-quota, sanity-hsm, sanity-flr, replay-ost-single. session
review-dne-part-5 RHEL 9.3/x86_64 ran 6 tests. 1 tests failed: sanityn. session
review-dne-part-6 RHEL 9.3/x86_64 ran 4 tests. 1 tests failed: replay-single. session
review-dne-part-7 crashed RHEL 9.3/x86_64 ran 4 tests. 1 tests failed: sanity-pcc. %% THIS TEST SESSION CRASHED %% session
review-dne-selinux-ssk-part-1 RHEL 8.9/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.9/x86_64 ran 5 tests. 2 tests failed: sanity-sec, recovery-small. session
review-dne-zfs-part-1 crashed RHEL 8.9/x86_64 ran 6 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-2 RHEL 8.9/x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-3 RHEL 8.9/x86_64 ran 3 tests. 1 tests failed: conf-sanity. This build will be scored -1 since fortestonly was specified. session
review-dne-zfs-part-4 RHEL 8.9/x86_64 ran 9 tests. 4 tests failed: sanity-quota, sanity-hsm, sanity-flr, replay-ost-single. session
review-dne-zfs-part-5 RHEL 8.9/x86_64 ran 6 tests. 2 tests failed: sanityn, recovery-small. session
review-dne-zfs-part-6 RHEL 8.9/x86_64 ran 4 tests. 1 tests failed: replay-single. session
review-dne-zfs-part-7 RHEL 8.9/x86_64 ran 4 tests. 1 tests failed: sanity-pcc. session
review-ldiskfs crashed RHEL 8.9/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.9/x86_64, RHEL 9.3/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 9.3/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.9/x86_64, SLES 15.5/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-zfs RHEL 8.9/x86_64 ran 8 tests. 3 tests failed: replay-ost-single, replay-single, sanity-quota. session
20 optional test failure(s) — informational
build #105948 SUCCESS · tests all Maloo sessions
patchsets:
+2 earlier PS1 07-03 PS2 07-04
PS3 07-04 PS4 07-04 PS5 07-07 PS6 07-07 PS7 07-07
owner Patrick Farrell · uploader Patrick Farrell · PS7 uploaded 773d ago · NEW · open in Gerrit ↗
commit message
LU-0000 tgt: true async write commits

This implements async write commit.
TODO:
- Testing
- Add handling of failed commits (not too hard - just store
error in export and make next commit forced to sync, like
how the client handles the analogous)

This is intended to attach to hybrid IO.

Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I83e80bfea57bd9780ff5fec10cc4c3e992690584
52241 master J ✗59B ✗T –R 0/2
LU-13814 osc: call transfer_page_init for DIO
mine build failure (#112984)
59 unique failures stalled 474d S +30 −4
474d
build failure (#112984)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 8 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 7 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 10 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 10 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 10 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 26 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 10 other reviews
sanity1@zfs:test_56xseen in 40 other reviews
sanity1@zfs:test_56xBseen in 14 other reviews
sanity1@zfs:test_56xaseen in 40 other reviews
sanity1@zfs:test_56xabseen in 11 other reviews
sanity1@zfs:test_56xcseen in 36 other reviews
sanity1@zfs:test_56ejseen in 14 other reviews
sanity2@zfs:test_119eseen in 21 other reviews
sanity2@zfs:test_119fseen in 20 other reviews
sanity2@zfs:test_119gseen in 20 other reviews
sanity2@zfs:test_119hseen in 20 other reviews
sanity2@zfs:test_119pseen in 11 other reviews
sanity2@zfs:test_119qseen in 11 other reviews
sanity2@zfs:test_398oseen in 25 other reviews
sanity2@zfs:test_398sseen in 11 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 27 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 13 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 72 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 31 other reviews
sanity-flr@zfs:test_0gseen in 34 other reviews
sanity-flr@zfs:test_0hseen in 36 other reviews
sanity-flr@zfs:test_0jseen in 35 other reviews
sanity-flr@zfs:test_36dseen in 33 other reviews
sanity-flr@zfs:test_37seen in 37 other reviews
sanity-flr@zfs:test_38seen in 34 other reviews
sanity-flr@zfs:test_44bseen in 11 other reviews
sanity-flr@zfs:test_61aseen in 41 other reviews
sanity-flr@zfs:test_61cseen in 34 other reviews
sanity-flr@zfs:test_70aseen in 61 other reviews
sanity-flr@zfs:test_200aseen in 34 other reviews
sanity-flr@zfs:test_200bseen in 34 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 12 other reviews
sanity-hsm@zfs:test_607bseen in 12 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 30 other reviews
sanityn@zfs:test_16jseen in 33 other reviews
build #112984 FAILURE
patchsets:
+40 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-03 PS7 09-03 PS8 09-03 PS9 09-05 PS10 09-07 PS11 09-07 PS12 09-09 PS13 09-09 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-10 PS22 09-10 PS23 09-10 PS24 09-10 PS25 09-12 PS26 09-14 PS27 09-14 PS28 09-15 PS29 09-15 PS30 09-15 PS31 09-16 PS32 09-25 PS33 09-26 PS34 09-26 PS35 10-05 PS36 10-05 PS37 10-05 PS38 10-20 PS39 10-22 PS40 10-22
PS41 12-26 PS42 02-27 PS43 10-28 PS44 11-03 PS45 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS45 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: call transfer_page_init for DIO

The transfer pages for DIO need to be set up, this does the
necessary wrangling to call osc_transfer_page_init from the
DIO path.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I0fdc3340cfcecb1dc524c55f480961d36cabdedc
54595 master J ✗58B ✗T –R 0/2
LU-17885 osc: add oe_page_array for dio
mine build failure (#113014)
58 unique failures stalled 474d S +12 −0
474d
build failure (#113014)
janitor: 58 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB +55 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 24 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 23 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 39 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 26 other reviews
sanity2@ldiskfs+DNE:test_63bseen in 61 other reviews
sanity2@ldiskfs+DNE:test_64aseen in 61 other reviews
sanity2@ldiskfs+DNE:test_64cseen in 61 other reviews
sanity2@ldiskfs+DNE:test_64dseen in 100 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 29 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 29 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 39 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 29 other reviews
sanity1@zfs:test_56xseen in 44 other reviews
sanity1@zfs:test_56xBseen in 35 other reviews
sanity1@zfs:test_56xaseen in 44 other reviews
sanity1@zfs:test_56xabseen in 32 other reviews
sanity1@zfs:test_56xcseen in 40 other reviews
sanity1@zfs:test_56ejseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 78 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 36 other reviews
sanity-flr@zfs:test_0gseen in 37 other reviews
sanity-flr@zfs:test_0hseen in 39 other reviews
sanity-flr@zfs:test_0jseen in 38 other reviews
sanity-flr@zfs:test_36dseen in 37 other reviews
sanity-flr@zfs:test_37seen in 40 other reviews
sanity-flr@zfs:test_38seen in 38 other reviews
sanity-flr@zfs:test_44bseen in 32 other reviews
sanity-flr@zfs:test_61aseen in 44 other reviews
sanity-flr@zfs:test_61cseen in 37 other reviews
sanity-flr@zfs:test_70aseen in 68 other reviews
sanity-flr@zfs:test_200aseen in 37 other reviews
sanity-flr@zfs:test_200bseen in 37 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 33 other reviews
sanity-hsm@zfs:test_250seen in 11 other reviews
sanity-hsm@zfs:test_607bseen in 33 other reviews
sanity-quota@zfs:test_90aseen in 2 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 36 other reviews
sanityn@zfs:test_16jseen in 37 other reviews
build #113014 FAILURE
patchsets:
+1 earlier PS1 03-28
PS2 05-29 PS3 10-28 PS4 10-28 PS5 11-03 PS6 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS6 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: add oe_page_array for dio

This is a very simple patch which just adds the array and a
few asserts for places that never see DIO pages.

The array is used in the next patch.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: If1cb80167e409a8dc36711b46ed4b5459a88df75
54596 master J ✗43B ✗T –R 0/2
LU-17885 osc: remove DIO otp list use in osc_build_rpc
mine build failure (#113015)
43 unique failures stalled 474d M +59 −24
474d
build failure (#113015)
janitor: 43 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +40 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 25 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 24 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 39 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 27 other reviews
sanity1@zfs:test_56xseen in 44 other reviews
sanity1@zfs:test_56xBseen in 33 other reviews
sanity1@zfs:test_56xaseen in 44 other reviews
sanity1@zfs:test_56xabseen in 30 other reviews
sanity1@zfs:test_56xcseen in 40 other reviews
sanity1@zfs:test_56ejseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 78 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 36 other reviews
sanity-flr@zfs:test_0gseen in 37 other reviews
sanity-flr@zfs:test_0hseen in 39 other reviews
sanity-flr@zfs:test_0jseen in 38 other reviews
sanity-flr@zfs:test_36dseen in 37 other reviews
sanity-flr@zfs:test_37seen in 40 other reviews
sanity-flr@zfs:test_38seen in 38 other reviews
sanity-flr@zfs:test_44bseen in 31 other reviews
sanity-flr@zfs:test_61aseen in 44 other reviews
sanity-flr@zfs:test_61cseen in 37 other reviews
sanity-flr@zfs:test_70aseen in 67 other reviews
sanity-flr@zfs:test_200aseen in 37 other reviews
sanity-flr@zfs:test_200bseen in 37 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 31 other reviews
sanity-hsm@zfs:test_607bseen in 32 other reviews
sanity-pcc@zfs:test_1dseen in 34 other reviews
sanityn@zfs:test_16jseen in 37 other reviews
build #113015 FAILURE
patchsets:
+2 earlier PS1 03-28 PS2 03-28
PS3 05-29 PS4 10-28 PS5 10-28 PS6 11-03 PS7 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS7 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove DIO otp list use in osc_build_rpc

This removes the usage of the osc_transfer_page list for
DIO in osc_build_rpc.  The list is still created and used
elsewhere, but this reduces the usage with an eye to
removal.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie04ef14569d07f5dde01b223f0dced66c2af0094
54597 master J ✗51B ✗T –R 0/2
LU-17885 osc: remove list for dio in extent finish
mine build failure (#113016)
51 unique failures stalled 474d S +25 −17
474d
build failure (#113016)
janitor: 51 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +48 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 23 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 22 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 39 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 25 other reviews
sanity1@zfs:test_56xseen in 44 other reviews
sanity1@zfs:test_56xBseen in 34 other reviews
sanity1@zfs:test_56xaseen in 44 other reviews
sanity1@zfs:test_56xabseen in 31 other reviews
sanity1@zfs:test_56xcseen in 40 other reviews
sanity1@zfs:test_56ejseen in 34 other reviews
sanity2@zfs:test_119eseen in 35 other reviews
sanity2@zfs:test_119fseen in 34 other reviews
sanity2@zfs:test_119gseen in 34 other reviews
sanity2@zfs:test_119hseen in 34 other reviews
sanity2@zfs:test_119pseen in 30 other reviews
sanity2@zfs:test_119qseen in 30 other reviews
sanity2@zfs:test_398oseen in 39 other reviews
sanity2@zfs:test_398sseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 77 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 36 other reviews
sanity-flr@zfs:test_0gseen in 37 other reviews
sanity-flr@zfs:test_0hseen in 39 other reviews
sanity-flr@zfs:test_0jseen in 38 other reviews
sanity-flr@zfs:test_36dseen in 37 other reviews
sanity-flr@zfs:test_37seen in 40 other reviews
sanity-flr@zfs:test_38seen in 38 other reviews
sanity-flr@zfs:test_44bseen in 30 other reviews
sanity-flr@zfs:test_61aseen in 44 other reviews
sanity-flr@zfs:test_61cseen in 37 other reviews
sanity-flr@zfs:test_70aseen in 66 other reviews
sanity-flr@zfs:test_200bseen in 37 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 32 other reviews
sanity-hsm@zfs:test_607bseen in 31 other reviews
sanity-pcc@ldiskfs+DNE:test_1cseen in 27 other reviews
sanity-quota@zfs:test_90bseen in 5 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 36 other reviews
sanityn@zfs:test_16jseen in 37 other reviews
build #113016 FAILURE
patchsets:
+3 earlier PS1 03-28 PS2 03-28 PS3 05-29
PS4 10-28 PS5 10-28 PS6 11-03 PS7 11-03 PS8 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS8 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove list for dio in extent finish

This removes the last usage of the page lists for DIO, and
also stops creating them.  This gets us most of the
performance benefit, but not all of it - yet.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ic2c700a6e09def0e0162ab567d9a0af321fa7e87
52246 master J ✗60B ✗T –R 0/2
LU-13814 clio: remove cp_type from vvp, mdc, ll
mine build failure (#112990)
60 unique failures stalled 474d M +30 −43
474d
build failure (#112990)
janitor: 60 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 21 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 20 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 39 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 23 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 28 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 28 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 39 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 28 other reviews
sanity1@zfs:test_56xseen in 43 other reviews
sanity1@zfs:test_56xBseen in 30 other reviews
sanity1@zfs:test_56xaseen in 43 other reviews
sanity1@zfs:test_56xabseen in 27 other reviews
sanity1@zfs:test_56xcseen in 39 other reviews
sanity1@zfs:test_56ejseen in 30 other reviews
sanity2@zfs:test_119eseen in 34 other reviews
sanity2@zfs:test_119fseen in 33 other reviews
sanity2@zfs:test_119gseen in 33 other reviews
sanity2@zfs:test_119hseen in 33 other reviews
sanity2@zfs:test_119pseen in 27 other reviews
sanity2@zfs:test_119qseen in 27 other reviews
sanity2@zfs:test_398oseen in 38 other reviews
sanity2@zfs:test_398sseen in 27 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 28 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 75 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 35 other reviews
sanity-flr@zfs:test_0gseen in 36 other reviews
sanity-flr@zfs:test_0hseen in 38 other reviews
sanity-flr@zfs:test_0jseen in 37 other reviews
sanity-flr@zfs:test_36dseen in 36 other reviews
sanity-flr@zfs:test_37seen in 39 other reviews
sanity-flr@zfs:test_38seen in 37 other reviews
sanity-flr@zfs:test_44bseen in 27 other reviews
sanity-flr@zfs:test_61aseen in 43 other reviews
sanity-flr@zfs:test_61cseen in 36 other reviews
sanity-flr@zfs:test_70aseen in 64 other reviews
sanity-flr@zfs:test_200aseen in 36 other reviews
sanity-flr@zfs:test_200bseen in 36 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 28 other reviews
sanity-hsm@zfs:test_607bseen in 28 other reviews
sanity-quota@zfs:test_90bseen in 4 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 33 other reviews
sanityn@zfs:test_16jseen in 36 other reviews
build #112990 FAILURE
patchsets:
+36 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-07 PS7 09-07 PS8 09-09 PS9 09-09 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-12 PS22 09-14 PS23 09-15 PS24 09-15 PS25 09-15 PS26 09-15 PS27 09-16 PS28 09-16 PS29 09-25 PS30 09-26 PS31 10-05 PS32 10-05 PS33 10-06 PS34 10-20 PS35 10-22 PS36 10-22
PS37 12-26 PS38 02-27 PS39 10-28 PS40 11-03 PS41 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS41 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: remove cp_type from vvp, mdc, ll

cp_type appears only a little in the vvp, mdc, and ll
code, so remove it all in one patch.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I9dc3dc4e4d35322fbe4428d4d8ffd624baada693
52249 master J ✗53B ✗T –R 0/2
LU-13814 clio: remove type from cl_page_find
mine build failure (#112993)
53 unique failures stalled 474d M +29 −43
474d
build failure (#112993)
janitor: 53 test failures unique to this patch — sanity2@ldiskfs+DNE:test_119e, sanity2@ldiskfs+DNE:test_119f, sanity2@ldiskfs+DNE:test_119g +50 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_119eseen in 32 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 32 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 32 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 32 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 27 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 27 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 38 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 27 other reviews
sanity1@zfs:test_56xseen in 42 other reviews
sanity1@zfs:test_56xBseen in 27 other reviews
sanity1@zfs:test_56xaseen in 42 other reviews
sanity1@zfs:test_56xabseen in 24 other reviews
sanity1@zfs:test_56xcseen in 38 other reviews
sanity1@zfs:test_56ejseen in 27 other reviews
sanity2@zfs:test_119eseen in 30 other reviews
sanity2@zfs:test_119fseen in 29 other reviews
sanity2@zfs:test_119gseen in 29 other reviews
sanity2@zfs:test_119hseen in 29 other reviews
sanity2@zfs:test_119pseen in 23 other reviews
sanity2@zfs:test_119qseen in 23 other reviews
sanity2@zfs:test_398oseen in 34 other reviews
sanity2@zfs:test_398sseen in 23 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 25 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 75 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 35 other reviews
sanity-flr@zfs:test_0gseen in 36 other reviews
sanity-flr@zfs:test_0hseen in 38 other reviews
sanity-flr@zfs:test_0jseen in 37 other reviews
sanity-flr@zfs:test_36dseen in 36 other reviews
sanity-flr@zfs:test_37seen in 39 other reviews
sanity-flr@zfs:test_38seen in 37 other reviews
sanity-flr@zfs:test_44bseen in 24 other reviews
sanity-flr@zfs:test_61aseen in 43 other reviews
sanity-flr@zfs:test_61cseen in 36 other reviews
sanity-flr@zfs:test_70aseen in 64 other reviews
sanity-flr@zfs:test_200aseen in 36 other reviews
sanity-flr@zfs:test_200bseen in 36 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 26 other reviews
sanity-hsm@zfs:test_607bseen in 24 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 33 other reviews
sanityn@zfs:test_16jseen in 36 other reviews
build #112993 FAILURE
patchsets:
+37 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-07 PS7 09-07 PS8 09-09 PS9 09-09 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-12 PS22 09-14 PS23 09-15 PS24 09-15 PS25 09-15 PS26 09-15 PS27 09-16 PS28 09-16 PS29 09-25 PS30 09-26 PS31 10-05 PS32 10-05 PS33 10-06 PS34 10-20 PS35 10-22 PS36 10-22 PS37 12-26
PS38 02-27 PS39 10-28 PS40 10-28 PS41 11-03 PS42 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS42 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: remove type from cl_page_find

type is no longer used in cl_page_find/alloc, remove it.

Test-Parameters: forjanitoronly
Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I5168f5d34e24727d45d1d0910d8b90cec9429b35
52244 master J ✗54B ✗T –R 0/2
LU-13814 osc: change asserts to use OTP type
mine build failure (#112988)
54 unique failures stalled 474d S +2 −9
474d
build failure (#112988)
janitor: 54 test failures unique to this patch — recovery-small@zfs:test_155, sanity2@ldiskfs+DNE:test_119e, sanity2@ldiskfs+DNE:test_119f +51 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_119eseen in 31 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 31 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 31 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 31 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 26 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 37 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 26 other reviews
sanity1@zfs:test_56xseen in 44 other reviews
sanity1@zfs:test_56xBseen in 32 other reviews
sanity1@zfs:test_56xaseen in 44 other reviews
sanity1@zfs:test_56xabseen in 29 other reviews
sanity1@zfs:test_56xcseen in 40 other reviews
sanity1@zfs:test_56ejseen in 32 other reviews
sanity2@zfs:test_119eseen in 35 other reviews
sanity2@zfs:test_119fseen in 34 other reviews
sanity2@zfs:test_119gseen in 34 other reviews
sanity2@zfs:test_119hseen in 34 other reviews
sanity2@zfs:test_119pseen in 29 other reviews
sanity2@zfs:test_119qseen in 29 other reviews
sanity2@zfs:test_398oseen in 39 other reviews
sanity2@zfs:test_398sseen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 76 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 36 other reviews
sanity-flr@zfs:test_0gseen in 37 other reviews
sanity-flr@zfs:test_0hseen in 39 other reviews
sanity-flr@zfs:test_0jseen in 38 other reviews
sanity-flr@zfs:test_36dseen in 37 other reviews
sanity-flr@zfs:test_37seen in 40 other reviews
sanity-flr@zfs:test_38seen in 38 other reviews
sanity-flr@zfs:test_44bseen in 29 other reviews
sanity-flr@zfs:test_61aseen in 44 other reviews
sanity-flr@zfs:test_61cseen in 37 other reviews
sanity-flr@zfs:test_70aseen in 65 other reviews
sanity-flr@zfs:test_200aseen in 37 other reviews
sanity-flr@zfs:test_200bseen in 37 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 30 other reviews
sanity-hsm@zfs:test_607bseen in 30 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 35 other reviews
sanityn@zfs:test_16jseen in 37 other reviews
build #112988 FAILURE
patchsets:
+36 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-07 PS7 09-07 PS8 09-09 PS9 09-09 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-12 PS22 09-14 PS23 09-15 PS24 09-15 PS25 09-15 PS26 09-15 PS27 09-16 PS28 09-16 PS29 09-25 PS30 09-26 PS31 10-05 PS32 10-05 PS33 10-06 PS34 10-20 PS35 10-22 PS36 10-22
PS37 12-26 PS38 02-27 PS39 10-28 PS40 11-03 PS41 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS41 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: change asserts to use OTP type

cp_type is no longer set for transient pages since they
don't use cl_page.  Switch asserts to use otp_type.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I3ad8292972fad9669b00aac3e98d0b6ea12ef398
52788 master J ✗60B ✗T –R 0/2
LU-13814 osc: move otp_obj to osc page
mine build failure (#112996)
60 unique failures stalled 474d M +26 −38
474d
build failure (#112996)
janitor: 60 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 18 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 17 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 30 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 30 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 30 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 30 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 25 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 25 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 36 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 25 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 25 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 22 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 25 other reviews
sanity2@zfs:test_119eseen in 27 other reviews
sanity2@zfs:test_119fseen in 26 other reviews
sanity2@zfs:test_119gseen in 26 other reviews
sanity2@zfs:test_119hseen in 26 other reviews
sanity2@zfs:test_119pseen in 20 other reviews
sanity2@zfs:test_119qseen in 20 other reviews
sanity2@zfs:test_398oseen in 31 other reviews
sanity2@zfs:test_398sseen in 20 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 23 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 74 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 34 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 22 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 23 other reviews
sanity-hsm@zfs:test_607bseen in 23 other reviews
sanity-quota@zfs:test_90bNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 35 other reviews
build #112996 FAILURE
patchsets:
+3 earlier PS1 10-22 PS2 10-22 PS3 12-26
PS4 02-27 PS5 10-28 PS6 10-28 PS7 11-03 PS8 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS8 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: move otp_obj to osc page

The object pointer is only used from the OSC page, so move
it there.  This reduces the size of the OTP page, which
is useful because for DIO there is only an OTP page.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I97360277a9d686b7b78648762d45d20864355cbc
52245 master J ✗60B ✗T –R 0/2
LU-13814 osc: remove cp_type in osc
mine build failure (#112989)
60 unique failures stalled 474d M +28 −44
474d
build failure (#112989)
janitor: 60 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 22 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 21 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 39 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 24 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 29 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 29 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 29 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 29 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 24 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 24 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 35 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 24 other reviews
sanity1@zfs:test_56xseen in 43 other reviews
sanity1@zfs:test_56xBseen in 31 other reviews
sanity1@zfs:test_56xaseen in 43 other reviews
sanity1@zfs:test_56xabseen in 28 other reviews
sanity1@zfs:test_56xcseen in 39 other reviews
sanity1@zfs:test_56ejseen in 31 other reviews
sanity2@zfs:test_119eseen in 34 other reviews
sanity2@zfs:test_119fseen in 33 other reviews
sanity2@zfs:test_119gseen in 33 other reviews
sanity2@zfs:test_119hseen in 33 other reviews
sanity2@zfs:test_119pseen in 28 other reviews
sanity2@zfs:test_119qseen in 28 other reviews
sanity2@zfs:test_398oseen in 38 other reviews
sanity2@zfs:test_398sseen in 28 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 75 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 35 other reviews
sanity-flr@zfs:test_0gseen in 36 other reviews
sanity-flr@zfs:test_0hseen in 38 other reviews
sanity-flr@zfs:test_0jseen in 37 other reviews
sanity-flr@zfs:test_36dseen in 36 other reviews
sanity-flr@zfs:test_37seen in 39 other reviews
sanity-flr@zfs:test_38seen in 37 other reviews
sanity-flr@zfs:test_44bseen in 28 other reviews
sanity-flr@zfs:test_61aseen in 43 other reviews
sanity-flr@zfs:test_61cseen in 36 other reviews
sanity-flr@zfs:test_70aseen in 64 other reviews
sanity-flr@zfs:test_200aseen in 36 other reviews
sanity-flr@zfs:test_200bseen in 36 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 29 other reviews
sanity-hsm@zfs:test_607bseen in 29 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 34 other reviews
sanityn@zfs:test_16jseen in 37 other reviews
build #112989 FAILURE
no vote yet: Qian Yingjin
patchsets:
+36 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-07 PS7 09-07 PS8 09-09 PS9 09-09 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-12 PS22 09-14 PS23 09-15 PS24 09-15 PS25 09-15 PS26 09-15 PS27 09-16 PS28 09-16 PS29 09-25 PS30 09-26 PS31 10-05 PS32 10-05 PS33 10-06 PS34 10-20 PS35 10-22 PS36 10-22
PS37 12-26 PS38 02-27 PS39 10-28 PS40 11-03 PS41 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS41 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove cp_type in osc

Now that we no longer have cl_page for transient pages,
cp_type is going away, so remove it in the OSC layer.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I2ea93f46d8a99ba6c0e04af373827b4c8b8fd2be
52247 master J ✗59B ✗T –R 0/2
LU-13814 lov: remove cp_type from lov
mine build failure (#112991)
59 unique failures stalled 474d M +21 −87
474d
build failure (#112991)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 20 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 19 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 22 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 28 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 28 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 28 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 28 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 23 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 23 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 34 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 23 other reviews
sanity1@zfs:test_56xseen in 43 other reviews
sanity1@zfs:test_56xBseen in 29 other reviews
sanity1@zfs:test_56xaseen in 43 other reviews
sanity1@zfs:test_56xabseen in 26 other reviews
sanity1@zfs:test_56xcseen in 39 other reviews
sanity1@zfs:test_56ejseen in 29 other reviews
sanity2@zfs:test_119eseen in 33 other reviews
sanity2@zfs:test_119fseen in 32 other reviews
sanity2@zfs:test_119gseen in 32 other reviews
sanity2@zfs:test_119hseen in 32 other reviews
sanity2@zfs:test_119pseen in 26 other reviews
sanity2@zfs:test_119qseen in 26 other reviews
sanity2@zfs:test_398oseen in 37 other reviews
sanity2@zfs:test_398sseen in 26 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 27 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 75 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 35 other reviews
sanity-flr@zfs:test_0gseen in 36 other reviews
sanity-flr@zfs:test_0hseen in 38 other reviews
sanity-flr@zfs:test_0jseen in 37 other reviews
sanity-flr@zfs:test_36dseen in 36 other reviews
sanity-flr@zfs:test_37seen in 39 other reviews
sanity-flr@zfs:test_38seen in 37 other reviews
sanity-flr@zfs:test_44bseen in 26 other reviews
sanity-flr@zfs:test_61aseen in 43 other reviews
sanity-flr@zfs:test_61cseen in 36 other reviews
sanity-flr@zfs:test_70aseen in 64 other reviews
sanity-flr@zfs:test_200aseen in 36 other reviews
sanity-flr@zfs:test_200bseen in 36 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 27 other reviews
sanity-hsm@zfs:test_607bseen in 27 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 36 other reviews
build #112991 FAILURE
patchsets:
+36 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-07 PS7 09-07 PS8 09-09 PS9 09-09 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-12 PS22 09-14 PS23 09-15 PS24 09-15 PS25 09-15 PS26 09-15 PS27 09-16 PS28 09-16 PS29 09-25 PS30 09-26 PS31 10-05 PS32 10-05 PS33 10-06 PS34 10-20 PS35 10-22 PS36 10-22
PS37 12-26 PS38 02-27 PS39 10-28 PS40 11-03 PS41 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS41 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 lov: remove cp_type from lov

Removing cp_type from lov involves removing the LOV stripe
information caching, since that was just for DIO.  Other
removals here are trivial.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ia60397639e9499e69c17f8d549806f17b4000d05
52248 master J ✗54B ✗T –R 0/2
LU-13814 clio: remove cp_type
mine build failure (#112992)
54 unique failures stalled 474d M +25 −66
474d
build failure (#112992)
janitor: 54 test failures unique to this patch — sanity2@ldiskfs+DNE:test_119e, sanity2@ldiskfs+DNE:test_119f, sanity2@ldiskfs+DNE:test_119g +51 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_119eseen in 27 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 27 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 27 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 27 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 22 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 22 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 33 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 22 other reviews
sanity1@zfs:test_56xseen in 43 other reviews
sanity1@zfs:test_56xBseen in 28 other reviews
sanity1@zfs:test_56xaseen in 43 other reviews
sanity1@zfs:test_56xabseen in 25 other reviews
sanity1@zfs:test_56xcseen in 39 other reviews
sanity1@zfs:test_56ejseen in 28 other reviews
sanity2@zfs:test_119eseen in 31 other reviews
sanity2@zfs:test_119fseen in 30 other reviews
sanity2@zfs:test_119gseen in 30 other reviews
sanity2@zfs:test_119hseen in 30 other reviews
sanity2@zfs:test_119pseen in 24 other reviews
sanity2@zfs:test_119qseen in 24 other reviews
sanity2@zfs:test_398oseen in 35 other reviews
sanity2@zfs:test_398sseen in 24 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 26 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 75 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 35 other reviews
sanity-flr@zfs:test_0gseen in 36 other reviews
sanity-flr@zfs:test_0hseen in 38 other reviews
sanity-flr@zfs:test_0jseen in 37 other reviews
sanity-flr@zfs:test_36dseen in 36 other reviews
sanity-flr@zfs:test_37seen in 39 other reviews
sanity-flr@zfs:test_38seen in 37 other reviews
sanity-flr@zfs:test_44bseen in 25 other reviews
sanity-flr@zfs:test_61aseen in 43 other reviews
sanity-flr@zfs:test_61cseen in 36 other reviews
sanity-flr@zfs:test_70aseen in 64 other reviews
sanity-flr@zfs:test_200aseen in 36 other reviews
sanity-flr@zfs:test_200bseen in 36 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 25 other reviews
sanity-hsm@zfs:test_607bseen in 26 other reviews
sanity-quota@zfs:test_90bseen in 4 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 36 other reviews
build #112992 FAILURE
no vote yet: Qian Yingjin
patchsets:
+36 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-07 PS7 09-07 PS8 09-09 PS9 09-09 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-12 PS22 09-14 PS23 09-15 PS24 09-15 PS25 09-15 PS26 09-15 PS27 09-16 PS28 09-16 PS29 09-25 PS30 09-26 PS31 10-05 PS32 10-05 PS33 10-06 PS34 10-20 PS35 10-22 PS36 10-22
PS37 12-26 PS38 02-27 PS39 10-28 PS40 11-03 PS41 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS41 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: remove cp_type

Page->cp_type is no longer needed and can be removed
entirely.

Two notes:
This makes 'inode' in coo_page_init irrelevant since it's
only used for DIO.  This will be fixed in a future patch.
The packing of cl_page is NOT correct currently and will be
fixed in a future patch.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I660bb956b2d85fcff98b8e1726d60b51fd4f8ac5
52789 master J ✗60B ✗T –R 0/2
LU-13814 osc: remove otp_srvlock
mine build failure (#112997)
60 unique failures stalled 474d S +9 −17
474d
build failure (#112997)
janitor: 60 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 17 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 16 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 19 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 25 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 25 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 25 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 25 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 19 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 19 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 31 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 19 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 24 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 21 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 24 other reviews
sanity2@zfs:test_119eseen in 32 other reviews
sanity2@zfs:test_119fseen in 31 other reviews
sanity2@zfs:test_119gseen in 31 other reviews
sanity2@zfs:test_119hseen in 31 other reviews
sanity2@zfs:test_119pseen in 25 other reviews
sanity2@zfs:test_119qseen in 25 other reviews
sanity2@zfs:test_398oseen in 36 other reviews
sanity2@zfs:test_398sseen in 25 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 22 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 74 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 34 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 21 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 22 other reviews
sanity-hsm@zfs:test_607bseen in 22 other reviews
sanity-quota@zfs:test_90bNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 35 other reviews
build #112997 FAILURE
patchsets:
+3 earlier PS1 10-22 PS2 10-22 PS3 12-26
PS4 02-27 PS5 10-28 PS6 10-28 PS7 11-03 PS8 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS8 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove otp_srvlock

The srvlock information stored in the otp_srvlock flag is
always available elsewhere, so remove it.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I7a8669b8a3ae9014a9971386c316d514079a0ae1
52795 master J ✗59B ✗T –R 0/2
LU-13814 osc: remove aa_otps
mine build failure (#113000)
59 unique failures stalled 474d S +2 −14
474d
build failure (#113000)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 14 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 13 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 16 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 21 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 21 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 32 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 21 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 20 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 17 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 20 other reviews
sanity2@zfs:test_119eseen in 23 other reviews
sanity2@zfs:test_119fseen in 22 other reviews
sanity2@zfs:test_119gseen in 22 other reviews
sanity2@zfs:test_119hseen in 22 other reviews
sanity2@zfs:test_119pseen in 15 other reviews
sanity2@zfs:test_119qseen in 15 other reviews
sanity2@zfs:test_398oseen in 27 other reviews
sanity2@zfs:test_398sseen in 15 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 28 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 18 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 73 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 32 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 17 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 18 other reviews
sanity-hsm@zfs:test_607bseen in 18 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 31 other reviews
sanityn@zfs:test_16jseen in 34 other reviews
build #113000 FAILURE
patchsets:
+5 earlier PS1 10-22 PS2 10-23 PS3 10-24 PS4 10-24 PS5 12-26
PS6 02-27 PS7 10-28 PS8 10-28 PS9 11-03 PS10 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS10 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove aa_otps

The aa_oops list isn't really used for anything, so let's
remove it.

This will let us remove the otp_rpc_item list, because the
only use of that list was to go on the aa_otps list.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I491f66857786dd9ed13657d4211e774232cb6e22
52257 master J ✗60B ✗T –R 0/2
LU-13814 osc: minor function relocation
mine build failure (#112994)
60 unique failures stalled 474d M +40 −58
474d
build failure (#112994)
janitor: 60 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 19 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 18 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 21 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 20 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 32 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 20 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 26 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 23 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 26 other reviews
sanity2@zfs:test_119eseen in 28 other reviews
sanity2@zfs:test_119fseen in 27 other reviews
sanity2@zfs:test_119gseen in 27 other reviews
sanity2@zfs:test_119hseen in 27 other reviews
sanity2@zfs:test_119pseen in 21 other reviews
sanity2@zfs:test_119qseen in 21 other reviews
sanity2@zfs:test_398oseen in 32 other reviews
sanity2@zfs:test_398sseen in 21 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 24 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 74 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 34 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 23 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 24 other reviews
sanity-hsm@zfs:test_607bseen in 25 other reviews
sanity-pcc@ldiskfs+DNE:test_100seen in 33 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 35 other reviews
build #112994 FAILURE
patchsets:
+24 earlier PS1 09-04 PS2 09-10 PS3 09-10 PS4 09-10 PS5 09-10 PS6 09-10 PS7 09-10 PS8 09-12 PS9 09-14 PS10 09-15 PS11 09-15 PS12 09-15 PS13 09-15 PS14 09-16 PS15 09-16 PS16 09-25 PS17 09-26 PS18 10-05 PS19 10-05 PS20 10-06 PS21 10-20 PS22 10-22 PS23 10-22 PS24 12-26
PS25 02-27 PS26 10-28 PS27 10-28 PS28 11-03 PS29 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS29 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: minor function relocation

Two functions are essentially in the wrong file, and one of
them is a trivial wrapper.  Move the actual function and
just remove the wrapper.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie408734f02a8047621f3447b13f5d1786b070801
52796 master J ✗60B ✗T –R 0/2
LU-13814 osc: remove otp_rpc_item list
mine build failure (#113001)
60 unique failures stalled 474d S +4 −21
474d
build failure (#113001)
janitor: 60 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 12 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 11 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 14 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 24 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 24 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 24 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 24 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 18 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 18 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 30 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 18 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 18 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 15 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 18 other reviews
sanity2@zfs:test_119eseen in 23 other reviews
sanity2@zfs:test_119fseen in 22 other reviews
sanity2@zfs:test_119gseen in 22 other reviews
sanity2@zfs:test_119hseen in 22 other reviews
sanity2@zfs:test_119pseen in 14 other reviews
sanity2@zfs:test_119qseen in 14 other reviews
sanity2@zfs:test_398oseen in 27 other reviews
sanity2@zfs:test_398sseen in 14 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 28 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 17 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 73 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 32 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 16 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 17 other reviews
sanity-hsm@zfs:test_607bseen in 17 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 31 other reviews
sanityn@zfs:test_16jseen in 34 other reviews
build #113001 FAILURE
patchsets:
+5 earlier PS1 10-22 PS2 10-23 PS3 10-24 PS4 10-24 PS5 12-26
PS6 02-27 PS7 10-28 PS8 10-28 PS9 11-03 PS10 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS10 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove otp_rpc_item list

The otp_rpc_item list is only used to recognize if a page
is in an RPC, which an error condition that should only
occur if there's a bug in the code.  We can remove it, and
save ourselves two pointers in every page.

With this, this the osc_transfer_page is now 61 bytes in
size, fitting it inside a single cacheline(!).

This has a huge impact on DIO performance.  The net effect
of these reduction patches is about a 40-50% boost in single
threaded DIO performance beyond that achieved by cl_page
removal.

1 GiB transfer size IOR performance (single threaded)
Without the reduction patches:
Read: 57 GiB/s
Write: 48 GiB/s

With:
Read: 88 GiB/s
Write: 65 GiB/s
(Write performance is expected to be closer to read, but it
 may have been affected by a network issue.)

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Icb83298da1bdc797a33dae6ca3357b1ad3b3c848
52791 master J ✗60B ✗T –R 0/2
LU-13814 osc: remove otp_page_off
mine build failure (#112998)
60 unique failures stalled 474d S +23 −20
474d
build failure (#112998)
janitor: 60 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 16 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 15 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 18 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 22 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 22 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 22 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 22 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 16 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 16 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 28 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 16 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 21 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 18 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 21 other reviews
sanity2@zfs:test_119eseen in 29 other reviews
sanity2@zfs:test_119fseen in 28 other reviews
sanity2@zfs:test_119gseen in 28 other reviews
sanity2@zfs:test_119hseen in 28 other reviews
sanity2@zfs:test_119pseen in 22 other reviews
sanity2@zfs:test_119qseen in 22 other reviews
sanity2@zfs:test_398oseen in 33 other reviews
sanity2@zfs:test_398sseen in 22 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 20 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 74 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 34 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 19 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 20 other reviews
sanity-hsm@zfs:test_607bseen in 20 other reviews
sanity-pcc@ldiskfs+DNE:test_1cseen in 26 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 35 other reviews
build #112998 FAILURE
patchsets:
+13 earlier PS1 10-22 PS2 10-22 PS3 10-23 PS4 10-23 PS5 10-23 PS6 10-23 PS7 10-23 PS8 10-23 PS9 10-24 PS10 10-24 PS11 10-24 PS12 10-24 PS13 12-26
PS14 02-27 PS15 10-28 PS16 10-28 PS17 11-03 PS18 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS18 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove otp_page_off

otp_page_off can be determined from otp_obj_off, so we can
remove it.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I4ab9e71a8d6e79544241021b72eff2a95c592cb9
52790 master J ✗60B ✗T –R 0/2
LU-13814 osc: remove otp_cmd
mine build failure (#112995)
60 unique failures stalled 474d S +10 −9
474d
build failure (#112995)
janitor: 60 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 15 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 14 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 17 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 23 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 23 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 23 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 23 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 17 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 17 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 29 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 17 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 23 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 20 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 23 other reviews
sanity2@zfs:test_119eseen in 25 other reviews
sanity2@zfs:test_119fseen in 24 other reviews
sanity2@zfs:test_119gseen in 24 other reviews
sanity2@zfs:test_119hseen in 24 other reviews
sanity2@zfs:test_119pseen in 18 other reviews
sanity2@zfs:test_119qseen in 18 other reviews
sanity2@zfs:test_398oseen in 29 other reviews
sanity2@zfs:test_398sseen in 18 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 21 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 74 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 34 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 20 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 21 other reviews
sanity-hsm@zfs:test_607bseen in 21 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 35 other reviews
build #112995 FAILURE
patchsets:
+3 earlier PS1 10-22 PS2 10-22 PS3 12-26
PS4 02-27 PS5 10-28 PS6 10-28 PS7 11-03 PS8 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS8 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove otp_cmd

The otp_cmd information is only need in the OSC page, so
move it there so it's not allocated for DIO.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I2c32126e72d45dad5a2104ded0b55cdb1150adce
52797 master J ✗53B ✗T –R 0/2
LU-13814 osc: add osc_transfer_page comments
mine build failure (#113003)
53 unique failures stalled 474d S +22 −0
474d
build failure (#113003)
janitor: 53 test failures unique to this patch — racer@zfs:test_1, sanity2@ldiskfs+DNE:test_119e, sanity2@ldiskfs+DNE:test_119f +50 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
racer@zfs:test_1seen in 6 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 14 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 14 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 26 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 14 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 19 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 16 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 19 other reviews
sanity2@zfs:test_119eseen in 26 other reviews
sanity2@zfs:test_119fseen in 25 other reviews
sanity2@zfs:test_119gseen in 25 other reviews
sanity2@zfs:test_119hseen in 25 other reviews
sanity2@zfs:test_119pseen in 19 other reviews
sanity2@zfs:test_119qseen in 19 other reviews
sanity2@zfs:test_398oseen in 30 other reviews
sanity2@zfs:test_398sseen in 19 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 27 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 16 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 72 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 31 other reviews
sanity-flr@zfs:test_0gseen in 34 other reviews
sanity-flr@zfs:test_0hseen in 36 other reviews
sanity-flr@zfs:test_0jseen in 35 other reviews
sanity-flr@zfs:test_36dseen in 34 other reviews
sanity-flr@zfs:test_37seen in 37 other reviews
sanity-flr@zfs:test_44bseen in 15 other reviews
sanity-flr@zfs:test_61aseen in 41 other reviews
sanity-flr@zfs:test_61cseen in 34 other reviews
sanity-flr@zfs:test_70aseen in 62 other reviews
sanity-flr@zfs:test_200aseen in 34 other reviews
sanity-flr@zfs:test_200bseen in 34 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 16 other reviews
sanity-hsm@zfs:test_607bseen in 16 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 31 other reviews
sanityn@zfs:test_16jseen in 35 other reviews
build #113003 FAILURE
patchsets:
+5 earlier PS1 10-22 PS2 10-23 PS3 10-24 PS4 10-24 PS5 12-26
PS6 02-27 PS7 10-28 PS8 10-28 PS9 11-03 PS10 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS10 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: add osc_transfer_page comments

Add comments highlighting the critical nature of the OSC
transfer page for performance.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ifb282c0a5332fac3bf0a054a9e27b2e596fce8f0
52792 master J ✗59B ✗T –R 0/2
LU-13814 osc: remove otp_inode
mine build failure (#112999)
59 unique failures stalled 474d S +11 −18
474d
build failure (#112999)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 13 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 12 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 15 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 21 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 21 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 21 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 21 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 15 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 15 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 27 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 15 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 22 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 19 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 22 other reviews
sanity2@zfs:test_119eseen in 24 other reviews
sanity2@zfs:test_119fseen in 23 other reviews
sanity2@zfs:test_119gseen in 23 other reviews
sanity2@zfs:test_119hseen in 23 other reviews
sanity2@zfs:test_119pseen in 16 other reviews
sanity2@zfs:test_119qseen in 16 other reviews
sanity2@zfs:test_398oseen in 28 other reviews
sanity2@zfs:test_398sseen in 16 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 19 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 73 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 33 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 18 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 19 other reviews
sanity-hsm@zfs:test_607bseen in 19 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 35 other reviews
build #112999 FAILURE
patchsets:
+6 earlier PS1 10-22 PS2 10-22 PS3 10-23 PS4 10-24 PS5 10-24 PS6 12-26
PS7 02-27 PS8 10-28 PS9 10-28 PS10 11-03 PS11 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS11 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove otp_inode

We can add the inode to the osc object, which allows us to
remove the inode from the osc_transfer_page.  This removes
a pointer from the OTP struct, which is allocated for every
page in Lustre.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ida9c030bf085ad9606e19522714497c4adfa33de
54235 master J ✗59B ✗T –R 0/2
LU-13814 osc: remove otp_ll_index
mine build failure (#113004)
59 unique failures stalled 474d S +4 −18
474d
build failure (#113004)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 10 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 9 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 12 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 12 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 12 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 26 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 12 other reviews
sanity1@zfs:test_56xseen in 40 other reviews
sanity1@zfs:test_56xBseen in 16 other reviews
sanity1@zfs:test_56xaseen in 40 other reviews
sanity1@zfs:test_56xabseen in 13 other reviews
sanity1@zfs:test_56xcseen in 36 other reviews
sanity1@zfs:test_56ejseen in 16 other reviews
sanity2@zfs:test_119eseen in 24 other reviews
sanity2@zfs:test_119fseen in 23 other reviews
sanity2@zfs:test_119gseen in 23 other reviews
sanity2@zfs:test_119hseen in 23 other reviews
sanity2@zfs:test_119pseen in 17 other reviews
sanity2@zfs:test_119qseen in 17 other reviews
sanity2@zfs:test_398oseen in 28 other reviews
sanity2@zfs:test_398sseen in 17 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 27 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 14 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 72 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 31 other reviews
sanity-flr@zfs:test_0gseen in 34 other reviews
sanity-flr@zfs:test_0hseen in 36 other reviews
sanity-flr@zfs:test_0jseen in 35 other reviews
sanity-flr@zfs:test_36dseen in 33 other reviews
sanity-flr@zfs:test_37seen in 37 other reviews
sanity-flr@zfs:test_38seen in 34 other reviews
sanity-flr@zfs:test_44bseen in 13 other reviews
sanity-flr@zfs:test_61aseen in 41 other reviews
sanity-flr@zfs:test_61cseen in 34 other reviews
sanity-flr@zfs:test_70aseen in 62 other reviews
sanity-flr@zfs:test_200aseen in 34 other reviews
sanity-flr@zfs:test_200bseen in 34 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 13 other reviews
sanity-hsm@zfs:test_607bseen in 14 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 30 other reviews
sanityn@zfs:test_16jseen in 33 other reviews
build #113004 FAILURE
patchsets:
+2 earlier PS1 03-01 PS2 03-01
PS3 03-28 PS4 10-28 PS5 10-28 PS6 11-03 PS7 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS7 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove otp_ll_index

otp_ll_index is used to preserve the index for direct IO
pages, but direct IO pages do not use the index value, so
we can just store the index in the vmpage.

This reduces the osc_transfer_page size by a further 8
bytes, to 43 bytes.  This puts us tantalizingly close to
a single cacheline, but this can only be achieved by
removing the otp_pending_item list, which is challenging.

That will require converting osc extents to use an array
of pointers instead of a linked list.  This can be done,
and will improve performance because of that change by
itself.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I621388fb36a2a792525e07f35c1c948c4ae4292e
52383 master J ✗59B ✗T –R 0/2
LU-13814 clio: add args to cl_dio_pages_init
mine build failure (#112983)
59 unique failures stalled 474d M +31 −20
474d
build failure (#112983)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 32 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 5 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 32 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 4 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 33 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 7 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 16 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 16 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 16 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 16 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 6 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 6 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 22 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 6 other reviews
sanity1@zfs:test_56xseen in 39 other reviews
sanity1@zfs:test_56xBseen in 10 other reviews
sanity1@zfs:test_56xaseen in 39 other reviews
sanity1@zfs:test_56xabseen in 7 other reviews
sanity1@zfs:test_56xcseen in 35 other reviews
sanity1@zfs:test_56ejseen in 10 other reviews
sanity2@zfs:test_119eseen in 22 other reviews
sanity2@zfs:test_119fseen in 21 other reviews
sanity2@zfs:test_119gseen in 21 other reviews
sanity2@zfs:test_119hseen in 21 other reviews
sanity2@zfs:test_119pseen in 13 other reviews
sanity2@zfs:test_119qseen in 13 other reviews
sanity2@zfs:test_398oseen in 26 other reviews
sanity2@zfs:test_398sseen in 13 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 26 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 9 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 71 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 30 other reviews
sanity-flr@zfs:test_0gseen in 33 other reviews
sanity-flr@zfs:test_0hseen in 35 other reviews
sanity-flr@zfs:test_0jseen in 34 other reviews
sanity-flr@zfs:test_36dseen in 32 other reviews
sanity-flr@zfs:test_37seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 8 other reviews
sanity-flr@zfs:test_61aseen in 40 other reviews
sanity-flr@zfs:test_61cseen in 33 other reviews
sanity-flr@zfs:test_70aseen in 60 other reviews
sanity-flr@zfs:test_200aseen in 33 other reviews
sanity-flr@zfs:test_200bseen in 33 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 9 other reviews
sanity-hsm@zfs:test_607bseen in 8 other reviews
sanity-pcc@zfs:test_100seen in 19 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 29 other reviews
sanityn@zfs:test_16jseen in 31 other reviews
build #112983 FAILURE
patchsets:
+10 earlier PS1 09-15 PS2 09-16 PS3 09-25 PS4 09-26 PS5 09-26 PS6 10-05 PS7 10-05 PS8 10-20 PS9 10-22 PS10 10-22
PS11 12-26 PS12 02-27 PS13 10-28 PS14 11-03 PS15 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS15 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: add args to cl_dio_pages_init

The inode and osc index are needed to set up the transfer
pages, so though they're unused here, they will be used in
the next patch.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ic41d1ca6db05c53ac86840379abcab2e62220b81
54234 master J ✗61B ✗T –R 0/2
LU-13814 osc: remove dedicated otp_obj_off member
mine build failure (#113002)
61 unique failures stalled 474d S +5 −6
474d
build failure (#113002)
janitor: 61 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB +58 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 11 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 10 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 13 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 13 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 13 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 26 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 13 other reviews
sanity1@zfs:test_56xseen in 40 other reviews
sanity1@zfs:test_56xBseen in 17 other reviews
sanity1@zfs:test_56xaseen in 40 other reviews
sanity1@zfs:test_56xabseen in 14 other reviews
sanity1@zfs:test_56xcseen in 36 other reviews
sanity1@zfs:test_56ejseen in 17 other reviews
sanity2@zfs:test_119eseen in 21 other reviews
sanity2@zfs:test_119fseen in 20 other reviews
sanity2@zfs:test_119gseen in 20 other reviews
sanity2@zfs:test_119hseen in 20 other reviews
sanity2@zfs:test_119pseen in 12 other reviews
sanity2@zfs:test_119qseen in 12 other reviews
sanity2@zfs:test_398oseen in 25 other reviews
sanity2@zfs:test_398sseen in 12 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 27 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 15 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 72 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 31 other reviews
sanity-flr@zfs:test_0gseen in 34 other reviews
sanity-flr@zfs:test_0hseen in 36 other reviews
sanity-flr@zfs:test_0jseen in 35 other reviews
sanity-flr@zfs:test_36dseen in 33 other reviews
sanity-flr@zfs:test_37seen in 37 other reviews
sanity-flr@zfs:test_38seen in 35 other reviews
sanity-flr@zfs:test_44bseen in 14 other reviews
sanity-flr@zfs:test_61aseen in 41 other reviews
sanity-flr@zfs:test_61cseen in 34 other reviews
sanity-flr@zfs:test_70aseen in 62 other reviews
sanity-flr@zfs:test_200aseen in 34 other reviews
sanity-flr@zfs:test_200bseen in 34 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 15 other reviews
sanity-hsm@zfs:test_607bseen in 15 other reviews
sanity-quota@zfs:test_90bseen in 1 other review
sanityn@ldiskfs+DNE:test_16jseen in 30 other reviews
sanityn@zfs:test_16jseen in 33 other reviews
build #113002 FAILURE
patchsets:
+1 earlier PS1 03-01
PS2 03-01 PS3 10-28 PS4 10-28 PS5 11-03 PS6 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS6 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove dedicated otp_obj_off member

otp_obj_off and the offset stored in the brw page are the
same, and the osc transfer page always contains a brw page.

So we can just always use the bp_off offset.  This saves
4 bytes in the osc_transfer_page, which is a meaningful
reduction in size.

Total size of osc_transfer_page (on x86_64) is now down to
51 bytes.  This does not have a huge performance impact
because the struct still occupies two cachelines.
(Cachelines are 32 bytes.)

Getting the size to 32 bytes will be challenging, but may
be possible.  For example, the otp_ll_index field may be
removable, and it should be possible - with effort - to
remove the otp_pending_list.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie38e8154e184c4c9bec38f1ddd482b02cac29ab9
54594 master J ✗60B ✗T –R 0/2
LU-17885 osc: move list to queue_dio_pages
mine build failure (#113005)
60 unique failures stalled 474d S +11 −10
474d
build failure (#113005)
janitor: 60 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 9 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 8 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 11 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 11 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 11 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 26 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 11 other reviews
sanity1@zfs:test_56xseen in 40 other reviews
sanity1@zfs:test_56xBseen in 15 other reviews
sanity1@zfs:test_56xaseen in 40 other reviews
sanity1@zfs:test_56xabseen in 12 other reviews
sanity1@zfs:test_56xcseen in 36 other reviews
sanity1@zfs:test_56ejseen in 15 other reviews
sanity2@zfs:test_119eseen in 20 other reviews
sanity2@zfs:test_119fseen in 19 other reviews
sanity2@zfs:test_119gseen in 19 other reviews
sanity2@zfs:test_119hseen in 19 other reviews
sanity2@zfs:test_119pseen in 10 other reviews
sanity2@zfs:test_119qseen in 10 other reviews
sanity2@zfs:test_398oseen in 24 other reviews
sanity2@zfs:test_398sseen in 10 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 26 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 12 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 71 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 30 other reviews
sanity-flr@zfs:test_0gseen in 34 other reviews
sanity-flr@zfs:test_0hseen in 36 other reviews
sanity-flr@zfs:test_0jseen in 35 other reviews
sanity-flr@zfs:test_36dseen in 33 other reviews
sanity-flr@zfs:test_37seen in 37 other reviews
sanity-flr@zfs:test_38seen in 34 other reviews
sanity-flr@zfs:test_44bseen in 12 other reviews
sanity-flr@zfs:test_61aseen in 41 other reviews
sanity-flr@zfs:test_61cseen in 34 other reviews
sanity-flr@zfs:test_70aseen in 62 other reviews
sanity-flr@zfs:test_200aseen in 34 other reviews
sanity-flr@zfs:test_200bseen in 34 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 14 other reviews
sanity-hsm@zfs:test_607bseen in 13 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 33 other reviews
build #113005 FAILURE
patchsets:
+1 earlier PS1 03-28
PS2 05-29 PS3 10-28 PS4 10-28 PS5 11-03 PS6 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS6 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: move list to queue_dio_pages

Move list handling to queue_dio_pages.  This is a precursor
to removing list usage and this one actually makes things
less efficient, but only briefly.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I2f9671bf276b03e3ce5e9bae2d4239649ae25cec
52242 master J ✗53B ✗T –R 0/2
LU-13814 osc: drop cl_page structs for DIO
mine build failure (#112986)
53 unique failures stalled 474d M +14 −58
474d
build failure (#112986)
janitor: 53 test failures unique to this patch — sanity2@ldiskfs+DNE:test_119e, sanity2@ldiskfs+DNE:test_119f, sanity2@ldiskfs+DNE:test_119g +50 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_119eseen in 18 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 18 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 18 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 18 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 8 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 8 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 24 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 8 other reviews
sanity1@zfs:test_56xseen in 39 other reviews
sanity1@zfs:test_56xBseen in 13 other reviews
sanity1@zfs:test_56xaseen in 39 other reviews
sanity1@zfs:test_56xabseen in 10 other reviews
sanity1@zfs:test_56xcseen in 35 other reviews
sanity1@zfs:test_56ejseen in 13 other reviews
sanity2@zfs:test_119eseen in 20 other reviews
sanity2@zfs:test_119fseen in 19 other reviews
sanity2@zfs:test_119gseen in 19 other reviews
sanity2@zfs:test_119hseen in 19 other reviews
sanity2@zfs:test_119pseen in 9 other reviews
sanity2@zfs:test_119qseen in 9 other reviews
sanity2@zfs:test_398oseen in 24 other reviews
sanity2@zfs:test_398sseen in 9 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 26 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 11 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 71 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 30 other reviews
sanity-flr@zfs:test_0gseen in 33 other reviews
sanity-flr@zfs:test_0hseen in 35 other reviews
sanity-flr@zfs:test_0jseen in 34 other reviews
sanity-flr@zfs:test_36dseen in 32 other reviews
sanity-flr@zfs:test_37seen in 36 other reviews
sanity-flr@zfs:test_38seen in 33 other reviews
sanity-flr@zfs:test_44bseen in 10 other reviews
sanity-flr@zfs:test_61aseen in 40 other reviews
sanity-flr@zfs:test_61cseen in 33 other reviews
sanity-flr@zfs:test_70aseen in 60 other reviews
sanity-flr@zfs:test_200aseen in 33 other reviews
sanity-flr@zfs:test_200bseen in 33 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 10 other reviews
sanity-hsm@zfs:test_607bseen in 9 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 29 other reviews
sanityn@zfs:test_16jseen in 32 other reviews
build #112986 FAILURE
no vote yet: Qian Yingjin
patchsets:
+25 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-03 PS7 09-03 PS8 09-03 PS9 09-05 PS10 09-05 PS11 09-07 PS12 09-15 PS13 09-15 PS14 09-15 PS15 09-15 PS16 09-16 PS17 09-16 PS18 09-25 PS19 09-26 PS20 10-05 PS21 10-05 PS22 10-06 PS23 10-20 PS24 10-22 PS25 10-22
PS26 12-26 PS27 02-27 PS28 10-28 PS29 11-03 PS30 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS30 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: drop cl_page structs for DIO

This is the big one - this flips the switch and switches
DIO from using osc transfer pages which are part of
cl_pages and are initialized the same for buffered or DIO,
to using bare OSC transfer pages - no associated cl_page.

This patch is the primary goal of this series, but it stops
halfway, leaving out removing the cl_page allocation for
DIO, because that is better done in a separate patch.

Once that is done in the next patch, we'll see the
performance jump.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I7f664f0ffee97c9f2c778996423cef5ae79c3460
52243 master J ✗59B ✗T –R 0/2
LU-13814 clio: remove cl_page allocation for DIO
mine build failure (#112987)
59 unique failures stalled 474d M +1 −69
474d
build failure (#112987)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 33 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 6 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 33 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 5 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 34 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 8 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 19 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 19 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 19 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 19 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 9 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 9 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 25 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 9 other reviews
sanity1@zfs:test_56xseen in 39 other reviews
sanity1@zfs:test_56xBseen in 12 other reviews
sanity1@zfs:test_56xaseen in 39 other reviews
sanity1@zfs:test_56xabseen in 9 other reviews
sanity1@zfs:test_56xcseen in 35 other reviews
sanity1@zfs:test_56ejseen in 12 other reviews
sanity2@zfs:test_119eseen in 19 other reviews
sanity2@zfs:test_119fseen in 18 other reviews
sanity2@zfs:test_119gseen in 18 other reviews
sanity2@zfs:test_119hseen in 18 other reviews
sanity2@zfs:test_119pseen in 8 other reviews
sanity2@zfs:test_119qseen in 8 other reviews
sanity2@zfs:test_398oseen in 23 other reviews
sanity2@zfs:test_398sseen in 8 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 26 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 8 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 71 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 30 other reviews
sanity-flr@zfs:test_0gseen in 33 other reviews
sanity-flr@zfs:test_0hseen in 35 other reviews
sanity-flr@zfs:test_0jseen in 34 other reviews
sanity-flr@zfs:test_36dseen in 32 other reviews
sanity-flr@zfs:test_37seen in 36 other reviews
sanity-flr@zfs:test_38seen in 33 other reviews
sanity-flr@zfs:test_44bseen in 7 other reviews
sanity-flr@zfs:test_61aseen in 40 other reviews
sanity-flr@zfs:test_61cseen in 33 other reviews
sanity-flr@zfs:test_70aseen in 60 other reviews
sanity-flr@zfs:test_200aseen in 33 other reviews
sanity-flr@zfs:test_200bseen in 33 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 8 other reviews
sanity-hsm@zfs:test_607bseen in 10 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 29 other reviews
sanityn@zfs:test_16jseen in 31 other reviews
build #112987 FAILURE
patchsets:
+39 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-05 PS7 09-05 PS8 09-07 PS9 09-07 PS10 09-09 PS11 09-09 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-10 PS22 09-10 PS23 09-12 PS24 09-14 PS25 09-14 PS26 09-15 PS27 09-15 PS28 09-15 PS29 09-15 PS30 09-16 PS31 09-16 PS32 09-25 PS33 09-26 PS34 10-05 PS35 10-05 PS36 10-06 PS37 10-20 PS38 10-22 PS39 10-22
PS40 12-26 PS41 02-27 PS42 10-28 PS43 11-03 PS44 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS44 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: remove cl_page allocation for DIO

This removes the - now unused - cl_page allocation for DIO.
This will be followed by further patches cleaning up
various checks associated with transient cl pages, which no
longer exist.

With this patch, the performance benefits are realized.
This reduces the time to submit DIO pages by about 85%.
This results in about a 2.5-3x improvement in DIO
performance, because of other overheads and hardware
limitations.

Without this patch, IOR at 1 GiB transfer size:
Read: 22 GiB/s
Write: 20 GiB/s

With this patch, IOR at 1 GiB transfer size:
Read: 57 GiB/s
Write: 48 GiB/s

There's still some substantial overhead in the transfer
page allocations which is removed by the rest of this
series.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I406c69d69049484e477a671ada6b4e95357d9f39
54599 master J ✗3B ✗T –R 0/2
LU-17885 osc: move pending_list to OSC page
mine build failure (#113018)
3 unique failures stalled 475d M +66 −72
475d
build failure (#113018)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 1 other review
runtests@zfs:test_1NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
build #113018 FAILURE
patchsets:
+3 earlier PS1 03-28 PS2 03-28 PS3 05-29
PS4 10-28 PS5 10-28 PS6 11-03 PS7 11-03 PS8 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS8 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: move pending_list to OSC page

Move the pending list to the osc page.  This reduces the
size of osc_transfer_page by two full pointers, which is
quite significant - the entire struct is around 48 bytes,
so the removal of two pointers has a significant impact.

There's now little more than a BRW page in here.

It wouldn't be too difficult to replace the flags in here
with BRW flags, which would make the transfer page just a
BRW page.  This would give minimal benefit since it doesn't
actually reduce the allocated size, but might be nice.

Next, it is in theory possible to remove all per-page data
for DIO except the vmpage pointer.  For DIO, all per-page
data (even size and offset, even for encryption and
compression) can be inferred from a header associated with
the extent.

Still, at this point, one thread can submit DIO at over
100 GiB/s, so there's little point to further improvements.
Time is better spent in other areas.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I9c752f3dc2bb71c5ca2ed8bf6b3cb8db1756ad6c
56857 master J ✗3B ✗T –R 0/2
LU-17885 osc: inline osc_transfer_page_init
mine build failure (#113017)
3 unique failures stalled 475d S +6 −5
475d
build failure (#113017)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 1 other review
runtests-ssk@ldiskfs+SharedKey:test_1seen in 1 other review
runtests@zfs:test_1seen in 1 other review
build #113017 FAILURE
patchsets: PS1 11-03 PS2 11-03 PS3 11-03 PS4 11-03 PS5 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS5 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: inline osc_transfer_page_init

Inlining osc_transfer_page_init notably reduces CPU time
used in initializing pages - from 27% to 21% of total time.

In this microbenchmark, this reduces CPU time for DIO
overall by 10%, which should drive a performance improvement
of up to 11%.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I1193ce9f6a930aa07f2cc7f5bb8f4c4484ab2d03
52240 master J ✗59B ✗T –R 0/2
LU-13814 clio: add cdp_bytes
mine build failure (#112981)
59 unique failures stalled 475d XS +5 −0
475d
build failure (#112981)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 31 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 2 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 31 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 1 other review
sanity1@ldiskfs+DNE:test_56xcseen in 32 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 4 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 13 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 13 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 13 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 13 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 3 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 3 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 19 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 3 other reviews
sanity1@zfs:test_56xseen in 38 other reviews
sanity1@zfs:test_56xBseen in 7 other reviews
sanity1@zfs:test_56xaseen in 38 other reviews
sanity1@zfs:test_56xabseen in 4 other reviews
sanity1@zfs:test_56xcseen in 34 other reviews
sanity1@zfs:test_56ejseen in 7 other reviews
sanity2@zfs:test_119eseen in 16 other reviews
sanity2@zfs:test_119fseen in 15 other reviews
sanity2@zfs:test_119gseen in 15 other reviews
sanity2@zfs:test_119hseen in 15 other reviews
sanity2@zfs:test_119pseen in 4 other reviews
sanity2@zfs:test_119qseen in 4 other reviews
sanity2@zfs:test_398oseen in 20 other reviews
sanity2@zfs:test_398sseen in 4 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 25 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 5 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 70 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 29 other reviews
sanity-flr@zfs:test_0gseen in 32 other reviews
sanity-flr@zfs:test_0hseen in 34 other reviews
sanity-flr@zfs:test_0jseen in 33 other reviews
sanity-flr@zfs:test_36dseen in 31 other reviews
sanity-flr@zfs:test_37seen in 35 other reviews
sanity-flr@zfs:test_38seen in 32 other reviews
sanity-flr@zfs:test_44bseen in 4 other reviews
sanity-flr@zfs:test_61aseen in 39 other reviews
sanity-flr@zfs:test_61cseen in 32 other reviews
sanity-flr@zfs:test_70aseen in 59 other reviews
sanity-flr@zfs:test_200aseen in 31 other reviews
sanity-flr@zfs:test_200bseen in 32 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 5 other reviews
sanity-hsm@zfs:test_607bseen in 5 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 27 other reviews
sanityn@zfs:test_16jseen in 30 other reviews
build #112981 FAILURE
patchsets:
+39 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-03 PS7 09-03 PS8 09-03 PS9 09-05 PS10 09-07 PS11 09-07 PS12 09-09 PS13 09-09 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-10 PS22 09-10 PS23 09-10 PS24 09-10 PS25 09-12 PS26 09-14 PS27 09-14 PS28 09-15 PS29 09-15 PS30 09-16 PS31 09-24 PS32 09-25 PS33 09-26 PS34 09-26 PS35 10-05 PS36 10-05 PS37 10-20 PS38 10-22 PS39 10-22
PS40 12-26 PS41 02-27 PS42 10-28 PS43 11-03 PS44 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS44 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: add cdp_bytes

This is one of several things needed to do
prep_transfer_page in the DIO path, so add it.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I622b43ba0cee5fb3124fc30dd177f47df3aef3c0
52231 master J ✗1B ✗T –R 0/2
LU-13814 clio: add cdp_osc_tpages array
mine build failure (#112973)
1 unique failure stalled 475d S +33 −3
475d
build failure (#112973)
janitor: 1 test failure unique to this patch — sanity-quota@zfs:test_1b
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-quota@zfs:test_1bseen in 38 other reviews
build #112973 FAILURE
patchsets:
+36 earlier PS1 09-02 PS2 09-02 PS3 09-02 PS4 09-03 PS5 09-03 PS6 09-03 PS7 09-03 PS8 09-03 PS9 09-05 PS10 09-07 PS11 09-09 PS12 09-09 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-12 PS22 09-14 PS23 09-14 PS24 09-15 PS25 09-15 PS26 09-16 PS27 09-24 PS28 09-25 PS29 09-26 PS30 09-26 PS31 10-05 PS32 10-05 PS33 10-20 PS34 10-22 PS35 10-22 PS36 12-26
PS37 02-27 PS38 10-28 PS39 11-03 PS40 04-29 PS41 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS41 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: add cdp_osc_tpages array

This adds the OSC transfer pages array to the cl_dio_pages
struct, which will soon replace cl_pages for DIO.

Test-Parameters: trivial
Test-Parameters: testlist=sanity-sec env=ONLY=52,59a,59b
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I2986bfc1b54b3e9e6c2e5517f130ace8ff2e4ef2
52234 master J ✗51B ✗T –R 0/2
LU-13814 osc: move from/to to otp prep
mine build failure (#112976)
51 unique failures stalled 475d S +9 −7
475d
build failure (#112976)
janitor: 51 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +48 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 30 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 1 other review
sanity1@ldiskfs+DNE:test_56xaseen in 30 other reviews
sanity1@ldiskfs+DNE:test_56xabNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xcseen in 31 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 3 other reviews
sanity1@zfs:test_56xseen in 38 other reviews
sanity1@zfs:test_56xBseen in 6 other reviews
sanity1@zfs:test_56xaseen in 38 other reviews
sanity1@zfs:test_56xabseen in 3 other reviews
sanity1@zfs:test_56xcseen in 34 other reviews
sanity1@zfs:test_56ejseen in 6 other reviews
sanity2@zfs:test_119eseen in 15 other reviews
sanity2@zfs:test_119fseen in 14 other reviews
sanity2@zfs:test_119gseen in 14 other reviews
sanity2@zfs:test_119hseen in 14 other reviews
sanity2@zfs:test_119pseen in 3 other reviews
sanity2@zfs:test_119qseen in 3 other reviews
sanity2@zfs:test_398oseen in 19 other reviews
sanity2@zfs:test_398sseen in 3 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 25 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 4 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 70 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 29 other reviews
sanity-flr@zfs:test_0gseen in 32 other reviews
sanity-flr@zfs:test_0hseen in 34 other reviews
sanity-flr@zfs:test_0jseen in 33 other reviews
sanity-flr@zfs:test_36dseen in 31 other reviews
sanity-flr@zfs:test_37seen in 35 other reviews
sanity-flr@zfs:test_38seen in 31 other reviews
sanity-flr@zfs:test_44bseen in 3 other reviews
sanity-flr@zfs:test_61aseen in 39 other reviews
sanity-flr@zfs:test_61cseen in 32 other reviews
sanity-flr@zfs:test_70aseen in 59 other reviews
sanity-flr@zfs:test_200aseen in 31 other reviews
sanity-flr@zfs:test_200bseen in 32 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 4 other reviews
sanity-hsm@zfs:test_607bseen in 4 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 27 other reviews
sanityn@zfs:test_16jseen in 30 other reviews
build #112976 FAILURE
patchsets:
+37 earlier PS1 09-02 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-03 PS7 09-03 PS8 09-05 PS9 09-07 PS10 09-09 PS11 09-09 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-10 PS22 09-12 PS23 09-14 PS24 09-14 PS25 09-15 PS26 09-15 PS27 09-16 PS28 09-24 PS29 09-25 PS30 09-26 PS31 09-26 PS32 10-05 PS33 10-05 PS34 10-20 PS35 10-22 PS36 10-22 PS37 12-26
PS38 02-27 PS39 10-28 PS40 11-03 PS41 04-29 PS42 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS42 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: move from/to to otp prep

Everything in the otp needs to be init inside the OTP
preparation function, so move from and to.

Test-Parameters: fortestonly
Test-Parameters: testlist=sanity-sec env=ONLY=52,59a,59b
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Id18a7ddbaf1c2f46b32b7d927df93792126ef5b3
52233 master J ✗45B ✗T –R 0/2
LU-13814 osc: move srvlock to prep otp
mine build failure (#112975)
45 unique failures stalled 475d XS +6 −3
475d
build failure (#112975)
janitor: 45 test failures unique to this patch — sanity1@zfs:test_56x, sanity1@zfs:test_56xB, sanity1@zfs:test_56xa +42 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@zfs:test_56xseen in 38 other reviews
sanity1@zfs:test_56xBseen in 6 other reviews
sanity1@zfs:test_56xaseen in 38 other reviews
sanity1@zfs:test_56xabseen in 3 other reviews
sanity1@zfs:test_56xcseen in 34 other reviews
sanity1@zfs:test_56ejseen in 6 other reviews
sanity2@zfs:test_119eseen in 15 other reviews
sanity2@zfs:test_119fseen in 14 other reviews
sanity2@zfs:test_119gseen in 14 other reviews
sanity2@zfs:test_119hseen in 14 other reviews
sanity2@zfs:test_119pseen in 3 other reviews
sanity2@zfs:test_119qseen in 3 other reviews
sanity2@zfs:test_398oseen in 19 other reviews
sanity2@zfs:test_398sseen in 3 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 25 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 4 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 70 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 29 other reviews
sanity-flr@zfs:test_0gseen in 32 other reviews
sanity-flr@zfs:test_0hseen in 34 other reviews
sanity-flr@zfs:test_0jseen in 33 other reviews
sanity-flr@zfs:test_36dseen in 31 other reviews
sanity-flr@zfs:test_37seen in 35 other reviews
sanity-flr@zfs:test_38seen in 31 other reviews
sanity-flr@zfs:test_44bseen in 3 other reviews
sanity-flr@zfs:test_61aseen in 39 other reviews
sanity-flr@zfs:test_61cseen in 32 other reviews
sanity-flr@zfs:test_70aseen in 59 other reviews
sanity-flr@zfs:test_200aseen in 31 other reviews
sanity-flr@zfs:test_200bseen in 32 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 4 other reviews
sanity-hsm@zfs:test_607bseen in 4 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 27 other reviews
sanityn@zfs:test_16jseen in 30 other reviews
build #112975 FAILURE
patchsets:
+34 earlier PS1 09-02 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-03 PS7 09-05 PS8 09-07 PS9 09-09 PS10 09-09 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-12 PS20 09-14 PS21 09-14 PS22 09-15 PS23 09-15 PS24 09-16 PS25 09-24 PS26 09-25 PS27 09-26 PS28 09-26 PS29 10-05 PS30 10-05 PS31 10-20 PS32 10-22 PS33 10-22 PS34 12-26
PS35 02-27 PS36 10-28 PS37 11-03 PS38 04-29 PS39 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS39 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: move srvlock to prep otp

Everything in the otp needs to be init inside the OTP
preparation function, so move srvlock.

Test-Parameters: fortestonly
Test-Parameters: testlist=sanity-sec env=ONLY=52,59a,59b
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I1940101c9e21e345d20d93820951fe26eab95cf6
52235 master J ✗46B ✗T –R 0/2
LU-13814 osc: rename osc_prep_transfer_page
mine build failure (#112977)
46 unique failures stalled 475d S +19 −20
475d
build failure (#112977)
janitor: 46 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@zfs:test_56x, sanity1@zfs:test_56xB +43 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@zfs:test_56xseen in 38 other reviews
sanity1@zfs:test_56xBseen in 6 other reviews
sanity1@zfs:test_56xaseen in 38 other reviews
sanity1@zfs:test_56xabseen in 3 other reviews
sanity1@zfs:test_56xcseen in 34 other reviews
sanity1@zfs:test_56ejseen in 6 other reviews
sanity2@zfs:test_119eseen in 15 other reviews
sanity2@zfs:test_119fseen in 14 other reviews
sanity2@zfs:test_119gseen in 14 other reviews
sanity2@zfs:test_119hseen in 14 other reviews
sanity2@zfs:test_119pseen in 3 other reviews
sanity2@zfs:test_119qseen in 3 other reviews
sanity2@zfs:test_398oseen in 19 other reviews
sanity2@zfs:test_398sseen in 3 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 25 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 4 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 70 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 29 other reviews
sanity-flr@zfs:test_0gseen in 32 other reviews
sanity-flr@zfs:test_0hseen in 34 other reviews
sanity-flr@zfs:test_0jseen in 33 other reviews
sanity-flr@zfs:test_36dseen in 31 other reviews
sanity-flr@zfs:test_37seen in 35 other reviews
sanity-flr@zfs:test_38seen in 31 other reviews
sanity-flr@zfs:test_44bseen in 3 other reviews
sanity-flr@zfs:test_61aseen in 39 other reviews
sanity-flr@zfs:test_61cseen in 32 other reviews
sanity-flr@zfs:test_70aseen in 59 other reviews
sanity-flr@zfs:test_200aseen in 31 other reviews
sanity-flr@zfs:test_200bseen in 32 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 4 other reviews
sanity-hsm@zfs:test_607bseen in 4 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 27 other reviews
sanityn@zfs:test_16jseen in 30 other reviews
build #112977 FAILURE
no vote yet: Andreas Dilger
patchsets:
+37 earlier PS1 09-02 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-03 PS7 09-03 PS8 09-05 PS9 09-07 PS10 09-09 PS11 09-09 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-10 PS22 09-10 PS23 09-12 PS24 09-14 PS25 09-14 PS26 09-15 PS27 09-15 PS28 09-16 PS29 09-24 PS30 09-25 PS31 09-26 PS32 09-26 PS33 10-05 PS34 10-05 PS35 10-20 PS36 10-22 PS37 10-22
PS38 12-26 PS39 02-27 PS40 10-28 PS41 11-03 PS42 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS42 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: rename osc_prep_transfer_page

osc_transfer_page_init is a better match for osc_page_init.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Id12eec932eb4aab00139f08532b218c12e6ffba4
52493 master J ✗54B ✗T –R 0/2
LU-13814 llite: fix RDMA only check for DIO pages
mine build failure (#112974)
54 unique failures stalled 475d M +56 −30
475d
build failure (#112974)
janitor: 54 test failures unique to this patch — recovery-small@zfs:test_155, sanity2@ldiskfs+DNE:test_119e, sanity2@ldiskfs+DNE:test_119f +51 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_119eseen in 12 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 12 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 12 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 12 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 2 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 2 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 18 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 2 other reviews
sanity1@zfs:test_56xseen in 38 other reviews
sanity1@zfs:test_56xBseen in 5 other reviews
sanity1@zfs:test_56xaseen in 38 other reviews
sanity1@zfs:test_56xabseen in 2 other reviews
sanity1@zfs:test_56xcseen in 34 other reviews
sanity1@zfs:test_56ejseen in 5 other reviews
sanity2@zfs:test_119eseen in 14 other reviews
sanity2@zfs:test_119fseen in 13 other reviews
sanity2@zfs:test_119gseen in 13 other reviews
sanity2@zfs:test_119hseen in 13 other reviews
sanity2@zfs:test_119pseen in 2 other reviews
sanity2@zfs:test_119qseen in 2 other reviews
sanity2@zfs:test_398oseen in 18 other reviews
sanity2@zfs:test_398sseen in 2 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 25 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 3 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 70 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 28 other reviews
sanity-flr@zfs:test_0gseen in 32 other reviews
sanity-flr@zfs:test_0hseen in 34 other reviews
sanity-flr@zfs:test_0jseen in 33 other reviews
sanity-flr@zfs:test_36dseen in 31 other reviews
sanity-flr@zfs:test_37seen in 35 other reviews
sanity-flr@zfs:test_38seen in 31 other reviews
sanity-flr@zfs:test_44bseen in 2 other reviews
sanity-flr@zfs:test_61aseen in 39 other reviews
sanity-flr@zfs:test_61cseen in 32 other reviews
sanity-flr@zfs:test_70aseen in 59 other reviews
sanity-flr@zfs:test_200aseen in 30 other reviews
sanity-flr@zfs:test_200bseen in 32 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 3 other reviews
sanity-hsm@zfs:test_607bseen in 3 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 27 other reviews
sanityn@zfs:test_16jseen in 30 other reviews
build #112974 FAILURE
patchsets:
+10 earlier PS1 09-24 PS2 09-25 PS3 09-26 PS4 09-26 PS5 10-05 PS6 10-05 PS7 10-20 PS8 10-22 PS9 10-22 PS10 12-26
PS11 02-27 PS12 10-28 PS13 11-03 PS14 04-29 PS15 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS15 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 llite: fix RDMA only check for DIO pages

We need to add the check for RDMA only pages and unaligned
DIO for DIO pages as we move to them.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I987fecac7874b933a1b558ef442c3ef17120740a
56872 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp from extent_finish +
mine build failure (#108803)
3 unique failures stalled 653d S +14 −14
653d
build failure (#108803)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 26 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 26 other reviews
runtests@zfs:test_1seen in 20 other reviews
build #108803 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp from extent_finish +

Remove otp usage in osc_extent_finish and
osc_flush_async_page.

Slow progress.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I9a3a0fe525c93ca264fd60b9597f8ae76ec53398
56871 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp from osc_queue_async_io
mine build failure (#108802)
3 unique failures stalled 653d S +18 −19
653d
build failure (#108802)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 25 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 26 other reviews
runtests@zfs:test_1seen in 19 other reviews
build #108802 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp from osc_queue_async_io

Remove otp usage in osc_queue_async_io

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I527228cc69b9a976c40cafc43e4ead322106df3f
56867 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp_page_off and brw_page2otp
mine build failure (#108798)
3 unique failures stalled 653d M +23 −37
653d
build failure (#108798)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 21 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 24 other reviews
runtests@zfs:test_1seen in 15 other reviews
build #108798 FAILURE
patchsets: PS1 11-03 PS2 11-03
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp_page_off and brw_page2otp

Remove simple functions to simplify otp->brw_page change

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Ie72724db96ae4e8ed7924952ca8652d426d7926b
56870 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp2osc
mine build failure (#108801)
3 unique failures stalled 653d S +10 −11
653d
build failure (#108801)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 23 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 24 other reviews
runtests@zfs:test_1seen in 17 other reviews
build #108801 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp2osc

Remove these simple functions to make transition to brw
page easier.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Icef7e9998ed7261c0a0d3963684915c6d7d2bc26
56868 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp_index and otp2osc_page
mine build failure (#108800)
3 unique failures stalled 653d S +6 −21
653d
build failure (#108800)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 24 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 24 other reviews
runtests@zfs:test_1seen in 18 other reviews
build #108800 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp_index and otp2osc_page

Remove these simple functions to make transition to brw
page easier.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I7ab38fe8e1797fdfc783f9437d35bd36e54942d8
56869 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp2cl_page
mine build failure (#108799)
3 unique failures stalled 653d S +8 −22
653d
build failure (#108799)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 22 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 24 other reviews
runtests@zfs:test_1seen in 16 other reviews
build #108799 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp2cl_page

Remove these simple functions to make transition to brw
page easier.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Iad78799a010ee818c802326c2c40958de98daadd
56865 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp_count macro
mine build failure (#108797)
3 unique failures stalled 653d M +28 −22
653d
build failure (#108797)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 20 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 21 other reviews
runtests@zfs:test_1seen in 14 other reviews
build #108797 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp_count macro

Remove macro to simplify otp->brw_page change

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I17f41f7e49fb502d21c30727945b62532887bd68
56866 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp_obj_off macro
mine build failure (#108796)
3 unique failures stalled 653d M +28 −31
653d
build failure (#108796)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 19 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 21 other reviews
runtests@zfs:test_1seen in 13 other reviews
build #108796 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp_obj_off macro

Remove macro to simplify otp->brw_page change

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Id08e579da486c8d727d38f401d234ded0d66efa7
56864 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp_page and otp_flags macros
mine build failure (#108795)
3 unique failures stalled 653d S +17 −19
653d
build failure (#108795)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 21 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 21 other reviews
runtests@zfs:test_1seen in 15 other reviews
build #108795 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp_page and otp_flags macros

Remove macros to simplify otp->brw_page change

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I500c1d37433a9b69eb1568caccf729a47d0a2d79
56860 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp flags
mine build failure (#108794)
3 unique failures stalled 653d M +18 −34
653d
build failure (#108794)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 19 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 20 other reviews
runtests@zfs:test_1seen in 13 other reviews
build #108794 FAILURE
patchsets: PS1 11-03 PS2 11-03
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp flags

Remove usage of otp flags, move entirely in to BRW page.

And now OTP is just another name for a brw page.

The next patch is clear enough.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Ic90118cbe622b8d777b5f162d0b8784892db1495
56859 master J ✗3B ✗T –R 0/2
LU-17885 osc: begin move to brw_page only
mine build failure (#108791)
3 unique failures stalled 653d M +29 −39
653d
build failure (#108791)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 21 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 21 other reviews
runtests@zfs:test_1seen in 15 other reviews
build #108791 FAILURE
patchsets: PS1 11-03 PS2 11-03
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: begin move to brw_page only

The osc_transfer_page is now a thin wrapper around the BRW
page, so let's work on removing it entirely.

This patch pushes cp_type in to the brw page flags, and
preps the rest of the OTP flags in the BRW flags.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I045dc064a44ee098bcfc6c9b2dd4f627a03a32d8
50577 master J ✗6B ✓T ✗9R 0/2−
LU-17473 tests: add racing tests of aio
mine janitor: 6 test failures unique to this patch — sanity2@ldiskfs+DNE:test_119s, sanity2@ldiskfs+DNE:test_119t, sanity2@ldiskfs+DNE:test_119u +3 more
6 unique failures stalled 654d M +233 −0
654d
janitor: 6 test failures unique to this patch — sanity2@ldiskfs+DNE:test_119s, sanity2@ldiskfs+DNE:test_119t, sanity2@ldiskfs+DNE:test_119u +3 more
enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-dne-subtest-change, review-dne-zfs-part-1, review-dne-zfs-subtest-change, review-ldiskfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_119sNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_119tNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_119uNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_119sNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_119tNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_119uNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.3 / x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.9 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-subtest-change failed 3× RHEL 9.3 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.9 / x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-zfs-subtest-change failed 3× RHEL 8.9 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.3 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9 / x86_64, RHEL 9.3 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
10 optional test failure(s) — informational
build #108712 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Shaun Tancheff, Andreas Dilger
patchsets:
+55 earlier PS1 04-07 PS2 04-07 PS3 04-07 PS4 04-10 PS5 04-10 PS6 04-10 PS7 04-19 PS8 04-24 PS9 05-10 PS10 05-14 PS11 05-15 PS12 05-24 PS13 05-24 PS14 05-30 PS15 05-30 PS16 05-31 PS17 05-31 PS18 05-31 PS19 05-31 PS20 06-06 PS21 06-06 PS22 06-06 PS23 06-09 PS24 06-09 PS25 06-09 PS26 06-17 PS27 06-29 PS28 07-27 PS29 08-01 PS30 08-01 PS31 08-03 PS32 08-07 PS33 08-09 PS34 08-10 PS35 08-13 PS36 08-13 PS37 08-13 PS38 08-14 PS39 08-14 PS40 08-14 PS41 08-15 PS42 08-15 PS43 08-15 PS44 08-15 PS45 08-15 PS46 08-21 PS47 09-07 PS48 09-07 PS49 09-09 PS50 09-15 PS51 09-15 PS52 09-28 PS53 10-24 PS54 01-16 PS55 01-16
PS56 01-26 PS57 01-26 PS58 02-08 PS59 03-01 Andreas Dilger PS60 11-02
your previous vote: -1 on PS48 (2023-09-08 16:36) — now at PS60
owner Patrick Farrell · uploader Patrick Farrell · PS60 uploaded 655d ago · NEW · open in Gerrit ↗
commit message
LU-17473 tests: add racing tests of aio

This patch adds several racing tests for aio.  This has
been separated from the other patches in the unaligned DIO
series because the aio issue uncovered by these tests is
pre-existing and I want to separate solving it from the
unaligned DIO patches.

Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I3571a9a620299137624318e503ab901470f97823
55057 master J ✗1B ✓T ✗15R 0/2
LU-17831 osc: batch discard for read locks
mine janitor: 1 test failure unique to this patch — replay-vbr@zfs:test_5b
1 unique failure stalled 832d M +49 −7
832d
janitor: 1 test failure unique to this patch — replay-vbr@zfs:test_5b
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-part-7, review-dne-part-8, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-ldiskfs, review-zfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
replay-vbr@zfs:test_5bseen in 9 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.3/x86_64 ran 6 tests. 2 tests failed: sanity-pfl, sanity. session
review-dne-part-2 crashed RHEL 9.3/x86_64 ran 11 tests. 3 tests failed: sanity-sec, sanity-lfsck, replay-dual. %% THIS TEST SESSION CRASHED %% session
review-dne-part-3 RHEL 9.3/x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 crashed RHEL 9.3/x86_64 ran 11 tests. 5 tests failed: sanity-quota, sanity-hsm, sanity-flr, sanity-dom, replay-ost-single. %% THIS TE session
review-dne-part-5 RHEL 9.3/x86_64 ran 10 tests. 3 tests failed: sanityn, sanity-scrub, recovery-small. session
review-dne-part-6 RHEL 9.3/x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. session
review-dne-part-7 RHEL 9.3/x86_64 ran 4 tests. 1 tests failed: sanity-pcc. session
review-dne-part-8 crashed RHEL 9.3/x86_64 ran 4 tests. 1 tests failed: replay-dual. %% THIS TEST SESSION CRASHED %% session
review-dne-selinux-ssk-part-1 RHEL 8.9/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.9/x86_64 ran 9 tests. 3 tests failed: sanity-selinux, sanity-sec, recovery-small. session
review-ldiskfs RHEL 8.9/x86_64, SLES 15.5/x86_64 ran 7 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.3/x86_64 ran 7 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64 ran 7 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64, RHEL 9.3/x86_64 ran 7 tests. 1 tests failed: sanity. session
review-zfs crashed RHEL 8.9/x86_64 ran 16 tests. 5 tests failed: sanity-lsnapshot, replay-ost-single, replay-single, sanity-flr, sanity-quota. % session
3 optional test failure(s) — informational
build #104671 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 833d ago · NEW · open in Gerrit ↗
commit message
LU-17831 osc: batch discard for read locks

POC patch

Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: If22f7d535eef620bbf01c7d738d447e304ca7ad6
52778 master J ✓B ✓T ✗9R 0/2
LU-13802 tests: hybrid IO consistency test
mine enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-ldiskfs, review-ldiskfs-arm
hio stalled 845d S +48 −0
845d
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.9/x86_64, RHEL 9.3/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.9/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.2/x86_64, RHEL 9.3/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64, SLES 15.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.9/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #103740 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+13 earlier PS1 10-20 PS2 10-20 PS3 10-20 PS4 10-24 PS5 10-24 PS6 02-10 PS7 02-10 PS8 02-12 PS9 02-12 PS10 02-12 PS11 02-13 PS12 02-13 PS13 03-13
PS14 03-13 PS15 03-21 PS16 03-21 PS17 03-27 PS18 04-01
owner Patrick Farrell · uploader Patrick Farrell · PS18 uploaded 870d ago · NEW · open in Gerrit ↗
commit message
LU-13802 tests: hybrid IO consistency test

Hybrid IO is an IO path change, and we should make sure it
produces consistent data.

Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I926e7cf23c61148b86b9492ed07138ab9d09a103
52822 master J !B ✓T ✗10R 0/2
LU-13802 llite: add ZFS check for hybrid IO
mine enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-ldiskfs, review-ldiskfs-arm
hio stalled 845d M +104 −19
845d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.9/x86_64, RHEL 9.3/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.9/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.9/x86_64 ran 4 tests. 1 tests failed: sanity-sec. session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 2 tests failed: sanity-lnet, sanity. session
review-ldiskfs RHEL 8.9/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.2/x86_64, RHEL 9.3/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64, SLES 15.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.9/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #103741 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+9 earlier PS1 10-24 PS2 02-10 PS3 02-10 PS4 02-12 PS5 02-12 PS6 02-12 PS7 02-13 PS8 02-13 PS9 03-13
PS10 03-13 PS11 03-21 PS12 03-21 PS13 03-27 PS14 04-01
owner Patrick Farrell · uploader Patrick Farrell · PS14 uploaded 870d ago · NEW · open in Gerrit ↗
commit message
LU-13802 llite: add ZFS check for hybrid IO

Because by default ZFS only does one DIO operation per
commit interval and commit intervals are in seconds, ZFS
performance for DIO is extremely poor.  This means we
should basically never do hybrid IO switching when using
ZFS.

Implement this.

Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I633799cd080e4f8bbab758c972de592d7ff28725
53688 master J ✗3B ✗T –R 0/2
LU-17433 llite: move dio range locking to DIO
mine build failure (#103612)
3 unique failures stalled 846d S +33 −13
846d
build failure (#103612)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 12 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 12 other reviews
runtests@zfs:test_1seen in 5 other reviews
build #103612 FAILURE
no vote yet: Qian Yingjin
patchsets: PS1 01-16 PS2 01-16 PS3 02-27 PS4 03-28 PS5 03-28
owner Patrick Farrell · uploader Patrick Farrell · PS5 uploaded 874d ago · NEW · open in Gerrit ↗
commit message
LU-17433 llite: move dio range locking to DIO

For async DIO writes, we need to do the range unlocking
after the IO has completed, not before, otherwise we could
get write reordering.

So we move the unlocking to the cl_dio_aio_end.

Also rename lli_write_tree, because it's not just used for
writes.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I8ed0f9e41089f82260ec33e47637b785242240dc
54200 master J ✗3B ✗T –R 0/2
LU-17433 osc: add dlmlock handling to DIO
mine build failure (#103613)
3 unique failures stalled 846d S +15 −7
846d
build failure (#103613)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 12 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 12 other reviews
runtests@zfs:test_1seen in 5 other reviews
build #103613 FAILURE
no vote yet: Qian Yingjin
patchsets: PS1 02-27 PS2 03-28 PS3 03-28
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 874d ago · NEW · open in Gerrit ↗
commit message
LU-17433 osc: add dlmlock handling to DIO

In order to safely do parallel DIO with dlmlocks, we need
to take and put a reference on the dlmlock used for each
DIO.  With the new cl_dio_pages init and free code, this is
straightforward.

With this change, we can allow parallel DIO even when using
dlmlocks.

This will also allow async hybrid writes.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I27b2d57e90178e0b9bbfd3942eec02ec74d3f022
54202 master J ✗3B ✗T –R 0/2
LU-17433 llite: implement async hybrid writes
mine build failure (#103615)
3 unique failures stalled 846d M +36 −16
846d
build failure (#103615)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 12 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 12 other reviews
runtests@zfs:test_1seen in 5 other reviews
build #103615 FAILURE
no vote yet: Qian Yingjin, Andreas Dilger
patchsets: PS1 02-27 PS2 03-28 PS3 03-28
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 874d ago · NEW · open in Gerrit ↗
commit message
LU-17433 llite: implement async hybrid writes

This patch implements async hybrid writes.

This hugely boosts the performance of hybrid writes at
smaller sizes.  For example, on my local VM system, 2M
hybrid writes normally go at 230 MiB/s (roughly the
speed of storage), and buffered writes at 1.4 GiB/s.

With this patch, 2M hybrid writes go at ~6.8 GiB/s.

Note this does not include parallel data copies or page
pool usage, which are also in flight and should increase
this substantially.

This should cause us to re-evaluate when we do hybrid IO
vs regular buffered writes, since hybrid will now be faster
in all cases except for write sizes less than one page.
*However*, currently hybrid will not aggregate async writes,
so it will result in a stream of small RPCs to the server.
This is in fact something that can be resolved, but for
now this problem can be avoided by not changing the
switching threshold.

Note the current form is based on an incomplete version of
hybrid IO and not suitable for landing, but this is just a
minor thing which will be resolved when the main hybrid
patches are complete.

This patch series *does* depend on the DIO simplification
series, because of some changes to DIO tracking that code
makes.  This dependency could be removed at the cost of
duplicating a decent chunk of the DIO simplification series,
so I'd rather not.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I009bc37c92f391c0304b60fa207d220fa3172fa6
45472 master J ✗1B ✓T ✗9R 0/2−
LU-15033 llite: Strengthen miss checking
mine janitor: 1 test failure unique to this patch — sanity1@ldiskfs+DNE:test_56od
1 unique failure stalled 915d M +45 −21
915d
janitor: 1 test failure unique to this patch — sanity1@ldiskfs+DNE:test_56od
enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56odNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #102218 SUCCESS · tests all Maloo sessions
patchsets:
+10 earlier PS1 11-05 PS2 11-06 PS3 11-07 PS4 11-07 PS5 11-08 PS6 11-09 PS7 11-09 PS8 12-10 PS9 12-15 PS10 02-07
PS11 03-07 PS12 03-07 PS13 03-08 PS14 06-27 PS15 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS15 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 llite: Strengthen miss checking

For most of our readahead tests, we can predict precisely
the expected number of misses.

Different read patterns require different numbers of misses
to detect, and behavior like whole file read can also
reduce the number of misses - but if we are trying to test
a specific readahead pattern, using a different one renders
the test invalid.  If we are trying to verify our ability
to handle a strided pattern but we instead read the whole
file, there will be fewer misses, but the test is useless.

This means as much as possible we should precisely specify
the number of misses in our tests, so we ensure they are
testing what we think they are testing.

With the various fixes in place to remove random misses and
generally tighten things up, this is now practical.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I7a800db1a6a8fdf91f714366e6fe8147b7269656
54068 master J ✗3B ✓T ✗2R 0/2−
LU-15033 llite: add strict discard checking
mine janitor: 3 test failures unique to this patch — sanity2@zfs:test_101ac, sanity2@zfs:test_101i, sanity2@zfs:test_101l
3 unique failures stalled 915d M +39 −11
915d
janitor: 3 test failures unique to this patch — sanity2@zfs:test_101ac, sanity2@zfs:test_101i, sanity2@zfs:test_101l
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_101acNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_101iseen in 3 other reviews
sanity2@zfs:test_101lseen in 3 other reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102219 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 llite: add strict discard checking

Now all the tests try to enforce reasonable bounds on
the number of discards.  This is part of the ongoing effort
to tightly characterize readahead in the individual tests,
so we know for sure they are testing the right thing.

Historically, many readahead tests have passed but have not
actually tested the intended readahead behavior, eg, strided
RA tests passing when the whole file is read in.  This helps
make those cases harder.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Iddc23d0228bdb813dda108455134a8afbe17785b
45718 master J –B ✓T ✗9R 0/2−
LU-15274 llite: Loose reverse readahead
mine enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-arm
stalled 915d L +268 −32
915d
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #102217 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin
patchsets:
+5 earlier PS1 12-02 PS2 12-13 PS3 12-15 PS4 02-04 PS5 03-04
PS6 03-07 PS7 03-07 PS8 03-07 PS9 06-27 PS10 02-15
your previous vote: -1 on PS4 (2022-02-09 21:48) — now at PS10
owner Patrick Farrell · uploader Patrick Farrell · PS10 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15274 llite: Loose reverse readahead

Some applications read files in reverse, we should
support this in readahead.

This adds the concept of "loose reverse readahead",
where we will match 'loose' reverse reads, and do
readahead for them in a similar manner to forward reads.

For sequential and 'loose' (semi-sequential), this makes
performance roughly the same for forward and reverse
readahead.

For one case, a 63 MiB backwards mmap read, it improved
performance by ~98% - Reducing read time from 226 seconds
to 5 seconds.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I2da196f441edcacd18d834958bd30413b1675f02
45452 master J ✗5B ✓T ✗2R 0/2−
LU-15194 llite: Fix page size readahead window
mine janitor: 5 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101aa, sanity2@ldiskfs+DNE:test_101i, sanity2@ldiskfs+DNE:test_101k +2 more
5 unique failures stalled 915d M +48 −2
915d
janitor: 5 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101aa, sanity2@ldiskfs+DNE:test_101i, sanity2@ldiskfs+DNE:test_101k +2 more
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_101aaNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_101iseen in 7 other reviews
sanity2@ldiskfs+DNE:test_101kNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_101lNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_101nNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102215 SUCCESS · tests all Maloo sessions
patchsets:
+11 earlier PS1 11-03 PS2 11-05 PS3 11-06 PS4 11-07 PS5 11-07 PS6 11-08 PS7 11-09 PS8 11-09 PS9 12-13 PS10 12-15 PS11 02-07
PS12 03-07 PS13 03-07 PS14 02-15 PS15 02-15 PS16 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS16 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15194 llite: Fix page size readahead window

The first page of a read does not use the readahead code,
so it doesn't learn the actual RPC size data from the OSC
layer.  But this is used to set the initial readahead
window size.

That means if the first read is a single page read and the
next read triggers readahead, the size of the readahead is
MAX_BRW_PAGES - so the readahead window is set to 64 MiB,
even if the RPC size is set to 1 MiB or 4 MiB!

It's tricky to get this information from the OSC layer
before starting readahead, so we just default the starting
RPC size to 1 MiB.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I65812d59f25135d769bf6c855de4f8631b458fc4
45473 master J !B ✓T ✗2R 0/2
LU-15033 llite: whole file readahead test
mine enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
stalled 915d M +76 −0
915d
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102216 SUCCESS · tests all Maloo sessions
patchsets:
+8 earlier PS1 11-05 PS2 11-06 PS3 11-07 PS4 11-07 PS5 11-08 PS6 11-09 PS7 11-09 PS8 12-10
PS9 12-15 PS10 02-07 PS11 03-07 PS12 03-07 PS13 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS13 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 llite: whole file readahead test

There is no test for whole file readahead.  Add one.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ia4426682139753588d6536b6b1afa2e95c896c34
45234 master J ✗5B ✓T ✗11R 0/2−
LU-15100 llite: Add loose read pages tunables
mine janitor: 5 test failures unique to this patch — sanity2@zfs:test_101i, sanity2@zfs:test_101k, sanity2@zfs:test_101l +2 more
5 unique failures stalled 915d M +227 −8
915d
janitor: 5 test failures unique to this patch — sanity2@zfs:test_101i, sanity2@zfs:test_101k, sanity2@zfs:test_101l +2 more
enforced failed: review-dne-part-1, review-dne-part-3, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-dne-zfs-part-5, review-ldiskfs, review-ldiskfs-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_101iseen in 4 other reviews
sanity2@zfs:test_101kNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_101lNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_101nNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_123iseen in 4 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-part-3 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-zfs-part-5 RHEL 8.8/x86_64 ran 6 tests. 2 tests failed: sanityn, recovery-small. session
review-ldiskfs crashed RHEL 8.8/x86_64 ran 5 tests. 2 tests failed: sanity-lnet, sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #102212 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+28 earlier PS1 10-13 PS2 10-15 PS3 10-15 PS4 10-17 PS5 10-20 PS6 10-20 PS7 10-21 PS8 10-25 PS9 10-27 PS10 11-05 PS11 11-06 PS12 11-07 PS13 11-07 PS14 11-08 PS15 12-09 PS16 12-15 PS17 02-06 PS18 03-07 PS19 07-04 PS20 01-17 Patrick Farrell (personal) PS21 01-17 Patrick Farrell (personal) PS22 08-10 PS23 08-10 PS24 08-10 PS25 08-10 PS26 02-14 PS27 02-14 PS28 02-14
PS29 02-15 PS30 02-15 PS31 02-15 PS32 02-15 PS33 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS33 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15100 llite: Add loose read pages tunables

Add tunables for loose forward and reverse loose matching.

This allows tuning the number of pages which are considered
a valid match when doing sequential I/O, for purpose of
controlling the window.  If pages are in the "loose" range,
the window will still grow even if they were not actually
matched.

This lets readahead handle 'loose forward read' patterns,
where it jumps ahead a small(-ish) but random number of
pages.  These are not strided patterns - because the
jumps are random - and they are not 'simple' sequential,
but they are forward read patterns which benefit hugely
from doing readahead.

Because the time to read 1 MiB of data is only a few times
the time required to read 4K of data, it makes sense to be
aggressive.  We only need to hit a few pages per MiB to
gain performance with this behavior.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie31f71b4380c8c384107eb5db416be106f088d9f
45213 master J –B ✓T ✗2R 0/2−
LU-15033 tests: Miss counting for readahead
mine enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
stalled 915d M +84 −27
915d
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102214 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+24 earlier PS1 10-12 PS2 10-15 PS3 10-15 PS4 10-15 PS5 10-17 PS6 10-20 PS7 10-20 PS8 10-21 PS9 11-05 PS10 11-06 PS11 11-07 PS12 11-08 PS13 12-09 PS14 02-06 PS15 03-07 PS16 01-17 Patrick Farrell (personal) PS17 01-17 Patrick Farrell (personal) PS18 08-10 PS19 08-10 PS20 08-10 PS21 08-10 PS22 02-14 PS23 02-14 PS24 02-14
PS25 02-15 PS26 02-15 PS27 02-15 PS28 02-15 PS29 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS29 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 tests: Miss counting for readahead

The miss counting for the readahead tests is much too lax
and includes a large fudge factor of +10 misses.  This is
unnecessary because these tests are deterministic and we
should be able to explain and count all of the misses seen.

This patch tightens the margins considerably on allowed
misses, which should help avoid problems creeping in in the
future.

There are a few unexplained misses here - those will need
to be debugged later, but we should get these tests in
first, then fix the remaining strange behavior.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ia876b7ed807fa1d101a8fd02bed4db7823d923dc
45233 master J –B ✓T ✗10R 0/2−
LU-15033 tests: Add rpc counting to readahead
mine enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-arm
stalled 915d M +112 −10
915d
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
3 optional test failure(s) — informational
build #102213 SUCCESS · tests all Maloo sessions
patchsets:
+12 earlier PS1 10-13 PS2 10-13 PS3 10-14 PS4 10-15 PS5 10-15 PS6 10-15 PS7 10-17 PS8 10-20 PS9 10-20 PS10 10-21 PS11 02-14 PS12 02-14
PS13 02-15 PS14 02-15 PS15 02-15 PS16 02-15 PS17 02-15
your previous vote: -1 on PS1 (2021-10-13 21:10) — now at PS17
owner Patrick Farrell · uploader Patrick Farrell · PS17 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 tests: Add rpc counting to readahead

One of the key goals of readahead is to generate large RPCs
regardless of how large the reads from userspace are.

We currently don't test this at all, which is not ideal.

Add RPC counting to the readahead tests where it applies.
Note this patch includes margin for the RPC count being off
due to various minor bugs.  Fixing these is left for later -
they have been present for a long time.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ic4b28c936bc0e2b42339f2b00219177f77b8d85f
45118 master J –B ✓T ✗2R 0/2−
LU-15033 tests: Add rpc stats to readahead tests
mine enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
stalled 915d S +27 −2
915d
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102210 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+26 earlier PS1 10-02 PS2 10-02 PS3 10-03 PS4 10-11 PS5 10-15 PS6 10-15 PS7 10-15 PS8 10-17 PS9 10-20 PS10 10-21 PS11 11-05 PS12 11-06 PS13 11-07 PS14 11-08 PS15 12-09 PS16 02-06 PS17 02-06 PS18 03-07 PS19 01-17 Patrick Farrell (personal) PS20 08-10 PS21 08-10 PS22 08-10 PS23 08-10 PS24 02-14 PS25 02-14 PS26 02-14
PS27 02-15 PS28 02-15 PS29 02-15 PS30 02-15 PS31 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS31 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 tests: Add rpc stats to readahead tests

RPC generation behavior is a key component of readahead,
and the plan is to add tests of rpc generation to all the
readahead tests.

In the meantime, we can at least add output of rpc_stats
whenever we output read_ahead_stats to make the tests more
informative.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: If18ed6bb43a5afb2a7b0c9267f2f056cd33c66d7
45119 master J !B ✓T ✗2R 0/2
LU-15033 tests: Improve test 101a
mine enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
stalled 915d M +69 −35
915d
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102211 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+29 earlier PS1 10-02 PS2 10-02 PS3 10-02 PS4 10-03 PS5 10-11 PS6 10-15 PS7 10-15 PS8 10-15 PS9 10-17 PS10 10-20 PS11 10-21 PS12 11-05 PS13 11-06 PS14 11-07 PS15 11-08 PS16 12-09 PS17 02-06 PS18 03-07 PS19 03-11 PS20 07-04 PS21 01-17 Patrick Farrell (personal) PS22 01-17 Patrick Farrell (personal) PS23 08-10 PS24 08-10 PS25 08-10 PS26 08-10 PS27 02-14 PS28 02-14 PS29 02-14
PS30 02-15 PS31 02-15 PS32 02-15 PS33 02-15 PS34 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS34 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 tests: Improve test 101a

Test 101a is very old and uses some odd methods to control
caching.  Remove those, and switch to a simple cache flush
to ensure data is read from disk.

Shrink the test size to make it more consistent (previously
it was hitting cache a lot, which made the RPC stats harder
to predict).

Also add RPC count checking - this will be added to the
other readahead tests as well.

Test-Parameters: trivial testlist=sanity env=ONLY=101a,ONLY_REPEAT=50
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I39b1ed23e4c080af9e3689d32ac60701c6c5a812
45117 master J –B ✓T ✗2R 0/2−
LU-15033 tests: Add ra after seek test
mine enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
stalled 915d M +114 −0
915d
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102209 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+25 earlier PS1 10-02 PS2 10-02 PS3 10-03 PS4 10-05 PS5 10-15 PS6 10-15 PS7 10-15 PS8 10-17 PS9 10-20 PS10 10-21 PS11 11-05 PS12 11-06 PS13 11-07 PS14 11-08 PS15 12-09 PS16 02-06 PS17 03-07 PS18 01-17 Patrick Farrell (personal) PS19 08-10 PS20 08-10 PS21 08-10 PS22 08-10 PS23 02-14 PS24 02-14 PS25 02-14
PS26 02-15 PS27 02-15 PS28 02-15 PS29 02-15 PS30 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS30 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 tests: Add ra after seek test

Confirm read ahead can restart cleanly after seeking in a
file.  Do this by reading the back half and then the front
half of the file.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I30c0515c95af0c35fc38ed612f6409c15d55c3a8
45051 master J ✗1B ✓T ✗2R 0/2
LU-15033 tests: Stricter readahead tests
mine janitor: 1 test failure unique to this patch — sanity2@zfs:test_101i
1 unique failure stalled 915d XS +4 −3
915d
janitor: 1 test failure unique to this patch — sanity2@zfs:test_101i
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_101iseen in 5 other reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102208 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+24 earlier PS1 09-25 PS2 10-01 PS3 10-03 PS4 10-05 PS5 10-15 PS6 10-15 PS7 10-15 PS8 10-17 PS9 10-20 PS10 10-21 PS11 11-05 PS12 11-07 PS13 11-08 PS14 12-09 PS15 02-06 PS16 03-07 PS17 01-17 Patrick Farrell (personal) PS18 08-10 PS19 08-10 PS20 08-10 PS21 08-10 PS22 02-14 PS23 02-14 PS24 02-14
PS25 02-15 PS26 02-15 PS27 02-15 PS28 02-15 PS29 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS29 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 tests: Stricter readahead tests

A few small test tweaks to make particular readahead tests
stricter and more broad ranging or improve output. Didn't
have a clear home in other patches in the series.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ic8164f6cc2db09492574a247705bd55bc1f60989
46458 master J ✗6B ✓T ✗12R 0/2
LU-15516 llite: unify readahead logic
mine janitor: 6 test failures unique to this patch — sanity2@ldiskfs+DNE:test_63b, sanity2@ldiskfs+DNE:test_64a, sanity2@ldiskfs+DNE:test_64c +3 more
6 unique failures stalled 915d M +57 −34
915d
janitor: 6 test failures unique to this patch — sanity2@ldiskfs+DNE:test_63b, sanity2@ldiskfs+DNE:test_64a, sanity2@ldiskfs+DNE:test_64c +3 more
enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-4, review-dne-zfs-part-6, review-ldiskfs, review-ldiskfs-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_63bseen in 34 other reviews
sanity2@ldiskfs+DNE:test_64aseen in 34 other reviews
sanity2@ldiskfs+DNE:test_64cseen in 34 other reviews
sanity2@ldiskfs+DNE:test_64dseen in 78 other reviews
sanity2@ldiskfs+DNE:test_101iseen in 6 other reviews
sanity2@zfs:test_101iseen in 2 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-zfs-part-4 RHEL 8.8/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-zfs-part-6 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: replay-single. session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.5/x86_64 ran 5 tests. 2 tests failed: sanity-lnet, sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #102205 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+3 earlier PS1 02-04 PS2 02-04 PS3 02-04
PS4 02-04 PS5 02-04 PS6 02-06 PS7 02-06 PS8 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS8 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15516 llite: unify readahead logic

The mmap readahead logic is *almost* the same as regular
readahead logic, but for what appear to be historical or
accidental reasons, it is initialized differently and has
several special cases as a result.

There's no clear need for separate mmap and regular
readahead logic, and the existing differences are harmful,
as mmap read takes more misses than a regular read of the
same pattern.  But more importantly, having the special
case makes it much harder to write and test improvements
to the readahead code, since they must be written carefully
to hit both paths and then tested both ways as well.

There may be some application for separate tunings, but
none has been persuasively shown so far (and none are in
place currently).

Clean up and unify the logic.

We can't unify as much as we'd like, since mmap needs to do
ras_enter only after we've locked the page - because if we
can't lock the page, mmap doesn't proceed to do IO.  This
means we must wait to call ras_enter for mmap until we're
in the readpage code, unlike for regular file reads, which
call it at the llite layer.  This is OK for mmap because
mmap reads are a single page, but it's important for regular
reads to call ras_enter only once per read, not once per
page.

Note even without other changes this reduces the number of
misses taken in the simple mmap read test.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ic6c33a2714a256072ef15d56c40f2bd1e39a1e6f
46457 master J ✗4B ✓T ✗9R 0/2−
LU-15516 llite: Remove clustered read code
mine janitor: 4 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101f, sanity2@ldiskfs+DNE:test_101i, sanity2@zfs:test_101f +1 more
4 unique failures stalled 915d M +16 −192
915d
janitor: 4 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101f, sanity2@ldiskfs+DNE:test_101i, sanity2@zfs:test_101f +1 more
enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_101fNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_101iNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_101fseen in 1 other review
sanity2@zfs:test_101iNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #102189 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+1 earlier PS1 02-04
PS2 02-04 PS3 02-04 PS4 02-06 PS5 02-15 PS6 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS6 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15516 llite: Remove clustered read code

The clustered read code changes mmap readahead behavior so
it ignores patterns, and reads a set of pages around each
new read.  This works well if you have a random read
pattern and are going to use most of the file, but it's
bad if there is a pattern, which there almost always is.
The result is extremely harmful for basic patterns like
'read a whole file from beginning to end'.

It also appears that the described clustered behavior
(where a bunch of data is read semi-randomly in an area and
then there's a jump to a new area) is not real application
behavior, instead it was a stopgap for the inability to
support certain common database read patterns, like loose
forward and sequential or loose sequential reverse.

The clustered code, instead, breaks the ability to properly
handle simple patterns like sequential forward read in
mmap.  It also creates a large section of 'mmap only'
readahead logic, which makes it impossible for mmap reads
to benefit from most readahead improvements.

Having this separate logic path also makes testing and
verification of readahead much more difficult.

A 'read a cluster of pages during random read' feature is
a reasonable one and could be helpful in some scenarios.
Parts of this code can serve as a reference for that, but
the existing code should be removed.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I15b203bc0692098614b691344d474a226ba3df4a
54057 master J ✗2B ✓T ✗2R 0/2
LU-15069 llite: improve ras usage
mine janitor: 2 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101i, sanity-pcc@ldiskfs+DNE:test_7b
2 unique failures stalled 915d XS +3 −4
915d
janitor: 2 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101i, sanity-pcc@ldiskfs+DNE:test_7b
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_101iseen in 5 other reviews
sanity-pcc@ldiskfs+DNE:test_7bseen in 10 other reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102186 SUCCESS · tests all Maloo sessions
patchsets: PS1 02-15 PS2 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15069 llite: improve ras usage

The readahead state is file level and shared, the ria is a
per-IO version of that state.  Don't access the ras when the
ria is sufficient.  Also rename one function.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I4de4e093d7d8e690b49852f26e2f44ae4474671a
54058 master J ✗1B ✓T ✗2R 0/2
LU-15033 llite: rework end_idx handling
mine janitor: 1 test failure unique to this patch — sanity-pcc@ldiskfs+DNE:test_5
1 unique failure stalled 916d S +18 −17
916d
janitor: 1 test failure unique to this patch — sanity-pcc@ldiskfs+DNE:test_5
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-pcc@ldiskfs+DNE:test_5seen in 13 other reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm crashed RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
build #102187 SUCCESS · tests all Maloo sessions
patchsets: PS1 02-15 PS2 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 llite: rework end_idx handling

There is a separate ra_end_idx argument passed to
ll_read_ahead_pages, which captures the last page read and
is then compared to the contents of ra_io_arg, which is also
passed to ll_read_ahead_pages.  This results in comparisons
like:

if (ria->ria_end_idx == ra_end_idx)

which are a little tricky to understand.

Instead, we put this in ra_io_arg and name it
ria_last_read_idx.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I774e69c6a6334d2f56a4bc0c85ed00a5f2757e35
50681 master J ✗1B ✓T ✗4R 2/2
LU-16741 ptlrpc: remove unnecessary asserts
mine janitor: 1 test failure unique to this patch — sanity-sec@zfs:test_21
1 unique failure stalled 1083d 1 unresolved XS +0 −2
1083d
janitor: 1 test failure unique to this patch — sanity-sec@zfs:test_21
enforced failed: review-dne-part-6, review-dne-selinux-ssk-part-2, review-dne-zfs-part-2, review-ldiskfs
1 thread(s) waiting on others
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-sec@zfs:test_21NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-6 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: replay-single. session
review-dne-selinux-ssk-part-2 RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity-selinux. session
review-dne-zfs-part-2 crashed RHEL 8.8/x86_64 ran 9 tests. 1 tests failed: replay-dual. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity-lnet. session
2 optional test failure(s) — informational
build #97496 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2023-09-01 01:33 · Timothy Day +1 2023-09-01 14:43
no vote yet: Qian Yingjin
patchsets:
+6 earlier PS1 04-18 PS2 04-18 PS3 04-18 PS4 04-18 PS5 04-18 PS6 04-18
PS7 04-18 PS8 04-22 PS9 08-31 PS10 08-31 PS11 08-31
threads: 0 need your reply · 1 waiting on others · 0 own notes · 0 bot
owner Patrick Farrell · uploader Patrick Farrell · PS11 uploaded 1084d ago · NEW · open in Gerrit ↗
commit message
LU-16741 ptlrpc: remove unnecessary asserts

ptlrpc_free_committed is at no risk of being called with
either a null import or the import lock unlocked.  These
don't have a significant cost, but they're not adding much
either.

Removed 'trivial' from this patch to ensure the LU-16741
refactoring series gets at least one full run.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I90d3ddae2cfbb9c748e3ba004982bca3ef465667
50680 master J ✗1B ✓T ✗1R 2/2
LU-16741 ptlrpc: rename ptlrpc_free_request
mine janitor: 1 test failure unique to this patch — sanity-pcc@ldiskfs+DNE:test_18
1 unique failure stalled 1083d S +6 −6
1083d
janitor: 1 test failure unique to this patch — sanity-pcc@ldiskfs+DNE:test_18
enforced failed: review-ldiskfs-dne
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-pcc@ldiskfs+DNE:test_18seen in 3 other reviews
failed enforced testplatformdetail
review-ldiskfs-dne failed 2× RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #97493 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2023-09-01 01:25 · Timothy Day +1 2023-09-01 14:46
no vote yet: Qian Yingjin
patchsets:
+5 earlier PS1 04-18 PS2 04-18 PS3 04-18 PS4 04-18 PS5 04-18
PS6 04-18 PS7 04-18 PS8 04-22 PS9 08-31 PS10 08-31
owner Patrick Farrell · uploader Patrick Farrell · PS10 uploaded 1084d ago · NEW · open in Gerrit ↗
commit message
LU-16741 ptlrpc: rename ptlrpc_free_request

ptlrpc_free_request doesn't free requests, it commits them.
Rename it accordingly.

One nag: there is one call to rq_commit_cb() outside this
function, in after_reply().  It is not clear to me how/why
that call is different, so I am leaving it untouched.  But
ideally we would only call rq_commit_cb() from this
function.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I52e81076a1d4e55fb83f9d4d6c86df64393004b0
45317 master J ✗1B ✓T ✗9R 0/2−
LU-15155 llite: Make readahead request locks
mine janitor: 1 test failure unique to this patch — sanity2@zfs:test_101ab
1 unique failure stalled 1104d L +263 −60
1104d
janitor: 1 test failure unique to this patch — sanity2@zfs:test_101ab
enforced failed: review-dne-part-4, review-dne-part-5, review-dne-zfs-part-1, review-dne-zfs-part-4, review-dne-zfs-part-5, review-ldiskfs, review-ldiskfs-arm, review-zfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_101abNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-4 RHEL 8.8/x86_64 ran 11 tests. 1 tests failed: sanity-flr. session
review-dne-part-5 RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanityn. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-zfs-part-4 RHEL 8.8/x86_64 ran 11 tests. 1 tests failed: sanity-flr. session
review-dne-zfs-part-5 RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanityn. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.7/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-zfs RHEL 8.8/x86_64 ran 10 tests. 1 tests failed: sanity-flr. session
3 optional test failure(s) — informational
build #96850 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+18 earlier PS1 10-20 PS2 10-21 PS3 10-23 PS4 10-24 PS5 11-03 PS6 11-03 PS7 11-05 PS8 11-06 PS9 11-07 PS10 11-07 PS11 11-08 PS12 11-09 PS13 12-09 PS14 12-15 PS15 02-07 PS16 03-07 PS17 07-04 PS18 01-17 Patrick Farrell (personal)
PS19 01-17 Patrick Farrell (personal) PS20 08-10 PS21 08-10 PS22 08-10 PS23 08-10
owner Patrick Farrell · uploader Patrick Farrell · PS23 uploaded 1104d ago · NEW · open in Gerrit ↗
commit message
LU-15155 llite: Make readahead request locks

Currently, readahead will not request an LDLM lock if it
encounters a region without one. This causes it to take
misses and can confuse the readahead state as well.

Not requesting locks for readahead is an artifact of the
idea that readahead is an optional optimization, but it's
almost as important as full reads/writes from userspace,
and we should request locks for it.

This will help cut down misses when starting to read a new
file, which is particularly helpful in tests, where total
I/O is small and the extra misses make it hard to predict
behavior.

However, to give better behavior under conflicting
workloads, we make the lock requests from readahead
nonblocking.  This means it will get a lock if there is no
conflicting lock, but otherwise will not.  We also limit it
to one lock request per stripe per readahead invocation,
since otherwise it would ask for every page.

The benefit to requesting locks can be seen in the test
changes - miss counts are reduced because stripe count no
longer factors in, and we can reenable async readahead
because it no longer fails due to this (leading to
unpredictable numbers of misses).

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie62a282245d036308ab0c6f8392af1098a74befc
45449 master J ✗2B ✓T ✗4R 0/2
LU-15178 llite: Clarify async vs nowait
mine janitor: 2 test failures unique to this patch — sanity2@zfs:test_101ab, sanity2@zfs:test_101n
2 unique failures stalled 1104d L +245 −101
1104d
janitor: 2 test failures unique to this patch — sanity2@zfs:test_101ab, sanity2@zfs:test_101n
enforced failed: review-dne-part-1, review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_101abseen in 2 other reviews
sanity2@zfs:test_101nseen in 1 other review
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.7/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
1 optional test failure(s) — informational
build #96849 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin
patchsets:
+12 earlier PS1 11-03 PS2 11-05 PS3 11-06 PS4 11-07 PS5 11-07 PS6 11-08 PS7 12-09 PS8 12-15 PS9 02-07 PS10 03-07 PS11 07-04 PS12 01-17 Patrick Farrell (personal)
PS13 01-17 Patrick Farrell (personal) PS14 08-10 PS15 08-10 PS16 08-10 PS17 08-10
owner Patrick Farrell · uploader Patrick Farrell · PS17 uploaded 1104d ago · NEW · open in Gerrit ↗
commit message
LU-15178 llite: Clarify async vs nowait

The existing code mixes the concepts of 'async' lock
requests and 'nowait' (nonblocking) lock requests in to one
term: 'speculative' lock requests.

This prevents us from creating synchronous
nonblocking/nowait lock requests, for no good reason.  This
patch clarifies the code, separating these concepts and
allowing synchronous non-blocking lock requests.

This is important because it allows readahead to make
'optional' lock requests, where it will wait for the
request, but it does not want to cancel other locks.

In essence, readahead would like to have the lock for
immediate use so it can complete the readahead request,
but it would prefer not to cancel other locks.  Thus,
synchronous non-blocking lock requests.  This is
implemented for readahead in another patch in this series.

It also renames the badly named LDLM_FL_SPECULATIVE flag,
because this flag actually implements 'NOWAIT' behavior.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I0cbd44fe07e0c0206ba56eaef62590b19ba082eb
50645 master J ✗12B ✓T ✗12R 0/2
LU-16741 ptlrpc: defer & parallelize free_committed
mine janitor: 12 test failures unique to this patch — sanity2@ldiskfs+DNE:test_124c, sanity2@ldiskfs+DNE:test_124d, sanity2@ldiskfs+DNE:test_134a +9 more
12 unique failures stalled 1214d 9 unresolved M +74 −23
1214d
janitor: 12 test failures unique to this patch — sanity2@ldiskfs+DNE:test_124c, sanity2@ldiskfs+DNE:test_124d, sanity2@ldiskfs+DNE:test_134a +9 more
enforced failed: review-dne-part-2, review-dne-part-4, review-dne-part-6, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-3, review-dne-zfs-part-4, review-dne-zfs-part-5, review-dne-zfs-part-6, review-ldiskfs-arm, review-ldiskfs-ubuntu, review-zfs
1 unresolved thread(s) await your reply — last from Andreas Dilger
1 thread(s) waiting on others
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_124cNEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
sanity2@ldiskfs+DNE:test_124dNEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
sanity2@ldiskfs+DNE:test_134aNEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
sanity2@ldiskfs+DNE:test_812aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_812bNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_816NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_398aseen in 3 other reviews
sanity2@zfs:test_812aseen in 1 other review
sanity2@zfs:test_812bseen in 1 other review
sanity2@zfs:test_816seen in 1 other review
sanityn@zfs:test_109NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@zfs:test_113NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-2 RHEL 8.7/x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-part-4 RHEL 8.7/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-part-6 RHEL 8.7/x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-selinux-ssk-part-2 RHEL 8.7/x86_64 ran 5 tests. 2 tests failed: sanity-selinux, sanity-sec. session
review-dne-zfs-part-1 crashed RHEL 8.7/x86_64 ran 4 tests. 2 tests failed: sanity-pfl, sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-3 crashed RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: conf-sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 RHEL 8.7/x86_64 ran 9 tests. 3 tests failed: sanity-quota, sanity-hsm, sanity-flr. session
review-dne-zfs-part-5 crashed RHEL 8.7/x86_64 ran 8 tests. 2 tests failed: sanityn, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-6 crashed RHEL 8.7/x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-arm RHEL 8.7/aarch64, RHEL 8.7/x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity-lnet. session
review-ldiskfs-ubuntu RHEL 8.7/x86_64, Ubuntu 20.04/x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
review-zfs RHEL 8.7/x86_64 ran 10 tests. 1 tests failed: replay-single. session
3 optional test failure(s) — informational
build #94227 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger, Alex Zhuravlev, Oleg Drokin
patchsets:
+13 earlier PS1 04-15 PS2 04-17 PS3 04-17 PS4 04-17 PS5 04-17 PS6 04-17 PS7 04-17 PS8 04-17 PS9 04-18 PS10 04-18 PS11 04-18 PS12 04-18 PS13 04-18
PS14 04-18 PS15 04-18 PS16 04-18 PS17 04-19 PS18 04-22
your previous vote: -1 on PS16 (2023-04-19 03:25) — now at PS18
threads: 1 need your reply · 1 waiting on others · 7 own notes · 0 bot
note PS1 2023-04-17 14:38 Patrick Farrell client.c:1599 — RE: rq_commit_cb and imp_lock
Patrick Farrell PS1 · 2023-04-17 14:38
RE: rq_commit_cb and imp_lock

This snippet of code strongly suggests no.  (And this looks to me like it gets called regularly and isn't some weird stub or corner case, so it seemed solid evidence.)

I actually considered doing this for the rq_commit_cb in the free_committed code, but you can't easily do so because you're walking the lists on the import.  But more to the point, since that could be worked around, I'm skeptical dropping and taking the lock for *every* rq_commit_cb() in free_committed is a good idea.  (If the rq_commit_cbs were the large majority of the work, dropping the lock and re-attacking the list in free_committed might make sense, but I don't think they are.  It seems more an invitation to thrashing the lock and the memory for the lists between many CPUs.)
note PS3 2023-04-17 15:17 Patrick Farrell client.c:1641 — I may want to reflect on the code organization here - this seems a bit confusing. Let's see if it's correct first and then I'll try to thin
Patrick Farrell PS3 · 2023-04-17 15:17
I may want to reflect on the code organization here - this seems a bit confusing.  Let's see if it's correct first and then I'll try to think about that.
note PS5 2023-04-17 19:57 Patrick Farrell client.c:2635 — I'm guessing we're sometimes missing calling this section of code (And maybe not calling this whole function), so we're still referencing th
Patrick Farrell PS5 · 2023-04-17 19:57
I'm guessing we're sometimes missing calling this section of code (And maybe not calling this whole function), so we're still referencing the import, since I've seen both OSC and OFD modules getting stuck.
note PS5 2023-04-17 21:07 Patrick Farrell client.c:2749 — stale comment, need to remove
Patrick Farrell PS5 · 2023-04-17 21:07
stale comment, need to remove
note PS5 2023-04-17 21:07 Patrick Farrell client.c:2751 — Will probably just undo this to show I'm not changing this area...
Patrick Farrell PS5 · 2023-04-17 21:07
Will probably just undo this to show I'm not changing this area...
reply PS8 2023-04-18 20:23 Andreas Dilger client.c:2991 — I _think_ that open-but-committed requests are still kept in this list in order to ensure the open is replayed before any later requests tha
Andreas Dilger PS8 · 2023-04-18 02:53
(defect?) one thing that concerned me about *only* allowing the "now > start + 3" exit condition is that if the replay list was very long and filled with unfreeable RPCs (a million file opens?) then it seems possible the thread could loop through requests for a few seconds and not find anything, then exit with no RPCs to free.  Then the next thread enters this code and does the same thing, since it restarts the scanning at the beginning of the list.

So the exit condition (before this change) was:
- accumulate at least 128 RPC and have been scanning > 3s
- or walk the whole list (until reqs with transno > last_committed are found) without finding 128 freeable RPCs

That way, each call here cleans up at least 128 RPCs (if there are that many), or hopefully finishes list walking much sooner.  That amortizes the list walking over more RPCs.

The main question is how much of the list walking does not produce "useful work"?  With the reduction in lock contention, this could always reduce the number of entries per call.

I also appreciate that if other CPUs are stuck on a spinlock then they are also burning cycles unproductively, so in theory as long as each pass made *some* forward progress (a handful of RPCs) then it would be OK to exit and leave it to the next lock waiter.
Patrick Farrell PS8 · 2023-04-18 19:45
Hmm, so I think the big threat here is if we have an *extremely long* but unfreeable list (except for maybe a few at the far end which we don't reach), we could loop forever as we hand the problem off to a new thread that retraces our steps.  Or at least, that is the problem taken to an extreme, where we get no work done so we make no progress.

But isn't it the case that the worst case scenario is we essentially end up hung until the *next* commit comes through and that huge pile of RPCs is now freeable?  Because they have to be freeable some time.

I'm trying to decide how plausible it is as well - If we have, say, 10 million RPCs on the list (being generous) and, we say we've got 1 second, we have 100 nanoseconds (300 nanoseconds per for 3 seconds) for each RPC (to do the list walk + checks).  Given that a cold DRAM access can be on the order of 90 ns (thanks, Google), yeah, that's not crazy.  So the amounts of time are plausible.

But I think we still have the backstop of "the next commit arrives and they become freeable", don't we?  So the worst case is that we could get stuck looping (handing from thread to thread without real forward progress) until the next commit arrives.  So I think this is OK.  Does that wash?  Have I missed/misunderstood something?
Andreas Dilger PS8 · 2023-04-18 20:23
I _think_ that open-but-committed requests are still kept in this list in order to ensure the open is replayed before any later requests that may unlink the file without preserving the refcount.

That said, I've long wanted to divorce open-committed requests from RPC replay so that they don't clog up the replay queue and also so that we don't need to keep exact copies of RPCs in memory for hours/days/weeks, since that complicates ever changing the RPC format over an upgrade.

This allows a few different improvements to be implemented:
- LU-5703 "Quiesce client mountpoints from the server"
- LU-3290 "disallow ptlrpc RPCs with old client XIDs"
- LU-15250 "RPC Replay Signature"

and also simplifies the RPC handling code, since we don't need to preserve the close RPC replay after the open RPC has committed.
note PS9 2023-04-18 16:10 Patrick Farrell client.c:1635 — Style: Don't need braces here...
Patrick Farrell PS9 · 2023-04-18 16:10
Style: Don't need braces here...
note PS17 2023-04-19 17:29 Patrick Farrell client.c:2875 — Note this was wrong in the previous patchset, but wasn't affecting behavior.
Patrick Farrell PS17 · 2023-04-19 17:29
Note this was wrong in the previous patchset, but wasn't affecting behavior.
owner Patrick Farrell · uploader Patrick Farrell · PS18 uploaded 1215d ago · NEW · open in Gerrit ↗
commit message
LU-16741 ptlrpc: defer & parallelize free_committed

ptlrpc_free_committed can be extremely time consuming
when there are many async requests outstanding, such as
with small async DIO as potentially created by LU-13805,
or in other unusual circumstances.

Most of the work (in terms of time consumed) in
ptlrpc_free_committed can be deferred and moved out from
under the imp_lock.  Additionally, if there is a process
waiting to do the ptlrpc_free_committed work, the current
thread can grab a 'batch' of requests to process, then drop
the import lock and allow the waiting thread to grab the
next batch.

This splits the work across waiting threads.  In cases
where the lock is highly contended, it has the effect of
having each thread do one 'batch' of work, but mostly in
parallel.

This has the effect of parallelizing this work and speeds
it up enormously when there are many threads (the most
important case, as they can generate a lot of work).

If there are only a small number of threads working on
the import, the load can be split unevenly - Consider
the case of two threads.  The first to arrive defers one
batch of requests, notices the second thread is waiting,
and leaves all the remaining requests for that thread.
This is uneven, but doesn't really matter for a few
reasons:
1. In the 'small number of threads' case, there isn't
much work to do anyway, so it's not very impactful if it
is unevenly distributed.
2. If it really takes a long time, the first thread will
arrive again as a 'waiter', and will pick up work.

A good example is this IO500 ior-hard-write test with async
DIO; this is a bit of an extreme example, and this also
helps IO500 hard write without async DIO, but that hits
other limitations so it is harder to see the benefit.

mpirun -n 80 ior -k -e -o $file -t 47008 -b 47008 -s 11990 -w -a POSIX --posix.odirect

Performance without the patch:
2018.19 MiB/s
Improves to:
4800 MiB/s with this patch
(This was done with fake_io to reduce server side limits
and better show the contention.)

And the time spent in the imp spinlock drops from 40-50%
of all client CPU time to ~0% (imp_lock spinning no longer
shows up in the perf traces).

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I5e9b8d556770dc4a33dce0ceb50f745201328c5e
50695 master J !B ✓T ✗24R 0/2
LU-16741 ptlrpc: check logic in osp_request_commit_cb
mine enforced failed: custom-101, custom-102, custom-103, custom-104, review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-part-7, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-3, review-dne-zfs-part-4, review-dne-zfs-part-5, review-dne-zfs-part-6, review-dne-zfs-part-7, review-ldiskfs, review-ldiskfs-arm, review-ldiskfs-ubuntu, review-zfs
stalled 1217d S +9 −1
1217d
janitor run: 9 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
custom-101 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-102 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-103 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-104 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
review-dne-part-1 crashed RHEL 8.7/x86_64 ran 6 tests. 2 tests failed: sanity-pfl, sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-2 crashed RHEL 8.7/x86_64 ran 13 tests. 4 tests failed: sanity-sec, sanity-lfsck, runtests, replay-dual. %% THIS TEST SESSION CRASHED % session
review-dne-part-3 crashed RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: conf-sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-4 crashed RHEL 8.7/x86_64 ran 11 tests. 2 tests failed: sanity-quota, sanity-flr. %% THIS TEST SESSION CRASHED %% session
review-dne-part-5 crashed RHEL 8.7/x86_64 ran 10 tests. 3 tests failed: sanityn, sanity-scrub, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-part-6 crashed RHEL 8.7/x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. %% THIS TEST SESSION CRASHED %% session
review-dne-part-7 crashed RHEL 8.7/x86_64 ran 4 tests. 1 tests failed: sanity-pcc. %% THIS TEST SESSION CRASHED %% session
review-dne-selinux-ssk-part-1 crashed RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-selinux-ssk-part-2 crashed RHEL 8.7/x86_64 ran 7 tests. 2 tests failed: sanity-selinux, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-1 crashed RHEL 8.7/x86_64 ran 6 tests. 2 tests failed: sanity-pfl, sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-2 crashed RHEL 8.7/x86_64 ran 13 tests. 4 tests failed: sanity-sec, sanity-lfsck, runtests, replay-dual. %% THIS TEST SESSION CRASHED % session
review-dne-zfs-part-3 crashed RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: conf-sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 RHEL 8.7/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-zfs-part-5 crashed RHEL 8.7/x86_64 ran 10 tests. 3 tests failed: sanityn, sanity-scrub, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-6 crashed RHEL 8.7/x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-7 crashed RHEL 8.7/x86_64 ran 4 tests. 1 tests failed: sanity-pcc. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs RHEL 8.7/x86_64 ran 5 tests. 1 tests failed: sanity-lnet. session
review-ldiskfs-arm crashed RHEL 8.7/aarch64, RHEL 8.7/x86_64 ran 8 tests. 2 tests failed: sanity-sec, sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-ubuntu RHEL 8.7/x86_64, Ubuntu 20.04/x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
review-zfs crashed RHEL 8.7/x86_64 ran 12 tests. 2 tests failed: replay-single, sanity-flr. %% THIS TEST SESSION CRASHED %% session
3 optional test failure(s) — informational
build #94132 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1218d ago · NEW · open in Gerrit ↗
commit message
LU-16741 ptlrpc: check logic in osp_request_commit_cb

osp_request_commit_cb code states that rq_commit_cb can be
called on uncommitted requests.  That seems wrong, in both
the specific sense of "I doubt we do that" and the sense
that "we should not do that".

Note: This is NOT for landing; this is just exploratory.

Test-Parameters: testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I09a20286bb3fde9a77396cebfce0028fd996bfa1
50694 master J !B ✓T ✗4R 0/2
LU-16741 ptlrpc: add 'locked' to rq_commit_cb
mine enforced failed: custom-101, custom-102, custom-103, custom-104
stalled 1217d S +17 −9
1217d
janitor run: 7 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
custom-101 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-102 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-103 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-104 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
build #94131 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1218d ago · NEW · open in Gerrit ↗
commit message
LU-16741 ptlrpc: add 'locked' to rq_commit_cb

osp_request_commit_cb is unique among rq_commit_cbs in
requiring the import lock be held.  Add a parameter so we
know when we need to take the lock in that callback.

Note: This is NOT for landing; if this works it will be
integrated in to the parent change.

Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6c1b681eafeb2f805b41dc5654ab2e2c6e020f73
50693 master J !B ✓T ✗4R 0/2
LU-16741 tests: Test locking around commit_cb
mine enforced failed: custom-101, custom-102, custom-103, custom-104
stalled 1217d XS +6 −1
1217d
janitor run: 8 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
custom-101 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-102 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-103 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-104 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
build #94130 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1218d ago · NEW · open in Gerrit ↗
commit message
LU-16741 tests: Test locking around commit_cb

Seeing if taking imp_lock() around commit_cb when doing the
deferred work avoids the crash.

Just for learning purposes - it's possible one of the commit
callbacks has a hidden dependence on the import lock.

Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie098251bb3ec78325bc813e7dd6946d503582894
50692 master J ✗4B ✓T ✗5R 0/2
LU-16741 tests: Test to confirm replay-dual hits
mine janitor: 4 test failures unique to this patch — sanity2@zfs:test_398a, sanity2@zfs:test_812a, sanity2@zfs:test_812b +1 more
4 unique failures stalled 1217d XS +2 −0
1217d
janitor: 4 test failures unique to this patch — sanity2@zfs:test_398a, sanity2@zfs:test_812a, sanity2@zfs:test_812b +1 more
enforced failed: custom-101, custom-102, custom-103, custom-104, review-ldiskfs-dne-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_398aseen in 3 other reviews
sanity2@zfs:test_812aseen in 1 other review
sanity2@zfs:test_812bseen in 1 other review
sanity2@zfs:test_816seen in 1 other review
failed enforced testplatformdetail
custom-101 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-102 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-103 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-104 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
review-ldiskfs-dne-arm RHEL 8.7/aarch64, RHEL 8.7/x86_64 ran 5 tests. 2 tests failed: sanity-lnet, sanity. session
build #94129 SUCCESS · tests all Maloo sessions
patchsets: PS1 04-19 PS2 04-19
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 1218d ago · NEW · open in Gerrit ↗
commit message
LU-16741 tests: Test to confirm replay-dual hits

This is testing LU-16741 with no changes to confirm the
specified replay-dual testing hits the bug reliably.

Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ibc1a46df653cb9ce98b99ee3e5aef7705bfca111
50691 master J !B ✓T ✗5R 0/2
LU-16741 tests: Test locking around deferred work
mine enforced failed: custom-101, custom-102, custom-103, custom-104, review-ldiskfs-dne-arm
stalled 1217d XS +2 −0
1217d
janitor run: 8 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
custom-101 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-102 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-103 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-104 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
review-ldiskfs-dne-arm RHEL 8.7/aarch64, RHEL 8.7/x86_64 ran 5 tests. 2 tests failed: sanity-lnet, sanity. session
build #94128 SUCCESS · tests all Maloo sessions
patchsets: PS1 04-19 PS2 04-19
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 1218d ago · NEW · open in Gerrit ↗
commit message
LU-16741 tests: Test locking around deferred work

Testing to see if hold imp_lock() here avoids the crash.
Just for learning purposes - this is NOT a proposed change
since it would remove all benefit from the patch.

Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I0fdc1191a6e39f85715b5a1ae676dc916e70c8aa
0 watched
Nothing watched. Add a change above — e.g. after rebasing someone's patch — and its build/test state shows up here.
197 open

Failed / broken

(159)
64086 master J !B ✓T ✗2R 0/2−
LU-12668 lov: handle ESHUTDOWN for LSEEK on EC files
enforced failed: review-dne-zfs-part-2, review-dne-zfs-part-5
ec2 pt_ecro 16 unresolved S +46 −0
36m
enforced failed: review-dne-zfs-part-2, review-dne-zfs-part-5
Marc Vef voted -1
16 unresolved thread(s) await your reply — last from Andreas Dilger
janitor run: 5 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-2 retesting RHEL 10.1 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-dne-zfs-part-5 failed 2× crashed RHEL 9.7 / x86_64 ran 5 tests. 1 tests failed: sanityn. %% THIS TEST SESSION CRASHED %% session
build #129692 SUCCESS · tests all Maloo sessions
reviews: Marc Vef -1 2026-08-19 20:04
no vote yet: Zhenyu Xu
patchsets:
+39 earlier PS1 02-17 PS2 03-29 PS3 03-29 PS4 03-29 PS5 03-29 Ronnie Sahlberg PS6 03-30 Ronnie Sahlberg PS7 03-31 Ronnie Sahlberg PS8 03-31 PS9 03-31 Ronnie Sahlberg PS10 04-01 Ronnie Sahlberg PS11 04-01 Ronnie Sahlberg PS12 04-07 Ronnie Sahlberg PS13 04-08 PS14 04-09 PS15 04-09 PS16 04-09 PS17 04-09 PS18 04-09 PS19 04-09 PS20 04-09 PS21 04-09 PS22 04-10 PS23 04-10 PS24 04-10 PS25 04-10 PS26 04-10 PS27 04-14 PS28 04-14 PS29 04-14 PS30 04-15 PS31 04-15 PS32 04-15 PS33 04-25 PS34 05-20 Marc Vef PS35 06-04 Ronnie Sahlberg PS36 07-13 Marc Vef PS37 07-13 Marc Vef PS38 07-13 Marc Vef PS39 07-15 Marc Vef
PS40 07-16 Marc Vef PS41 07-26 Marc Vef PS42 07-26 Marc Vef PS43 08-17 Marc Vef PS44 08-19 Maximilian Dilger
threads: 16 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS34 2026-05-28 21:25 Andreas Dilger COMMIT_MSG:30 — Going forward, all of these lines should be replaced with a label:
Andreas Dilger PS34 · 2026-05-28 21:25
Going forward, all of these lines should be replaced with a label:

 Assisted-by: ClaudeCode:MODEL_VERSION [TOOLNAME ...]

https://wiki.lustre.org/Commit_Comments#AI/LLM/Tool_Attribution
reply PS34 2026-05-28 21:25 Andreas Dilger COMMIT_MSG:32 — Probably it was generated initially via AI, and nobody removed that designation as the patch was being updated?
Marc Vef PS34 · 2026-05-21 08:30
Why is this for `fortestonly`? Should this be consolidated with another patch, or that annotation be removed?
Andreas Dilger PS34 · 2026-05-28 21:25
Probably it was generated initially via AI, and nobody removed that designation as the patch was being updated?
reply PS40 2026-07-26 03:48 Gerrit AI review for Lustre COMMIT_MSG:20 — (typo) The third path is `lov_io_lseek_end()`, which is the `.cio_end` entry in `lov_io_ops[CIT_LSEEK]` and runs from `cl_io_end()`, not fro
Gerrit AI review for Lustre PS40 · 2026-07-26 03:48
(typo) The third path is `lov_io_lseek_end()`, which is the `.cio_end` entry in `lov_io_ops[CIT_LSEEK]` and runs from `cl_io_end()`, not from unlock. `lov_io_unlock()` is a separate op. Should this read "during sub-IO end"?
reply PS40 2026-07-16 16:24 Marc Vef COMMIT_MSG:30 — [Marc Bot] (style) This attribution line was flagged on patchset 34 and is still unresolved: it should use the `Assisted-by:` label format d
Marc Vef PS40 · 2026-07-16 16:24
[Marc Bot] (style) This attribution line was flagged on patchset 34 and is still unresolved: it should use the `Assisted-by:` label format described at https://wiki.lustre.org/Commit_Comments#AI/LLM/Tool_Attribution instead of the free-form line.
reply PS42 2026-07-27 22:31 Gerrit AI review for Lustre COMMIT_MSG:20 — "three independent paths" does not seem to hold for the third one.
Gerrit AI review for Lustre PS42 · 2026-07-27 22:31
"three independent paths" does not seem to hold for the third one.

The LSEEK sub-lock enqueue happens in cl_lockset_lock(), which cl_io_lock() runs *after* every cio_lock(), so the stripe is already marked by the time lov_io_call(cl_io_start) runs and the sub-IO is skipped there. A sub-IO that never started still has:

    sub_io->ci_result = 0            /* lov_io_sub_init() */
    sub_io->u.ci_lseek.ls_result = -ENXIO   /* inherited from the parent in lov_io_sub_inherit(); ll_lseek() seeds it */

lov_io_lseek_end() already ignores both (`ci_result == 0` is a no-op, `sub_off == -ENXIO` hits the existing continue), so there is nothing for the third hunk to catch.

Also, ci_result propagation happens in .cio_end (lov_io_lseek_end), not during unlock.
reply PS42 2026-07-27 22:31 Gerrit AI review for Lustre COMMIT_MSG:30 — (style) This was raised on an earlier patchset and the line is unchanged: tool attribution should use the `Assisted-by:` trailer format docu
Gerrit AI review for Lustre PS42 · 2026-07-27 22:31
(style) This was raised on an earlier patchset and the line is unchanged: tool attribution should use the `Assisted-by:` trailer format documented at https://wiki.lustre.org/Commit_Comments#AI/LLM/Tool_Attribution rather than a free-form sentence.
reply PS40 2026-07-26 03:48 Gerrit AI review for Lustre lov_io.c:1768 — This guard sits in `lov_io_call()`, which is the shared dispatcher for four different ops:
Gerrit AI review for Lustre PS40 · 2026-07-26 03:48
This guard sits in `lov_io_call()`, which is the shared dispatcher for four different ops:

    lov_io_lock()      -> lov_io_call(cl_io_lock)
    lov_io_start()     -> lov_io_call(cl_io_start)
    lov_io_iter_fini() -> lov_io_call(lov_io_iter_fini_wrapper)
    lov_io_unlock()    -> lov_io_call(lov_io_unlock_wrapper)

All four are registered for CIT_LSEEK, so a stripe marked LSS_READ_ERR also skips `cl_io_unlock()` and `cl_io_iter_fini()` on its sub-IO, not just `cl_io_start()`. Its `ci_state` then goes CIS_LOCKED -> CIS_IO_FINISHED (set by `lov_io_end_wrapper()` in `lov_io_lseek_end()`) -> CIS_FINI, never passing through CIS_UNLOCKED/CIS_IT_ENDED.

Nothing leaks today because `osc_io_ops[CIT_LSEEK]` registers only cio_start/cio_end/cio_fini and the LSEEK DLM lock is taken on the top IO by `vvp_io_lseek_lock()`. But the intent is only to skip the data-fetch pass -- would putting the check in `lov_io_start()` (or keying it on `iofunc == cl_io_start`) keep the cleanup passes balanced?
reply PS40 2026-07-26 03:48 Gerrit AI review for Lustre lov_io.c:1770 — (style) This isn't a bug, but `str` reads like a string; the rest of this file spells it `stripe` (see `lov_io_lseek_end()` a few hundred li
Gerrit AI review for Lustre PS40 · 2026-07-26 03:48
(style) This isn't a bug, but `str` reads like a string; the rest of this file spells it `stripe` (see `lov_io_lseek_end()` a few hundred lines down, which uses `index`/`stripe` for the same two values). Worth matching if the patch is refreshed.
reply PS40 2026-07-16 16:24 Marc Vef lov_io.c:3540 — [Marc Bot] (defect) Skipping the stripe treats its extents as holes, but on an EC file that data is still readable via parity reconstruction
Marc Vef PS40 · 2026-07-16 16:24
[Marc Bot] (defect) Skipping the stripe treats its extents as holes, but on an EC file that data is still readable via parity reconstruction. If the only data between ls_start and the next healthy-stripe data lives on the degraded stripe, SEEK_DATA returns the later offset, or -ENXIO if none, so sparse-aware tools (cp, tar) silently drop data that read() would return.

Also, if every sub-IO in lis_active is skipped (e.g. single-stripe data component), offset stays -ENXIO and SEEK_HOLE fails with -ENXIO even though ls_start < file size, which breaks the SEEK_HOLE contract of a virtual hole at EOF.

Would it be safer to treat a degraded stripe's covered range as data instead of skipping it, or to return an error rather than a misleading data map? The commit message claim that the remaining healthy stripes provide valid seek results does not hold in these cases.
reply PS42 2026-07-29 03:29 kg.xu lov_io.c:1774 — +1; error should be preferable compared with a wrong offset
Gerrit AI review for Lustre PS42 · 2026-07-27 22:31
(defect) Skipping cl_io_start() for the degraded stripe means its allocation map never contributes to the seek result, and lseek does not reconstruct anything from parity the way CIT_EC_RD does. So the answer is not "the remaining healthy stripes are sufficient" -- it is an answer computed from an incomplete extent map.

Concrete case, 4+2 EC, one data OST deactivated, data written only in the range that maps to that stripe:

    lseek(fd, 0, SEEK_DATA)
      -> degraded sub skipped, others report -ENXIO
      -> offset stays -ENXIO, lseek fails

and with data further out on a healthy stripe it returns that later offset instead. Sparse-aware copies (cp --sparse, tar, rsync) would silently drop the bytes that a plain read() still returns via parity.

SEEK_HOLE has the mirror problem: if every sub-IO covering ls_start is skipped, `offset` stays -ENXIO and ll_lseek() returns -ENXIO for an offset below i_size, which breaks the "there is always a virtual hole at EOF" contract.

Is returning an error preferable to returning a wrong offset here? Alternatively, could the degraded stripe's range be reported as data (conservative) rather than dropped?
kg.xu PS42 · 2026-07-29 03:29
+1; error should be preferable compared with a wrong offset
reply PS42 2026-07-27 22:31 Gerrit AI review for Lustre lov_io.c:3538 — (typo) This comment uses a non-ASCII em dash; the rest of the tree is plain ASCII. Plain "-" or "--" instead.
Gerrit AI review for Lustre PS42 · 2026-07-27 22:31
(typo) This comment uses a non-ASCII em dash; the rest of the tree is plain ASCII. Plain "-" or "--" instead.
reply PS42 2026-07-27 22:31 Gerrit AI review for Lustre lov_io.c:3542 — This hunk looks like it has no effect. Any stripe marked LSS_READ_ERR was already skipped by the new check in lov_io_call(), so its sub-IO n
Gerrit AI review for Lustre PS42 · 2026-07-27 22:31
This hunk looks like it has no effect. Any stripe marked LSS_READ_ERR was already skipped by the new check in lov_io_call(), so its sub-IO never reached cl_io_start(): ci_result is still 0 from lov_io_sub_init(), and ls_result is still the -ENXIO that lov_io_sub_inherit() copied from the parent. The `if (io->ci_result == 0)` assignment and the `sub_off == -ENXIO` continue below both already handle that.

Is there a path where a sub-IO is marked LSS_READ_ERR but still ran? If not, dropping this hunk would keep the two skip conditions from having to stay in sync.
tags: pt_ecro
owner Patrick Farrell · uploader Maximilian Dilger · PS44 uploaded 19h ago · NEW · open in Gerrit ↗
commit message
LU-12668 lov: handle ESHUTDOWN for LSEEK on EC files

When an OST hosting a data stripe of an EC file is
deactivated, SEEK_DATA/SEEK_HOLE fails with ESHUTDOWN
because the error propagates through the LOV layer
during sub-lock enqueue.

Fix this by marking the degraded stripe LSS_READ_ERR
in lov_lock_enqueue (same mechanism used by CIT_EC_RD
for parity recovery), then skipping those stripes in
lov_io_call and lov_io_lseek_end.  This avoids
ESHUTDOWN leaking through three independent paths:
sub-lock enqueue, sub-IO function dispatch, and
sub-IO ci_result propagation during unlock.

Add lov_lsm_has_parity() helper to check if any
layout entry has parity, needed because CIT_LSEEK
locks the data component while parity lives in a
separate entry.

This fixes lfs mirror verify failing on EC files
when any data OST is deactivated.

Generated with Claude Code + Tools

Test-Parameters: testlist=sanity-ec
Test-Parameters: testlist=sanity-ec fstype=zfs
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I5cce4e0ea51c68b0c6fda1d83b694af19cad57bd
64355 master J ✗2B ✓T ✓R 0/2−
LU-19536 osc: enforce dirty limits for regular DIO writes
needs rebase — checkpatch: cannot be cherry-picked
3 unresolved L +339 −50
6h
needs rebase — checkpatch: cannot be cherry-picked
3 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
CI green — no vote yet from Qian Yingjin, Marc Vef, Andreas Dilger, Vitaliy Kuznetsov
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
sanity-lfsck@ldiskfs+DNE:test_18gseen in 13 other reviews
sanity-lfsck@ldiskfs+DNE:test_18hseen in 13 other reviews
build #128591 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Marc Vef, Andreas Dilger, Vitaliy Kuznetsov
patchsets:
+8 earlier PS1 03-04 PS2 03-04 PS3 03-04 PS4 03-04 PS5 03-04 PS6 03-04 PS7 03-04 PS8 03-04
PS9 03-04 PS10 07-29 Vitaliy Kuznetsov PS11 07-29 Vitaliy Kuznetsov PS12 07-30 Vitaliy Kuznetsov PS13 08-03 Vitaliy Kuznetsov
your previous vote: -1 on PS1 (2026-03-04 18:41) — now at PS13
threads: 3 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS13 2026-08-03 23:40 Gerrit AI review for Lustre COMMIT_MSG:7 — (minor) LU-19536 in JIRA is titled "fault_in_iov_iter_readable() with a spinlock held", and the other changes landed under it (DIO pool ENOM
Gerrit AI review for Lustre PS13 · 2026-08-03 23:40
(minor) LU-19536 in JIRA is titled "fault_in_iov_iter_readable() with a spinlock held", and the other changes landed under it (DIO pool ENOMEM drain/retry, DIO buffer double-free, wait queue for DIO copy sync) are all in the unaligned-DIO copy machinery. Grant/dirty accounting for DIO writes reads like a separate topic. Would a dedicated ticket be a better home, or is LU-19536 intended as an umbrella for all of the DIO work?
reply PS13 2026-08-03 23:40 Gerrit AI review for Lustre osc_cache.c:1704 — (minor) The comment doesn't quite match what happens. osc_wake_cache_waiters() is only `wake_up(&cli->cl_cache_waiters)`, so nothing re-ente
Gerrit AI review for Lustre PS13 · 2026-08-03 23:40
(minor) The comment doesn't quite match what happens. osc_wake_cache_waiters() is only `wake_up(&cli->cl_cache_waiters)`, so nothing re-enters this function - there is no recursion.

The actual hazard is that osc_enter_cache() evaluates this as the condition of wait_event_idle_exclusive_timeout_cmd() on that same queue, so the wake would land on the evaluating task itself (and osc_enter_cache() already wakes the queue once it succeeds). Worth rewording so the rationale for the no-wake variant is accurate.
reply PS13 2026-08-19 15:51 James Simmons osc_cache.c:2775 — Please do this improvement.
Gerrit AI review for Lustre PS13 · 2026-08-03 23:40
(minor) This bakes in an assumption that any `cl_dio_pages` reaching the OSC is embedded in a `cl_sub_dio`, which isn't part of the `cio_dio_submit`/osc_queue_dio_pages() contract.

A few lines down the same sdio is already derived from the page anchor:

    ext->oe_csd = anchor->csi_dio_aio;

Since `is_aio` is only needed inside the `!ext->oe_rw` branch, could it just read `ext->oe_csd->csd_ll_aio->cda_is_aio` there and drop the container_of()?
James Simmons PS13 · 2026-08-19 15:51
Please do this improvement.
owner Patrick Farrell · uploader Vitaliy Kuznetsov · PS13 uploaded 16d ago · NEW · open in Gerrit ↗
commit message
LU-19536 osc: enforce dirty limits for regular DIO writes

osc_queue_dio_pages() checked only server grant before queuing a
write. For regular non-AIO DIO, parallel submission could therefore
bypass the per-OSC max_dirty_mb and global obd_max_dirty_pages limits.

Add osc_reserve_dio_grant() to validate the local dirty limit,
atomically reserve global dirty pages, and reserve server grant under
the client lock. Check dirty pressure first so a simultaneous grant
shortage cannot hide the dirty limit.

When a regular DIO extent cannot enter dirty accounting, submit it
synchronously and wait for that extent before forming more unaccounted
RPCs. Preserve existing no-grant and true AIO paths. Keep buffered
osc_enter_cache_try() accounting unchanged.

Remove the obsolete DIO grant branch from osc_queue_sync_pages().
Since LU-13814, DIO requests use osc_queue_dio_pages(). Rename
__osc_unreserve_grant() to osc_unreserve_grant_no_wake() to document
the no-wakeup rollback needed by waitqueue callers. Add __must_hold
annotations to document the locking requirements of grant and cache
helpers.

Add sanity test_398v using one exact OSC, warming its grant, and
pausing OST bulk completion. Verify that four DIO RPCs do not all
overlap at the dirty limit. Check final dirty counters and compare the
client and server grant changes around the tested DIO.

Fixes: 8efbad8ff4ed ("LU-13814 osc: add osc_queue_dio_pages")
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Vitaliy Kuznetsov <vkuznetsov@ddn.com>
Change-Id: I115232216ae77740f0a779994e8a020eedeebfef
64079 master J ✓B ✓T ✗4R 0/2
LU-12668 tests: add EC recovery tests
enforced failed: custom-1001, custom-1002, review-dne-subtest-change, review-dne-zfs-subtest-change
ec2 pt_ecro 14 unresolved XL +6003 −1
12h
enforced failed: custom-1001, custom-1002, review-dne-subtest-change, review-dne-zfs-subtest-change
14 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
failed enforced testplatformdetail
custom-1001 crashed RHEL 9.7 / x86_64 ran 3 tests. 1 tests failed: sanity-ec. %% THIS TEST SESSION CRASHED %% session
custom-1002 crashed RHEL 9.7 / x86_64 ran 3 tests. 1 tests failed: sanity-ec. %% THIS TEST SESSION CRASHED %% session
review-dne-subtest-change failed 30× RHEL 9.7 / x86_64 ran 3 tests. 1 tests failed: sanity-ec. session
review-dne-zfs-subtest-change failed 29× RHEL 9.7 / x86_64 ran 3 tests. 1 tests failed: sanity-ec. session
build #129694 SUCCESS
no vote yet: Maximilian Dilger
patchsets:
+44 earlier PS1 02-17 PS2 03-19 Zhenyu Xu PS3 03-29 PS4 03-29 PS5 03-29 PS6 03-29 Ronnie Sahlberg PS7 03-30 Ronnie Sahlberg PS8 03-31 Ronnie Sahlberg PS9 03-31 PS10 03-31 Ronnie Sahlberg PS11 04-01 Ronnie Sahlberg PS12 04-01 Ronnie Sahlberg PS13 04-07 Ronnie Sahlberg PS14 04-08 PS15 04-09 PS16 04-09 PS17 04-09 PS18 04-09 PS19 04-09 PS20 04-09 PS21 04-09 PS22 04-09 PS23 04-10 PS24 04-10 PS25 04-10 PS26 04-10 PS27 04-10 PS28 04-14 PS29 04-14 PS30 04-14 PS31 04-15 PS32 04-15 PS33 04-15 PS34 04-17 PS35 04-29 PS36 04-29 PS37 04-29 PS38 04-29 PS39 05-05 PS40 05-05 PS41 05-05 PS42 05-06 Ronnie Sahlberg PS43 06-03 Marc Vef PS44 07-26 Marc Vef
PS45 07-26 Marc Vef PS46 07-31 Maximilian Dilger PS47 07-31 Maximilian Dilger PS48 08-04 Maximilian Dilger PS49 08-19 Maximilian Dilger
threads: 14 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS46 2026-07-31 10:29 Gerrit AI review for Lustre COMMIT_MSG:48 — (minor) The range here starts at 49b, but 49a "test concurrent reads during EC recovery" is added by this patch too. Should it read 49a-50b?
Gerrit AI review for Lustre PS46 · 2026-07-31 10:29
(minor) The range here starts at 49b, but 49a "test concurrent reads during EC recovery" is added by this patch too. Should it read 49a-50b? Every other test added is accounted for by one of the ranges.
reply PS47 2026-08-01 05:17 Gerrit AI review for Lustre COMMIT_MSG:76 — (minor) Two hunks are not accounted for by any of the ranges above: the new `[[ "$SLOW" == "no" ]] && EXCEPT_SLOW="74a 75b"` line, and the `
Gerrit AI review for Lustre PS47 · 2026-08-01 05:17
(minor) Two hunks are not accounted for by any of the ranges above: the new `[[ "$SLOW" == "no" ]] && EXCEPT_SLOW="74a 75b"` line, and the `head -n1` fix in `enable_ec()` for the multi-mount `get_param` output.

The `EXCEPT_SLOW` one also changes an existing test: 74a is not added by this patch and is not named in any of the range lists, so a reader can't tell from the message that it is being moved onto the SLOW list. Worth a sentence for each.
reply PS46 2026-07-31 10:29 Gerrit AI review for Lustre sanity-ec.sh:6722 — (defect) With 3 of 4 data stripes unreadable and pcount=2, -EIO is the only correct outcome; returning reconstructed-but-wrong bytes is sile
Gerrit AI review for Lustre PS46 · 2026-07-31 10:29
(defect) With 3 of 4 data stripes unreadable and pcount=2, -EIO is the only correct outcome; returning reconstructed-but-wrong bytes is silent corruption. Treating it as an acceptable pass means a real reconstruction bug in this path would go unnoticed.

48a, 48c and 64b in this same patch take the opposite position ("handing back silently wrong data would be a corruption bug, so assert against it"). Should 52b assert rc != 0 instead?
reply PS46 2026-07-31 10:29 Gerrit AI review for Lustre sanity-ec.sh:9004 — (minor) These eight files (2M..16M) are never removed. The same applies to the extra files in 71b/71c/71d, 73b's .pure, 73c's .zero and the
Gerrit AI review for Lustre PS46 · 2026-07-31 10:29
(minor) These eight files (2M..16M) are never removed. The same applies to the extra files in 71b/71c/71d, 73b's .pure, 73c's .zero and the directories in 75e/75f; 73e is the only new test that registers a cleanup.

Added up, the new tests write on the order of 1.5G and leave most of it in place for the rest of the run, which on a small test filesystem can push later subtests into ENOSPC. A `stack_trap "rm -f ..."` next to each creation would keep the footprint bounded.
reply PS47 2026-08-01 05:17 Gerrit AI review for Lustre sanity-ec.sh:29 — (suggestion) Both of these are parked against the feature ticket itself. 53a in particular is described as intermittently reconstructing wro
Gerrit AI review for Lustre PS47 · 2026-08-01 05:17
(suggestion) Both of these are parked against the feature ticket itself. 53a in particular is described as intermittently reconstructing wrong data, which is a silent-corruption symptom rather than a test problem, and 41d is an OSC retry loop that never terminates.

Would separate LU tickets referenced here keep them from being lost when LU-12668 is closed? The convention elsewhere in this file (12a -> LU-19631, 5b/12b -> LU-20435) is one ticket per known failure.
reply PS47 2026-08-01 05:17 Gerrit AI review for Lustre sanity-ec.sh:4128 — (minor) A fresh `stack_trap` is pushed on every call, including repeat calls for the same index, so loop-driven tests accumulate identical c
Gerrit AI review for Lustre PS47 · 2026-08-01 05:17
(minor) A fresh `stack_trap` is pushed on every call, including repeat calls for the same index, so loop-driven tests accumulate identical cleanup entries: 75b registers 50, 74a 20, and 58a/63b/68b one per pair.

Each entry re-runs `ec_apply_fault`, which is a `do_nodes` to every OSS plus a `cancel_lru_locks osc`, so teardown does that work dozens of times over. Registering the trap only when the bit was not already set would make it one entry per OST.
reply PS47 2026-08-01 05:17 Gerrit AI review for Lustre sanity-ec.sh:4245 — (minor) When no stripe list is given this walks every data stripe and returns the first parity-free one, which can be a stripe that holds no
Gerrit AI review for Lustre PS47 · 2026-08-01 05:17
(minor) When no stripe list is given this walks every data stripe and returns the first parity-free one, which can be a stripe that holds no data.

For a sub-raid-set file that is the vacuous-pass mode this helper is documented as preventing: 42a writes 512K into a 1M-stripe 4+2 layout, so only stripe 0 has data. If stripe 0's OST happens to double as parity, the fault is armed on stripe 1's (empty) object and the checksum comparison succeeds without reconstructing anything.

`ec_data_stripe_osts()` handles the analogous case by calling `skip_env`. Would returning non-zero (so `ec_start_read_fault()` skips) be safer than falling through to a later stripe?
reply PS47 2026-08-01 05:17 Gerrit AI review for Lustre sanity-ec.sh:5451 — (minor) 44c and 44a are the same test - same layout, same `ec_start_all_reads_fail`, same EIO check, same clear-and-reread - differing only
Gerrit AI review for Lustre PS47 · 2026-08-01 05:17
(minor) 44c and 44a are the same test - same layout, same `ec_start_all_reads_fail`, same EIO check, same clear-and-reread - differing only in the error strings. 43c is that body minus the reread. Could these collapse into one?

While here, 43c's description says "too many OST failures (3+ OSTs)" but `ec_start_all_reads_fail` uses `fail_val=0`, which fails every OST, not three.
reply PS47 2026-08-01 05:17 Gerrit AI review for Lustre sanity-ec.sh:9099 — (minor) The comment says "an OST that is a safe data OST for all files", but only `$f2` is classified. `$f1` (2+1, 3 objects) and `$f3` (2+2
Gerrit AI review for Lustre PS47 · 2026-08-01 05:17
(minor) The comment says "an OST that is a safe data OST for all files", but only `$f2` is classified. `$f1` (2+1, 3 objects) and `$f3` (2+2, 4 objects) get whatever the allocator gave them, so on an 8-OST config the victim frequently holds none of their objects and the `$s1`/`$s3` comparisons pass without any recovery running.

71a, 71c, 71d and 75e/75f have the same shape (classify one file, assert on all of them). That is defensible for a batch test, but here the comment claims something stronger than the code does.
reply PS47 2026-08-01 05:17 Gerrit AI review for Lustre sanity-ec.sh:9905 — (defect) `safe_osts` here still comes from the `ec_classify_osts $tf` above, but the SEEK_DATA/SEEK_HOLE checks below run on `$tfs`, which w
Gerrit AI review for Lustre PS47 · 2026-08-01 05:17
(defect) `safe_osts` here still comes from the `ec_classify_osts $tf` above, but the SEEK_DATA/SEEK_HOLE checks below run on `$tfs`, which was created separately and gets its own object placement from the allocator.

So the OST taken out need not hold any of `$tfs`'s stripes, and on a run where it doesn't, the two `lseek_test` assertions execute against a fully healthy file.

73c already documents and avoids exactly this ("safe_osts still describes $tf; $tf2 has its own object placement") by calling `ec_data_stripe_osts $tf2 0` first. Should 75d do the same for `$tfs`?

Related: the comment says the seek "crosses the degraded stripe", but the data lives at 5M, i.e. stripe 1 with `-c 4 -S 1M`, while `safe_osts[0]` is just the lowest-numbered data OST.
reply PS49 2026-08-19 09:57 Gerrit AI review for Lustre sanity-ec.sh:4234 — (minor) The negative-index handling, and the "Index -1 is the last stripe" note in the header comment, appear to be unreachable: all eleven
Gerrit AI review for Lustre PS49 · 2026-08-19 09:57
(minor) The negative-index handling, and the "Index -1 is the last stripe" note in the header comment, appear to be unreachable: all eleven callers pass 0..4. Worth dropping the branch and the doc line unless a caller is coming.
reply PS49 2026-08-19 09:57 Gerrit AI review for Lustre sanity-ec.sh:4355 — (style) The suite convention is a `#define` comment naming the fault right above the line that arms it, so a reader does not have to look up
Gerrit AI review for Lustre PS49 · 2026-08-19 09:57
(style) The suite convention is a `#define` comment naming the fault right above the line that arms it, so a reader does not have to look up the bare hex. `ec_start_all_reads_fail()` and 41d both do this; this call site and the one in `ec_apply_fault()` do not.

    #define OBD_FAIL_OST_BRW_READ_BULK 0x20f
    ec_ost_fail_loc 0x20f $(( 0x10000 | mask ))

The value itself is right (obd_support.h has 0x20f), it is only the annotation that is missing.
tags: pt_ecro
owner Patrick Farrell · uploader Maximilian Dilger · PS49 uploaded 19h ago · NEW · open in Gerrit ↗
commit message
LU-12668 tests: add EC recovery tests

Add sanity-ec coverage for erasure-coding recovery.  Each test
writes an EC file, resyncs parity, fails one or more OSTs, and
verifies the client reconstructs the data from parity (CIT_EC_RD)
against the pre-failure checksum.

Failure is injected with OBD_FAIL_OST_BRW_READ_BULK so the OSC
import stays active and only bulk reads fail, which drives genuine
parity reconstruction.  The fault is set on the OSS nodes, where
tgt_brw_read() evaluates it, and osc.*.resend_count is dropped to 1
for the duration so the injected -EIO reaches the LOV layer instead
of being absorbed by an OSC resend.

Victims are chosen by stripe rather than by OST index.
ec_pick_data_ost() walks a file's data stripes in order and takes
the first whose OST does not also carry parity: a file smaller than
one raid set holds data on stripe 0 alone, so picking the lowest OST
index instead would arm the fault on an object the read never
reaches and the test would pass without exercising recovery.
ec_check_fault_index() skips when a target OST index is >= 16, which
cfs_fail_index() cannot express in its 16-bit fail_val bitmask.
ec_mirror_victims() fails one parity-free OST in every data mirror,
since a file with more than one data copy would otherwise answer the
read from an intact mirror rather than reconstructing anything.

Reads that check a sub-range cancel their locks first: a range
re-read after a whole-file read is otherwise served from the page
cache, issues no BRW RPC, and so never reaches the injected fault.

Geometry and I/O patterns (40b-44c):
- 2+1, 2+2 and 4+1 EC; partial, offset, mmap, direct and async
  reads; single, maximum and progressive OST failure; graceful
  failure when too many OSTs are gone

Failure placement and layout (45a-48c):
- consecutive, non-consecutive, boundary and parity-only OST
  failures; 64K, 256K and 4M stripe sizes; multiple EC and
  mixed EC/non-EC PFL components; stale and partially stale
  parity

Concurrency and multi-mount (49a-50b):
- concurrent readers over a file with two failed data OSTs;
  background writes, mirror resync and OST reactivation during
  recovery; both mounts reading the same EC file

Core recovery (51a-53a):
- EOF boundary recovery at RAID set / stripe set boundaries;
  degradation limits and mixed parity+data failure; recovery at
  non-zero read offsets

Layout patterns (55a):
- file-size boundaries (1 byte .. multi-stripe)

Edge cases (58a-62d):
- parity_used combinations and stripe rotation; sparse files
  with holes; recovery after truncate; sub-stripe files;
  append writes

Multi-target (63a-66d):
- OST failure cycling and multi-mount coordination; 3-4
  component PFL with per-component EC geometry; multiple
  EC mirror pairs

Write patterns (67a-71d):
- writes to healthy stripes during degraded mode and
  overwrite cycles; varied geometries; O_DIRECT writes;
  partial and mid-file overwrites; batch recovery of many
  files

Stress and admin (73a-73e, 74a, 75a-75f):
- random reads, fallocate, truncate-extend, O_APPEND, and
  large (128M) file recovery; reads racing with OST
  deactivation; stat/getattr, stress loops, lfs mirror
  verify, directory-inherited layout, and stripe rotation

Tests 41d and 53a are added but listed in always_except.  A degraded
mmap read never completes: the OSC alternates between "too many
resent retries" and osc_brw_redo_request() forever, so -EIO never
reaches the LOV layer and CIT_FAULT never switches to CIT_EC_RD.  A
recovery read at a non-zero offset intermittently reconstructs wrong
data.  Both stay off until those are fixed.

Test 65c and the sparse half of 75d are skipped on ZFS.  Both build a
sparse file and resync it, which needs lseek to report the holes so
resync knows which stripe sets to skip, and ZFS does not report them
reliably for dirty data.  Test 12b describes the same problem.

Assisted-by: ClaudeCode:opus llm_code_and_review_tools
Test-Parameters: trivial testlist=sanity-ec ostcount=8
Test-Parameters: trivial testlist=sanity-ec ostcount=8 fstype=zfs
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Max Dilger <mdilger@whamcloud.com>
Change-Id: I5a06cd166487e0bff7bfdb6a39414af3f12c4326
63249 master J !B ✓T ✗20R 1/2−
LU-19755 osc: fix race in max_rpcs_in_flight check
needs rebase — checkpatch: cannot be cherry-picked
5 unresolved M +75 −8
19h
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-5, review-ldiskfs, review-ldiskfs-ubuntu
5 unresolved thread(s) await your reply — last from Andreas Dilger
janitor run: 4 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-hsm. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 1 tests failed: sanity-hsm. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 7 tests. 2 tests failed: recovery-small, lustre-rsync-test. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 7 tests. 2 tests failed: recovery-small, lustre-rsync-test. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 2 tests failed: sanity-sec, recovery-small. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-hsm. session
review-dne-zfs-part-5 RHEL 8.10 / x86_64 ran 7 tests. 2 tests failed: recovery-small, lustre-rsync-test. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
build #120168 SUCCESS · tests all Maloo sessions
reviews: Jinshan Xiong +1 2026-01-06 19:24
no vote yet: Andreas Dilger
patchsets: PS1 01-06 PS2 01-06 PS3 01-06
threads: 5 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2026-01-07 17:09 Andreas Dilger COMMIT_MSG:16 — How is this better than just incrementing rpcs_in_flight under cl_loi_list_lock and decrementing it on failure? Does this mean we are now d
Andreas Dilger PS2 · 2026-01-07 17:09
How is this better than just incrementing rpcs_in_flight under cl_loi_list_lock and decrementing it on failure?  Does this mean we are now double counting some RPCs until the new counter is decremented?
reply PS2 2026-01-07 17:09 Andreas Dilger COMMIT_MSG:25 — In the upstream kernel this is expressed as:
Andreas Dilger PS2 · 2026-01-07 17:09
In the upstream kernel this is expressed as:

    Reported-by:

Or:

    Suggested-by:
reply PS2 2026-01-07 17:09 Andreas Dilger osc_cache.c:2216 — why remove this comment?
Andreas Dilger PS2 · 2026-01-07 17:09
why remove this comment?
reply PS2 2026-01-07 17:09 Andreas Dilger sanity.sh:35742 — (style)
Andreas Dilger PS2 · 2026-01-07 17:09
(style)

    for ((i = 0; i < 16; i++)); do
reply PS2 2026-01-07 23:52 Andreas Dilger sanity.sh:35753 — I guess this needs to only follow the `rpcs in flight:` section, so possibly:
Andreas Dilger PS2 · 2026-01-07 17:09
(style) can this just grep for `5:` in the output?

    $LCTL get_param -n osc.$osc.rpc_stats | grep "^5:" &&
            error "found more than 4 RPCs in flight" || true
Andreas Dilger PS2 · 2026-01-07 23:52
I guess this needs to only follow the `rpcs in flight:` section, so possibly:
```
    $LCTL get_param -n osc.$osc.rpc_stats | grep -A 8 "rpcs in flight:" |
        grep "^[5-9]:" && error ...`
```
This also detects the case where 5 RPCs-in-fight are somehow all skipped...
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 225d ago · NEW · open in Gerrit ↗
commit message
LU-19755 osc: fix race in max_rpcs_in_flight check

When multiple ptlrpcd threads process RPCs concurrently, they
can all pass the osc_max_rpc_in_flight() check before any of
them has incremented the in-flight counter. This happens
because the check is done under cl_loi_list_lock but the
counter is incremented later in osc_send_*_rpc() after the
lock is released.

Fix this by adding a cl_pending_in_flight counter that
reserves a slot while still holding the lock. This counter
is included in rpcs_in_flight() so concurrent threads see
the reservation and wait appropriately.

Add OBD_FAIL_OSC_DELAY_RPC to allow testing this fix by
injecting a delay in the race window, and sanity test 55d
to verify the limit is respected under concurrency.

Thanks to Jinshan Xiong of Google for reporting this issue
and suggesting the fix.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I8ceacf3d9040d94fc89ab54a39bd98a4fb35ae1d
64440 master J !B ✓T ✗1R 0/2−
LU-19956 osc: fix race from direct ops_transfer_pinned clear
needs rebase — checkpatch: cannot be cherry-picked
M +79 −14
19h
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-part-5
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-5 crashed RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. %% THIS TEST SESSION CRASHED %% session
4 optional test failure(s) — informational
build #122315 SUCCESS · tests all Maloo sessions
no vote yet: Jinshan Xiong, Shaun Tancheff, Andreas Dilger, Zhenyu Xu, Oleg Drokin
patchsets:
+7 earlier PS1 03-09 PS2 03-09 PS3 03-09 PS4 03-09 PS5 03-09 PS6 03-09 PS7 03-09
PS8 03-10 PS9 03-10 PS10 03-10 PS11 03-11 PS12 03-11
your previous vote: -1 on PS11 (2026-03-11 01:59) — now at PS12
owner Patrick Farrell · uploader Patrick Farrell · PS12 uploaded 161d ago · NEW · open in Gerrit ↗
commit message
LU-19956 osc: fix race from direct ops_transfer_pinned clear

The ops_transfer_pinned flag in osc_page is paired
with a cl_page reference -- the flag and the ref must
always be managed together through the
osc_page_transfer_get/put() accessors.

osc_completion() violated this by clearing the flag
directly and dropping the ref with a separate
cl_page_put().  This decoupled the flag from the ref,
opening a race on weakly-ordered architectures.

The initial fix (complete first, then transfer_put)
introduced a re-submission crash: once
cl_page_complete() transitions the page to CPS_CACHED,
a concurrent write can re-submit it via
osc_page_cache_add -> osc_page_transfer_get, which
asserts the pin is clear.  If the old completion has
not yet called transfer_put, the assert fires.

Fix osc_completion to release the transfer pin BEFORE
cl_page_complete().  While still in CPS_PAGEOUT, the
state machine prevents any other transition, so the
transfer_put is race-free.  Take a temporary cl_page
ref first: transfer_put drops the pin's ref (cp_ref
2->1), and cl_page_complete's end_page_writeback can
make the page reclaimable on another CPU.

A TLA+ formal model (formal_models/clio/TransferPin.tla)
with the NoPinWhileCached invariant verifies this fix
catches the re-submission crash in all three buggy
variants (original, LASSERT-in-delete, complete-first).

Generated with Claude Code + Tools

Test-Parameters: testlist=sanity env=ONLY=80a
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ib8416c753e13fe6eb8e11790b63687fbc2c8a26d
60688 master J ✗20B ✗T –R 0/2−
LU-0000 llite: fault in pages before get_user_pages
build failure (#115743)
20 unique failures fortestonly 6 unresolved M +42 −14
7d
build failure (#115743)
janitor: 20 test failures unique to this patch — conf-sanity1@ldiskfs+DNE:test_25, conf-sanity2@ldiskfs+DNE:test_50a, conf-sanity3@ldiskfs+DNE:test_101a +17 more
Andreas Dilger voted -1
4 unresolved thread(s) await your reply — last from Andreas Dilger
2 thread(s) waiting on others
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity1@ldiskfs+DNE:test_25NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
conf-sanity2@ldiskfs+DNE:test_50aseen in 1 other review
conf-sanity3@ldiskfs+DNE:test_101aseen in 6 other reviews
conf-sanity4@ldiskfs+DNE:test_151aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
conf-sanity1@zfs:test_30aseen in 3 other reviews
conf-sanity2@zfs:test_51seen in 2 other reviews
recovery-small@ldiskfs+DNE:test_52seen in 8 other reviews
recovery-small@zfs:test_52seen in 6 other reviews
replay-dual@ldiskfs+DNE:test_28seen in 1 other review
sanity2@ldiskfs+DNE:test_123aaNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity3@ldiskfs+DNE:test_398mseen in 2 other reviews
sanity-slow@ldiskfs+DNE:test_255aseen in 17 other reviews
sanity1@zfs:test_56xbNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_123aaNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-quota@ldiskfs+DNE:test_33seen in 1 other review
sanity-quota@zfs:test_13NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-sec@ldiskfs+DNE:test_18seen in 4 other reviews
sanity-sec@zfs:test_18seen in 4 other reviews
sanityn@ldiskfs+DNE:test_43kseen in 2 other reviews
sanityn@zfs:test_45jseen in 4 other reviews
build #115743 FAILURE
reviews: Andreas Dilger -1 2025-08-13 23:25
patchsets: PS1 08-13 PS2 08-13 PS3 08-13 PS4 08-13 PS5 08-13
threads: 4 need your reply · 2 waiting on others · 0 own notes · 0 bot
reply PS5 2025-08-19 05:18 Andreas Dilger cl_object.h:2632 — (style) this would be more clear if the same #ifdef was not checked twice:
Andreas Dilger PS5 · 2025-08-13 23:25
(minor) duplicate code block?  I can't see any difference
Andreas Dilger PS5 · 2025-08-19 04:58
Doh, "readable" vs. "writeable".  I was confused that they were both checking HAVE_FAULT_IN_IOV_ITER_READABLE...
Andreas Dilger PS5 · 2025-08-19 05:18
(style) this would be more clear if the same #ifdef was not checked twice:
```
#ifdef HAVE_FAULT_IN_IOV_ITER_READABLE
#define ll_iov_iter_fault_in_readable(iov, bytes) \
        fault_in_iov_iter_readable(iov, bytes)
#define ll_iov_iter_fault_in_writeable(iov, bytes) \
        fault_in_iov_iter_writeable(iov, bytes)
#else
#define ll_iov_iter_fault_in_readable(iov, bytes) \
        iov_iter_fault_in_readable(iov, bytes)
#define ll_iov_iter_fault_in_writeable(iov, bytes) \
        iov_iter_fault_in_writeable(iov, bytes)
#endif
```
reply PS5 2025-08-14 03:57 Andreas Dilger cl_page.c:190 — (defect) it looks like this will leak cdp->cdp_pages if an error is returned.
Andreas Dilger PS5 · 2025-08-14 03:57
(defect) it looks like this will leak cdp->cdp_pages if an error is returned.
reply PS5 2025-08-14 03:57 Andreas Dilger cl_page.c:194 — (defect) same
Andreas Dilger PS5 · 2025-08-14 03:57
(defect) same
reply PS5 2025-08-14 03:57 Andreas Dilger cl_page.c:205 — (minor) this should be moved to the end and cleaned up in one place:
Andreas Dilger PS5 · 2025-08-14 03:57
(minor) this should be moved to the end and cleaned up in one place:
```
        if (unlikely(result != page_count)) {
                CDEBUG(D_PAGE, "ll_release_user_pages() result=%ld, page_count=%ld\n", result, page_count);
                if (result >= 0)
-                       return -EFAULT;
+                       result = -EFAULT;

+               GOTO(out_free, size = result);
        }
        pvec->ldp_count = page_count;


+out_free:
+       if (size < 0) {
+               ll_release_user_pages(pvec->ldp_pages, page_count);
+               pvec->ldp_pages = NULL;
+       }
        return size;
```
tags: fortestonly
owner Patrick Farrell · uploader Patrick Farrell · PS5 uploaded 371d ago · NEW · open in Gerrit ↗
commit message
LU-0000 llite: fault in pages before get_user_pages

We must fault in the user pages before get_user_pages,
otherwise we can livelock with the mmap sem.

Not sure about the requirement for the other case,
on newer kernels - but it's worth a try.

Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I8a9a8094101e37a12d59482efb6a788231233837
63678 master J ✗1B ✓T ✗5R 0/2−
LU-19839 llite: add persistent nohybrid I/O flag
janitor: 1 test failure unique to this patch — sanity2@zfs:test_119l
1 unique failure 20 unresolved M +124 −5
22d
janitor: 1 test failure unique to this patch — sanity2@zfs:test_119l
enforced failed: review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-subtest-change, review-ldiskfs-ubuntu
20 unresolved thread(s) await your reply — last from Andreas Dilger
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_119lNEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
failed enforced testplatformdetail
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 9.7 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 10.1 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-subtest-change RHEL 9.7 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity-lnet. session
build #127956 SUCCESS · tests all Maloo sessions
no vote yet: Marc Vef, Andreas Dilger
patchsets:
+4 earlier PS1 01-30 PS2 01-30 PS3 01-30 PS4 01-30
PS5 02-03 PS6 02-03 PS7 02-03 Janitor Bot PS8 07-16 Maximilian Dilger PS9 07-22 Maximilian Dilger
threads: 20 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS7 2026-02-04 06:05 Andreas Dilger COMMIT_MSG:15 — (minor) ... so it could also be set and checked via `chattr +t FILE` and `lsattr FILE` commands from e2fsprogs.
Andreas Dilger PS7 · 2026-02-04 06:05
(minor) ... so it could also be set and checked via `chattr +t FILE` and `lsattr FILE` commands from e2fsprogs.
reply PS9 2026-07-28 11:36 Gerrit AI review for Lustre COMMIT_MSG:21 — The "Changes:" list mentions adding LUSTRE_NOTAIL_FL to LUSTRE_FL_USER_MODIFIABLE, but the same hunk also adds LUSTRE_COMPR_FL to that mask
Gerrit AI review for Lustre PS9 · 2026-07-28 11:36
The "Changes:" list mentions adding LUSTRE_NOTAIL_FL to LUSTRE_FL_USER_MODIFIABLE, but the same hunk also adds LUSTRE_COMPR_FL to that mask and removes the duplicate LUSTRE_NOATIME_FL entry. Neither is explained. The COMPR change is an independent server-side behavior change - should it be split into its own patch?

The lustre/utils/lfs.c hunk (skipping the range validation for nohybrid) isn't described either.
reply PS9 2026-07-28 11:36 Gerrit AI review for Lustre COMMIT_MSG:25 — This changes UAPI flag definitions that the MDT interprets, so interop with an older server is worth an explicit test run. Consider adding s
Gerrit AI review for Lustre PS9 · 2026-07-28 11:36
This changes UAPI flag definitions that the MDT interprets, so interop with an older server is worth an explicit test run. Consider adding something like:

    Test-Parameters: testlist=sanity serverversion=2.16.0
reply PS9 2026-07-28 11:36 Gerrit AI review for Lustre lustre_idl.h:1891 — New wire flag, but wirecheck.c and the two wiretest.c copies don't look updated - the neighbouring LUSTRE_*_FL values have CHECK_VALUE_X ent
Gerrit AI review for Lustre PS9 · 2026-07-28 11:36
New wire flag, but wirecheck.c and the two wiretest.c copies don't look updated - the neighbouring LUSTRE_*_FL values have CHECK_VALUE_X entries. Same for LU_LADVISE_NOHYBRID, which needs a CHECK_VALUE next to the other LU_LADVISE_* ones (LU_LADVISE_AHEAD seems to have been missed earlier too).
reply PS9 2026-07-28 11:36 Gerrit AI review for Lustre lustre_idl.h:1919 — The compatibility claim points at the wrong side. Older clients aren't the problem; older servers are.
Gerrit AI review for Lustre PS9 · 2026-07-28 11:36
The compatibility claim points at the wrong side. Older clients aren't the problem; older servers are.

On a pre-patch MDS, LUSTRE_FL_USER_VISIBLE has no NOTAIL bit, so mdt_setattr_unpack() hits

    if (rec->sa_attr_flags & ~LUSTRE_FL_USER_VISIBLE)
            RETURN(-EOPNOTSUPP);

and lfs ladvise -a nohybrid fails with EOPNOTSUPP. Clearing the flag still "succeeds" as a no-op, so the two directions behave differently. Worth stating the required server version here.
reply PS9 2026-07-28 11:36 Gerrit AI review for Lustre lustre_idl.h:1929 — This was asked on patchset 7 and looks unaddressed: adding LUSTRE_COMPR_FL here is unrelated to nohybrid and changes server behavior.
Gerrit AI review for Lustre PS9 · 2026-07-28 11:36
This was asked on patchset 7 and looks unaddressed: adding LUSTRE_COMPR_FL here is unrelated to nohybrid and changes server behavior.

mdt_setattr_unpack() masks with LUSTRE_FL_USER_MODIFIABLE, and osd_attr_set() replaces the whole masked set, so this makes the compression flag both settable and clearable on the MDT inode by any client. Is that intended ahead of the compression work landing?
reply PS7 2026-02-04 06:05 Andreas Dilger lustre_idl.h:1909 — (defect) why is NOATIME being removed?
Andreas Dilger PS7 · 2026-02-04 06:05
(defect) why is NOATIME being removed?
reply PS7 2026-02-04 06:05 Andreas Dilger lustre_idl.h:1917 — Is the COMPR flag really user modifiable or just visible? And does it make sense to allow this to be set before CSDC is landed to master?
Andreas Dilger PS7 · 2026-02-04 06:05
Is the COMPR flag really user modifiable or just visible?  And does it make sense to allow this to be set before CSDC is landed to master?
reply PS7 2026-02-04 06:05 Andreas Dilger lustre_idl.h:1919 — Should this use NOHYBRID?
Andreas Dilger PS7 · 2026-02-04 06:05
Should this use NOHYBRID?
reply PS7 2026-02-04 06:05 Andreas Dilger file.c:5011 — Does this also set the flag directly on the inode, or is the inode here the root or parent directory?
Andreas Dilger PS7 · 2026-02-04 06:05
Does this also set the flag directly on the inode, or is the inode here the root or parent directory?
reply PS8 2026-07-16 22:16 Misc Code Checks Robot (Gatekeeper helper) file.c:5116 — parse ll_file_ioctl():error: Function too hairy. Giving up. 4 seconds
Misc Code Checks Robot (Gatekeeper helper) PS8 · 2026-07-16 22:16
parse ll_file_ioctl():error: Function too hairy.  Giving up. 4 seconds
warn: ll_file_ioctl():Function too hairy.  No more merges.
reply PS9 2026-07-28 11:36 Gerrit AI review for Lustre file.c:4994 — ll_inode2ext_flags() is not a full picture of the file's flags - it rebuilds them from inode->i_flags via ll_inode_to_ext_flags(), which onl
Gerrit AI review for Lustre PS9 · 2026-07-28 11:36
ll_inode2ext_flags() is not a full picture of the file's flags - it rebuilds them from inode->i_flags via ll_inode_to_ext_flags(), which only knows SYNC/NOATIME/APPEND/DIRSYNC/IMMUTABLE/ENCRYPT, plus the PROJINHERIT and (new) NOHYBRID lli_flags bits.

LUSTRE_NODUMP_FL and LUSTRE_NOCOMPR_FL are in LUSTRE_FL_USER_MODIFIABLE but have no i_flags or lli_flags representation, so they come back as 0 here. osd_attr_set() then does a wholesale replace:

    ei->i_flags = (ei->i_flags & ~LDISKFS_OSD_USER_MODIFIABLE) |
                  (attr->la_flags & LDISKFS_OSD_USER_MODIFIABLE);

so those bits get cleared on disk. chattr +d FILE followed by lfs ladvise -a nohybrid FILE should lose the 'd' flag.

The FS_IOC_SETFLAGS path avoids this by calling fileattr_get() first, which fetches body->mbo_flags from the MDT. Should this do the same before OR-ing in LUSTRE_NOHYBRID_FL?

Related: ll_set_project() builds op_attr_flags from ll_xflags_to_ext_flags() and also sets OP_XVALID_FLAGS, so lfs project on a file appears to clear the nohybrid flag for the same reason.
owner Patrick Farrell · uploader Maximilian Dilger · PS9 uploaded 28d ago · NEW · open in Gerrit ↗
commit message
LU-19839 llite: add persistent nohybrid I/O flag

Add a persistent flag to prevent hybrid I/O switching
for specific files. This uses the NOTAIL flag (0x00008000)
which is not used by Lustre/ext4 and unlikely to be used
in the future.

The flag is set via ladvise interface for discoverability
but uses FS_IOC_SETFLAGS internally for implementation.
When set, hybrid I/O will not switch the file from
buffered to direct I/O regardless of I/O size.

Changes:
- Define LUSTRE_NOTAIL_FL and LUSTRE_NOHYBRID_FL
- Add LUSTRE_NOTAIL_FL to LUSTRE_FL_USER_MODIFIABLE
- Implement LU_LADVISE_NOHYBRID using FS_IOC_SETFLAGS
- Update ll_update_inode_flags to handle NOTAIL flag
- Add test_119l to verify nohybrid flag functionality

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6a69293801114e2a3015ed87f2258828922ab767
52382 master J ✗59B ✗T –R 0/2
LU-13814 osc: assert transfer pages identical
build failure (#112985)
59 unique failures S +33 −0
30d
build failure (#112985)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 34 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 7 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 34 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 6 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 9 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 17 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 17 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 17 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 17 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 7 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 7 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 23 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 7 other reviews
sanity1@zfs:test_56xseen in 39 other reviews
sanity1@zfs:test_56xBseen in 11 other reviews
sanity1@zfs:test_56xaseen in 39 other reviews
sanity1@zfs:test_56xabseen in 8 other reviews
sanity1@zfs:test_56xcseen in 35 other reviews
sanity1@zfs:test_56ejseen in 11 other reviews
sanity2@zfs:test_119eseen in 18 other reviews
sanity2@zfs:test_119fseen in 17 other reviews
sanity2@zfs:test_119gseen in 17 other reviews
sanity2@zfs:test_119hseen in 17 other reviews
sanity2@zfs:test_119pseen in 7 other reviews
sanity2@zfs:test_119qseen in 7 other reviews
sanity2@zfs:test_398oseen in 22 other reviews
sanity2@zfs:test_398sseen in 7 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 26 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 10 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 71 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 30 other reviews
sanity-flr@zfs:test_0gseen in 33 other reviews
sanity-flr@zfs:test_0hseen in 35 other reviews
sanity-flr@zfs:test_0jseen in 34 other reviews
sanity-flr@zfs:test_36dseen in 32 other reviews
sanity-flr@zfs:test_37seen in 36 other reviews
sanity-flr@zfs:test_38seen in 33 other reviews
sanity-flr@zfs:test_44bseen in 9 other reviews
sanity-flr@zfs:test_61aseen in 40 other reviews
sanity-flr@zfs:test_61cseen in 33 other reviews
sanity-flr@zfs:test_70aseen in 60 other reviews
sanity-flr@zfs:test_200aseen in 33 other reviews
sanity-flr@zfs:test_200bseen in 33 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 11 other reviews
sanity-hsm@zfs:test_607bseen in 11 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 29 other reviews
sanityn@zfs:test_16jseen in 32 other reviews
build #112985 FAILURE
patchsets:
+13 earlier PS1 09-15 PS2 09-15 PS3 09-15 PS4 09-15 PS5 09-16 PS6 09-25 PS7 09-26 PS8 09-26 PS9 10-05 PS10 10-05 PS11 10-20 PS12 10-22 PS13 10-22
PS14 12-26 PS15 02-27 PS16 10-28 PS17 11-03 PS18 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS18 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: assert transfer pages identical

At this point, we're about to stop using cl_page for DIO,
and the transfer pages created with the cl_page and those
created separately for DIO should be identical.

Let's assert that for every value.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6c71f6c2a3e48a65f5abb18d7beb0699f7577d92
52776 master J !B ✓T ✓R 0/2−
LU-13802 llite: add file nonrotational check
needs rebase — checkpatch: cannot be cherry-picked
hio 1 unresolved S +17 −2
58d
needs rebase — checkpatch: cannot be cherry-picked
1 unresolved thread(s) await your reply — last from Andreas Dilger
CI green — no vote yet from Marc Vef, Shaun Tancheff, Andreas Dilger
janitor run: 13 failing config(s), none unique to this patch — janitor results
6 optional test failure(s) — informational
build #124324 SUCCESS · tests all Maloo sessions
no vote yet: Marc Vef, Shaun Tancheff, Andreas Dilger
patchsets:
+16 earlier PS1 10-20 PS2 10-20 PS3 10-20 PS4 10-24 PS5 10-24 PS6 01-16 PS7 01-16 PS8 02-10 PS9 02-12 PS10 02-12 PS11 02-12 PS12 02-13 PS13 02-13 PS14 03-13 PS15 03-13 PS16 03-21
PS17 03-21 PS18 03-27 PS19 04-01 PS20 04-23 Marc Vef PS21 04-23 Marc Vef
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS19 2026-04-26 02:56 Andreas Dilger cl_object.h:1963 — Actually, an OST is (generally) only going to be rotational or non-rotational, and this is already returned to the client via statfs, so the
Andreas Dilger PS19 · 2024-04-11 23:20
We aggregate attributes from multiple objects for other reasons (e.g. maxbytes, timestamps, size, etc.).

The current implementation looks "mostly OK" and will work for basic linear IO patterns, where the file transitions from non-rotational to rotational.  However, any other kind of IO pattern (e.g. HDF5 where some writes are at the beginning of the file and others at the end) might have a serious issue?

IMHO, it would be better to aggregate this information once from the object (maybe from the OSC's the object is allocated on) and then be done with it?  Storing a threshold when the file transitions from non-rotational to rotational would be best, as this could be computed once based on the layout.  It is fairly unlikely that a file would have HDD stripes in the middle and flash at the beginning and end.

Alternately (probably better) is to store the nonrot state in each layout component (which is a perfect 1:1 mapping), and then this can be checked at IO submission time to see what type of storage it is covering.
Patrick Farrell PS19 · 2024-04-11 23:58
Hm, OK.  I don't think we can do this as easily as we'd like - the issue is we have to have this information very early.  I can consider this, though, your points are good ones.

The good thing is this isn't essential to merging the core feature, particularly since we're leaving it off by default for 2.16.
Andreas Dilger PS19 · 2026-04-26 02:56
Actually, an OST is (generally) only going to be rotational or non-rotational, and this is already returned to the client via statfs, so the clients should have full knowledge whether any IO is on flash or disk.
owner Patrick Farrell · uploader Marc Vef · PS21 uploaded 118d ago · NEW · open in Gerrit ↗
commit message
LU-13802 llite: add file nonrotational check

This patch adds the ability to note whether or not the
last IO to a file hit a rotational or a non-rotational
device.

This will be used in selecting the cutover thresholds for
hybrid IO, since DIO is synchronous and much slower on
spinning disk.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Marc Vef <mvef@whamcloud.com>
Change-Id: I75a9970f91b1776ed6f04ac0d000a9ba576df75a
59801 master J !B ✗T –R 2/2−
LU-19109 llite: remove extra vvp_env_new_io call
needs rebase — checkpatch: cannot be cherry-picked
1 unresolved S +9 −5
72d
needs rebase — checkpatch: cannot be cherry-picked
build aborted (#114406)
1 unresolved thread(s) await your reply — last from Marc Vef
janitor run: 2 failing config(s), none unique to this patch — janitor results
build #114406 ABORTED
reviews: Marc Vef +1 2025-06-17 16:32 · Timothy Day +1 2025-06-17 16:37
no vote yet: Andreas Dilger
patchsets: PS1 06-17 PS2 06-17 PS3 06-17 PS4 06-17
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS3 2025-06-17 16:24 Marc Vef file.c:2193 — I was wondering if the Janitor flags this. Technically, I don't think we can get here since `rc` would be -ENOMEM if we jumped out in line :
Lustre Gerrit Janitor PS3 · 2025-06-17 16:14
error: 'io' may be used uninitialized in this function [-Werror=maybe-uninitialized]
Marc Vef PS3 · 2025-06-17 16:24
I was wondering if the Janitor flags this. Technically, I don't think we can get here since `rc` would be -ENOMEM if we jumped out in line :2006 where `io` would not be set yet.

Looks like that still needs to be fixed (compile failed). I guess it'd be easiest to keep the first call to `vvp_env_new_io()` and drop the second one?
owner Patrick Farrell · uploader Patrick Farrell · PS4 uploaded 428d ago · NEW · open in Gerrit ↗
commit message
LU-19109 llite: remove extra vvp_env_new_io call

vvp_env_new_io is called twice in ll_file_io_generic, which
is confusing since the second call overwrites the first.

Fix this and a cleanup path mistake, where we assume the
IO was set up after the call to vvp_env_new_io, which is
wrong.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6186e17db8b04f01fd37ea7ac5d4b69b30d0258c
64937 master J –B ✗T –R 1/2−
LU-20016 ec: ISA-L SIMD for userspace and kernel
build failure (#122958)
25 unresolved XL +36039 −19
97d
build failure (#122958)
Andreas Dilger voted -1
25 unresolved thread(s) await your reply — last from Andreas Dilger
build #122958 FAILURE
reviews: Ronnie Sahlberg +1 2026-03-27 21:35 · Andreas Dilger -1 2026-04-06 21:18
no vote yet: Qian Yingjin, Hiroshi Nishida, Marc Vef
patchsets: PS1 03-27 PS2 03-27 PS3 03-27
threads: 25 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-03-29 08:52 Andreas Dilger COMMIT_MSG:14 — It would make sense to put an LLM to work on converting the NASM .asm files int GCC .S files. It should be possible to have it iterate on g
Andreas Dilger PS1 · 2026-03-29 08:52
It would make sense to put an LLM to work on converting the NASM .asm files int GCC .S files.  It should be possible to have it iterate on getting the GCC-compiled code to generate the same x86 byte code, or at least compile and run correctly to pass whatever correctness tests exist for this code. 

In fact, a quick search shows that NASM already has a tool to do this:

    Automatically convert Intel NASM assembly to GNU Assembler (GAS/GASM)
    syntax using the intel2gas tool, which converts between NASM and AT&T
    syntax, or by utilizing NASM's built-in output capabilities to generate
    GAS-compatible objects.
    
    $ intel2gas -i input.asm -o output.s

These generated/converted .S files should be stored alongside the original .asm files in Git.  If NASM is available the originals can be compiled, but in the common case where NASM is not available the .S files would be compiled and linked into the kernel modules.

I think it is worthwhile to keep both, since it would be easier to update the .asm files from upstream ISA-L, but it might be some time before the .S files are update to match.
reply PS1 2026-03-29 08:52 Andreas Dilger COMMIT_MSG:26 — Are these bugs in the upstream ISA-L code that should be pushed back to them?
Andreas Dilger PS1 · 2026-03-29 08:52
Are these bugs in the upstream ISA-L code that should be pushed back to them?
reply PS1 2026-03-29 08:52 Andreas Dilger COMMIT_MSG:28 — Similarly, is this code from upstream ISA-L, or a test wrapper that we developed?
Andreas Dilger PS1 · 2026-03-29 08:52
Similarly, is this code from upstream ISA-L, or a test wrapper that we developed?
reply PS3 2026-04-06 21:18 Andreas Dilger COMMIT_MSG:7 — This should probably use LU-19905, or change the description of LU-20016?
Andreas Dilger PS3 · 2026-04-06 21:18
This should probably use LU-19905, or change the description of LU-20016?
reply PS3 2026-05-13 00:10 Andreas Dilger COMMIT_MSG:71 — This table is the same between the x86 and aarch64 patches. It would be useful to fix one or the other to have the correct data for that CP
Andreas Dilger PS3 · 2026-05-13 00:10
This table is the same between the x86 and aarch64 patches.  It would be useful to fix one or the other to have the correct data for that CPU architecture.
reply PS1 2026-03-29 08:52 Andreas Dilger lustre-erasurecode.m4:23 — (minor) this should have a warning that the C version may only be 1/20-1/30th as fast, at least until the .S versions are available.
Andreas Dilger PS1 · 2026-03-29 08:52
(minor) this should have a warning that the C version may only be 1/20-1/30th as fast, at least until the .S versions are available.
reply PS3 2026-04-06 21:18 Andreas Dilger ec_aarch64_neon.c:17 — (minor) It would be better to specify which kernel version is non-functional, so that this can become conditional upon a newer kernel (assum
Andreas Dilger PS3 · 2026-04-06 21:18
(minor) It would be better to specify which kernel version is non-functional, so that this can become conditional upon a newer kernel (assuming there is a benefit to use SVE-optimized versions).
reply PS3 2026-04-06 21:18 Andreas Dilger ec_aarch64_neon.c:20 — (minor) Again, please specify kernel versions so that this can be fixed in the future for newer kernel versions.
Andreas Dilger PS3 · 2026-04-06 21:18
(minor) Again, please specify kernel versions so that this can be fixed in the future for newer kernel versions.
reply PS3 2026-04-06 21:18 Andreas Dilger ec_aarch64_neon.c:31 — (style) `bool`?
Andreas Dilger PS3 · 2026-04-06 21:18
(style) `bool`?
reply PS3 2026-04-06 21:18 Andreas Dilger ec_aarch64_neon.c:34 — These warnings are correct and the prototypes should be moved to a .h file that is included here and into the file where these functions are
wc-checkpatch PS3 · 2026-03-27 13:45
(style)  externs should be avoided in .c files
Andreas Dilger PS3 · 2026-04-06 21:18
These warnings are correct and the prototypes should be moved to a .h file that is included here and into the file where these functions are implemented.  Having the function prototype in a local .c file prevents the compiler from checking argument type/count against the implementation, and can result in hard-to-find bugs in the future.
reply PS3 2026-04-06 21:18 Andreas Dilger ec_aarch64_neon.c:87 — (defect?) According to the comments for `kernel_neon_begin()`:
Andreas Dilger PS3 · 2026-04-06 21:18
(defect?) According to the comments for `kernel_neon_begin()`:
```
 * Unless called from non-preemptible task context, @state must point to a
 * caller provided buffer that will be used to preserve the task's kernel mode
 * FPSIMD context when it is scheduled out, or if it is interrupted by kernel
 * mode FPSIMD occurring in softirq context. May be %NULL otherwise.
 */
void kernel_neon_begin(struct user_fpsimd_state *state)
```
I'm thinking that this would be declared on the stack in e.g. `gf_vect_dot_prod()` and passed to `ec_neon_usable()->kernel_neon_begin()` so that it can also be passed (as required) to `kernel_neon_end()`:
```
 * The value of @state must match the value passed to the preceding call to     
 * kernel_neon_begin().
 */
void kernel_neon_end(struct user_fpsimd_state *state)
```

The `struct user_fpsimd_state` is 528 bytes, so a _bit_ heavy to put on the stack, but at the same time this is (very likely) to be on a PAGE_SIZE=64KiB system so stack space should be available for this, and it will not have a deep call chain below this point.  I think doing a `kmalloc()` and `kfree()` for each call would add noticeable overhead and should be avoided it possible.  Alternatives would include having a dedicated slab for this, so that there is a per-CPU cache (528 does not fit into standard slabs well) and it likely has local allocations objects cached in the slab.
reply PS3 2026-04-06 21:18 Andreas Dilger ec_aarch64_neon.c:165 — (style) should this be changed to `rows >= 6` and remove the `case 6:` in the switch, as is done in `ec_encode_data_neon()` above?
Andreas Dilger PS3 · 2026-04-06 21:18
(style) should this be changed to `rows >= 6` and remove the `case 6:` in the switch, as is done in `ec_encode_data_neon()` above?
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 145d ago · NEW · open in Gerrit ↗
commit message
LU-20016 ec: ISA-L SIMD for userspace and kernel

Integrate Intel ISA-L optimized assembly into Lustre's
erasure coding library for both userspace and kernel,
on x86_64 and aarch64. Add debugfs kernel benchmark
for measuring FPU save/restore overhead.

Userspace x86_64 (libec.a):
- 72 NASM assembly files (SSE/AVX/AVX2/AVX-512/GFNI)
- ec_multibinary.asm: runtime CPUID dispatch
- ec_highlevel_func.c: N-vector dispatch layer
- Falls back to C scalar when NASM unavailable

Userspace aarch64 (libec.a):
- NEON + SVE .S assembly + SVE C intrinsics
- ec_aarch64_dispatcher.c: getauxval() dispatch
- ec_aarch64_highlevel_func.c: N-vector dispatch

Kernel x86_64 (ec.ko):
- Pre-assemble ISA-L NASM .asm files into .o,
  link into ec.ko (71 assembly objects)
- ec_dispatch.c: boot_cpu_has() selects AVX2/AVX/SSE
  at module init, kernel_fpu_begin/end wrapping
- ec_highlevel_func.c: N-vector dispatch layer
- Falls back to C scalar in interrupt context

Kernel aarch64 (ec.ko):
- NEON .S assembly files (GAS format, direct kbuild)
- ec_aarch64_neon.c: kernel_neon_begin/end wrapping
  with may_use_simd() check, hwcap detection
- SVE excluded from kernel (toolchain portability)

Build system:
- lustre-erasurecode.m4: detect NASM, aarch64
- erasurecode/autoMakefile.am: three-way dispatch
- utils/Makefile.am: link against libec.a
- ec/Makefile.in: NASM pre-assembly for kernel

Bug fixes in ec_perf_bench.c:
- -p flag was setting k instead of p
- frag_ptrs allocated stripe_size pointers not m
- Inverted exit code and stale rc from getopt
- Use aligned_alloc(64) for data buffers

Kernel benchmark (debugfs):
- /sys/kernel/debug/lustre/ec/benchmark
- 4 phases: FPU overhead, SIMD+FPU per-call,
  SIMD+FPU amortized, C scalar baseline
- Input format (write to debugfs entry):
    echo 1 > .../ec/benchmark        (defaults)
    echo "k=5 p=2 s=128" > .../ec/benchmark
    cat .../ec/benchmark
  Parameters (key=value, space separated):
    k  data stripes     (default 5, max k+p=16)
    p  parity stripes   (default 2)
    s  stripe size in KB (default 128, max 65536)
  "echo 1" runs with all defaults. Unrecognized
  input returns -EINVAL. cat shows results or
  usage instructions if not yet run.

Fix gf_vect_mul_init naming to use _base suffix
consistently (aligns with ISA-L convention) in
both userspace and kernel ec_base.c.

Performance (5+2, 1 thread, QEMU VM, AVX2):

Stripe | Kernel  | Kernel  | Userspace | SIMD     | Kernel vs
Size   | SIMD    | Scalar  | SIMD      | Speedup  | Userspace
       |         |         |           | in Kernel|
-------|---------|---------|-----------|----------|----------
 64 KB | 17099   | 540     | 404345*   | 31.7x    | 0.04x*
128 KB | 16888   | 531     | 197511*   | 31.8x    | 0.09x*
256 KB | 17032   | 539     | 98401*    | 31.6x    | 0.17x*
  1 MB | 17142   | 538     | 24830     | 31.9x    | 0.69x
  4 MB | 10309   | 533     | 5385      | 19.3x    | 1.91x
 16 MB | 10954   | 534     | 1048      | 20.5x    | 10.5x

All throughput in MB/s. (*) Userspace numbers at
small stripes are inflated by cache residency.
At 4-16MB the kernel is faster -- its kvmalloc
pages are physically scattered, matching real
Lustre page cache behavior. Replicating this in
userspace is non-trivial and not worth the effort;
the kernel benchmark is authoritative.

FPU save/restore overhead was measured at 25-54 ns
on this platform (Ryzen 3700X) -- negligible vs
encode time (~39us at 128KB). The benchmark
measures this separately (Phase 1) so it can be
characterized on other hardware where it may be
more significant.

Generated with Claude Code + Tools

Test-Parameters: testlist=sanity-ec
Change-Id: If4c57c328c0e23bb6769dcbc45d52d43b03a7837
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
64938 master J !B ✗T –R 0/2
LU-20016 ec: kernel SIMD, aarch64 support, benchmark
build failure (#122956)
1 unresolved XL +14347 −20
98d
build failure (#122956)
1 unresolved thread(s) await your reply — last from Andreas Dilger
janitor run: build failed — no tests ran — janitor results
build #122956 FAILURE
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-05-13 00:17 Andreas Dilger COMMIT_MSG:7 — This should use LU-19905.
Andreas Dilger PS1 · 2026-05-13 00:17
This should use LU-19905.
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 145d ago · NEW · open in Gerrit ↗
commit message
LU-20016 ec: kernel SIMD, aarch64 support, benchmark

Add kernel-space SIMD erasure coding via ISA-L's
proven NASM assembly (pre-assembled at build time)
and aarch64 NEON assembly. Add debugfs benchmark
for measuring FPU save/restore overhead.

Kernel x86_64 (ec.ko):
- Pre-assemble ISA-L NASM .asm files into .o,
  link into ec.ko (71 assembly objects)
- ec_dispatch.c: boot_cpu_has() selects AVX2/AVX/SSE
  at module init, kernel_fpu_begin/end wrapping
- ec_highlevel_func.c: N-vector dispatch layer
- Falls back to C scalar in interrupt context

Kernel aarch64 (ec.ko):
- NEON .S assembly files (GAS format, direct kbuild)
- ec_aarch64_neon.c: kernel_neon_begin/end wrapping
  with may_use_simd() check, hwcap detection
- SVE excluded from kernel (toolchain portability)

Userspace aarch64 (libec.a):
- NEON + SVE .S assembly + SVE C intrinsics
- ec_aarch64_dispatcher.c: getauxval() dispatch
- ec_aarch64_highlevel_func.c: N-vector dispatch

Kernel benchmark (debugfs):
- /sys/kernel/debug/lustre/ec/benchmark
- 4 phases: FPU overhead, SIMD+FPU per-call,
  SIMD+FPU amortized, C scalar baseline
- Input format (write to debugfs entry):
    echo 1 > .../ec/benchmark        (defaults)
    echo "k=5 p=2 s=128" > .../ec/benchmark
    cat .../ec/benchmark
  Parameters (key=value, space separated):
    k  data stripes     (default 5, max k+p=16)
    p  parity stripes   (default 2)
    s  stripe size in KB (default 128, max 65536)
  "echo 1" runs with all defaults. Unrecognized
  input returns -EINVAL. cat shows results or
  usage instructions if not yet run.

Performance (5+2, 1 thread, QEMU VM, AVX2):

Stripe | Kernel  | Kernel  | Userspace | SIMD     | Kernel vs
Size   | SIMD    | Scalar  | SIMD      | Speedup  | Userspace
       |         |         |           | in Kernel|
-------|---------|---------|-----------|----------|----------
 64 KB | 17099   | 540     | 404345*   | 31.7x    | 0.04x*
128 KB | 16888   | 531     | 197511*   | 31.8x    | 0.09x*
256 KB | 17032   | 539     | 98401*    | 31.6x    | 0.17x*
  1 MB | 17142   | 538     | 24830     | 31.9x    | 0.69x
  4 MB | 10309   | 533     | 5385      | 19.3x    | 1.91x
 16 MB | 10954   | 534     | 1048      | 20.5x    | 10.5x

All throughput in MB/s. (*) Userspace numbers at
small stripes are inflated by cache residency.
At 4-16MB the kernel is faster -- its kvmalloc
pages are physically scattered, matching real
Lustre page cache behavior. Replicating this in
userspace is non-trivial and not worth the effort;
the kernel benchmark is authoritative.

FPU save/restore overhead was measured at 25-54 ns
on this platform (Ryzen 3700X) -- negligible vs
encode time (~39us at 128KB). The benchmark
measures this separately (Phase 1) so it can be
characterized on other hardware where it may be
more significant.

Generated with Claude Code + Tools

Test-Parameters: testlist=sanity-ec
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Id37586461376ab266c61ed541473279f83c790ff
63198 master J –B ✗T –R 0/2−
LU-19744 doc: bulk man page review
needs rebase — checkpatch: cannot be cherry-picked
stalled 100d L +309 −281
100d
needs rebase — checkpatch: cannot be cherry-picked
build failure (#120070)
build #120070 FAILURE
patchsets: PS1 12-29 PS2 12-29
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 233d ago · NEW · open in Gerrit ↗
commit message
LU-19744 doc: bulk man page review

Bulk review done by Augment and Claude Code.

Completed systematic review of Section 3 library function
man pages (llapi_*), fixing grammar, formatting, function
signature errors, and SEE ALSO ordering throughout all
123 pages.

Major sections reviewed:
- Changelog API (8 pages)
- File Operations (13 pages)
- Filesystem Info (9 pages)
- Locking (2 pages)
- Heat/IO Hints (3 pages)
- HSM (11 pages)
- Layout API (30 pages)
- Misc API (8 pages)
- PCC (12 pages)
- Project Quota (8 pages)
- Quota (1 page)
- Remove by FID (2 pages)
- Search/Discovery (6 pages)
- Foreign Files (1 page)

Critical signature fixes found during careful review:

PCC (Persistent Client Cache):
- llapi_pcc_detach_fid_fd.3: removed documentation for
  non-existent llapi_pcc_detach_fid_fd() function
- llapi_pccdev_get.3: fixed parameter name (path->mntpath)
- llapi_pccdev_set.3: fixed parameter name (path->mntpath)

Project Quota:
- llapi_project_fgetprjid.3: added missing 'struct' keyword
- llapi_project_get.3: added missing 'struct' keyword
- llapi_project_getprjid.3: fixed parameter type
  (const unsigned int->__u32)
- llapi_project_open.3: fixed double pointer (*hdl->**hdl)
- llapi_project_put.3: added missing 'struct' keyword

Search/Discovery:
- llapi_root_path_open.3: fixed parameter name (fd->outfd)
- llapi_search_rootpath.3: added missing semicolons
- llapi_search_tgt.3: fixed parameter names
  (pool_name->poolname, tgt_name->tgtname/mdtname/ostname)

Foreign Files:
- llapi_unlink_foreign.3: fixed parameter name (name->dname)

Other improvements:
- Fixed grammar, capitalization, and formatting throughout
- Corrected function parameter types and names
- Fixed missing error codes in ERRORS sections
- Improved consistency in RETURN VALUES sections
- Fixed typos and awkward phrasing
- Sorted SEE ALSO sections alphabetically (31 files)

All signature changes verified against source code in
lustre/utils/liblustreapi*.c and
lustre/include/lustre/lustreapi.h

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I643e4b2ad2d00b5ebf58d4136d1524bd92b7cb5d
62868 master J ✗1B ✗T –R 0/2−
LU-12187 llite: enable FLR EC support unconditionally
needs rebase — checkpatch: cannot be cherry-picked
1 unique failure ec2 pt_ecro stalled 100d S +5 −26
100d
needs rebase — checkpatch: cannot be cherry-picked
build failure (#119174)
janitor: 1 test failure unique to this patch — recovery-small@zfs:test_155
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
build #119174 FAILURE
no vote yet: Marc Vef
tags: pt_ecro
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 259d ago · NEW · open in Gerrit ↗
commit message
LU-12187 llite: enable FLR EC support unconditionally

Remove module parameter guards and enable FLR EC support
unconditionally. This patch is intended to be applied
after the guarded development phase is complete.

Changes:
- Remove mdt_enable_flr_ec module parameter
- Remove llite_enable_flr_ec module parameter
- Add OBD_CONNECT2_FLR_EC unconditionally to client
  connect flags
- Change ll_enable_erasure_coding default from 0 to 1
- Remove MODOPTS_MDT and MODOPTS_LLITE settings from
  test framework

Test-Parameters: ignore
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I431d309f85c8964e13a11eaaa729d944e9228c29
62489 master J ✓B ✓T ✗3R 0/2−
LU-19566 tests: test EC with lfsck
needs rebase — checkpatch: cannot be cherry-picked
ec2 pt_ecro stalled 100d M +133 −0
100d
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-subtest-change, review-dne-zfs-subtest-change, review-ldiskfs-dne-arm
Marc Vef voted -1
failed enforced testplatformdetail
review-dne-subtest-change crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity-lfsck. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-subtest-change crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity-lfsck. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-dne-arm RHEL 8.10 / x86_64, Rocky 9.5 / aarch64 ran 5 tests. 1 tests failed: sanity-lnet. session
build #123110 SUCCESS · tests all Maloo sessions
reviews: Marc Vef -1 2026-04-02 10:19
patchsets: PS1 11-11 PS2 11-11 PS3 03-30 Marc Vef
your previous vote: -1 on PS2 (2025-11-11 21:52) — now at PS3
tags: pt_ecro
owner Patrick Farrell · uploader Marc Vef · PS3 uploaded 142d ago · NEW · open in Gerrit ↗
commit message
LU-19566 tests: test EC with lfsck

EC parity mirror components do not contain regular
file data, so it's essential they be recognized as
parity components after an lfsck repair.

This test verifies this functionality.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I0384d7676043cc23f52da7df41385dc61809114a
62389 master J !B ✓T ✗2R 0/2−
LU-19566 lustre: add layout flags to lfsck
needs rebase — checkpatch: cannot be cherry-picked
ec2 pt_ecro stalled 100d 19 unresolved L +458 −98
100d
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-part-3
Marc Vef voted -1
19 unresolved thread(s) await your reply — last from Andreas Dilger
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
6 optional test failure(s) — informational
build #123276 SUCCESS · tests all Maloo sessions
reviews: Marc Vef -1 2026-04-02 10:21
no vote yet: Lai Siyao, Andreas Dilger
patchsets:
+9 earlier PS1 11-05 PS2 11-05 PS3 11-06 PS4 11-07 PS5 11-07 PS6 11-07 PS7 11-08 PS8 11-08 PS9 11-09
PS10 11-11 PS11 11-11 PS12 11-26 PS13 03-30 Marc Vef PS14 03-30 Marc Vef
your previous vote: -1 on PS3 (2025-11-06 23:41) — now at PS14
threads: 19 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS14 2026-04-24 20:42 Andreas Dilger COMMIT_MSG:23 — (typo) field is actually named `ff_comp_flags`
Andreas Dilger PS14 · 2026-04-24 20:42
(typo) field is actually named `ff_comp_flags`
reply PS14 2026-04-24 20:42 Andreas Dilger lustre_fid.h:335 — (style) rather than duplicating this code each time, it should just incrementally decode the new parts:
Andreas Dilger PS14 · 2026-04-24 20:42
(style) rather than duplicating this code each time, it should just incrementally decode the new parts:
```
        } else /* if (size >= sizeof(struct filter_fid_217) */ {
                struct filter_fid_217 *ff_old = (struct filter_fid_217 *)dst;

                ost_layout_cpu_to_le(&ff_old->ff_layout, &src->ff_layout);
                ff_old->ff_layout_version = cpu_to_le32(src->ff_layout_version);
                ff_old->ff_range = cpu_to_le32(src->ff_range);
        }
        if (size >= offsetof(dst->ff_comp_flags) + sizeof(dst->ff_comp_flags)) {
		dst->ff_comp_flags = cpu_to_le32(src->ff_comp_flags);
	}
```
reply PS14 2026-04-24 20:42 Andreas Dilger lustre_fid.h:363 — (style) same as above - process each chunk incrementally instead of duplicating code
Andreas Dilger PS14 · 2026-04-24 20:42
(style) same as above - process each chunk incrementally instead of duplicating code
reply PS14 2026-04-24 20:42 Andreas Dilger lustre_idl.h:3303 — (defect) this comment should not be removed
Andreas Dilger PS14 · 2026-04-24 20:42
(defect) this comment should not be removed
reply PS14 2026-04-24 20:42 Andreas Dilger lustre_idl.h:3295 — Oh, hmm. There was another patch looking to use one of the uid_h fields:
Andreas Dilger PS14 · 2026-04-24 20:42
Oh, hmm.  There was another patch looking to use one of the uid_h fields:
https://review.whamcloud.com/64468 ("LU-18847 mdt: version layout checking")

but it is using the `cr_fsuid_h` field in `struct mdt_rec_create`, so this should be fine.

(style) better to use `enum lov_comp_md_entry_flags` to make it more clear which "flags" these are, and they can be found more easily.  The wirecheck.c code will ensure that the enum size remains consistent.
reply PS14 2026-04-24 20:42 Andreas Dilger lustre_user.h:444 — (minor) I think this is a misnomer to write "for filter_fid", since it is primarily used for components. Maybe `layout flags for components
Andreas Dilger PS14 · 2026-04-24 20:42
(minor) I think this is a misnomer to write "for filter_fid", since it is primarily used for components.  Maybe `layout flags for components and filter_fid`?
reply PS14 2026-04-24 20:42 Andreas Dilger ofd_objects.c:564 — (style) this shouldn't be in the comment here, as it will invariably become outdated in the future
Andreas Dilger PS14 · 2026-04-24 20:42
(style) this shouldn't be in the comment here, as it will invariably become outdated in the future
reply PS14 2026-04-24 20:42 Andreas Dilger ofd_objects.c:662 — (style) should there be a helper function for this, like:
Andreas Dilger PS14 · 2026-04-24 20:42
(style) should there be a helper function for this, like:
```
/* return minimum size of in-use filter_fid to maximize interop with old tools */
size_t filter_fid_sizeof(struct filter_fid *ff)
{
        BUILD_BUG_ON(sizeof(*ff) >
                     sizeof(struct filter_fid_217) + sizeof(ff->ff_comp_flags));
        /* duplicate next chunk when new fields are added to filter_fid */
        /* if (!ff->ff_new_field && ff->ff_previous_last_field)
                return sizeof(struct filter_fid_next); */
        if (!ff->ff_comp_flags /* && ff->ff_layout_version */)
                return sizeof(struct filter_fid_217);
        return sizeof(*ff);
}
```
reply PS14 2026-04-24 20:42 Andreas Dilger ofd_objects.c:854 — (minor) `ff_size = filter_fid_sizeof(ff);`
Andreas Dilger PS14 · 2026-04-24 20:42
(minor) `ff_size = filter_fid_sizeof(ff);`
reply PS14 2026-04-24 20:42 Andreas Dilger ofd_objects.c:880 — (minor) `ff_size = filter_fid_sizeof(ff);`
Andreas Dilger PS14 · 2026-04-24 20:42
(minor) `ff_size = filter_fid_sizeof(ff);`
reply PS14 2026-04-24 20:42 Andreas Dilger pack_generic.c:2843 — (minor) It isn't clear if there is any value to printing this field, especially *always* printing it (maybe vs. only printing it if it is no
Andreas Dilger PS14 · 2026-04-24 20:42
(minor) It isn't clear if there is any value to printing this field, especially *always* printing it (maybe vs. only printing it if it is non-zero for some reason)
reply PS14 2026-04-24 20:42 Andreas Dilger sanity-lfsck.sh:6507 — (minor) update to 2.17.52.52 at least
wc-checkpatch PS14 · 2026-03-30 13:49
(style)  'version_code 2.17' may be misspelled - perhaps 'version 2.16.x should be used'?
Andreas Dilger PS14 · 2026-04-24 20:42
(minor) update to 2.17.52.52 at least
tags: pt_ecro
owner Patrick Farrell · uploader Marc Vef · PS14 uploaded 142d ago · NEW · open in Gerrit ↗
commit message
LU-19566 lustre: add layout flags to lfsck

EC parity mirror components do not contain regular
file data, so it's essential they be recognized as
parity components after an lfsck repair.

They are distinguished by a component flag, so we
must add component flag support to lfsck.

This support can be landed without the rest of EC
support, so this is based on master.  There is a
test for lfsck + EC in:
https://review.whamcloud.com/c/62489

Details:
Extended struct filter_fid from 52 to 56 bytes by
adding __u32 ff_flags field to store component flags
(like LCME_FL_INIT, LCME_FL_PARITY) in OST objects.

Created versioned structure (filter_fid_217) for
backward compatibility with old 52-byte filter_fid.

Modified lu_orphan_rec_v3 to add lor_comp_flags
field (replacing lor_padding_1) to store component
flags from filter_fid. This allows LFSCK to preserve
component flags during reconstruction.

Extended wire protocol by adding o_comp_flags field
to struct obdo (replacing o_padding_4) and added
OBD_MD_FLCOMPFLAGS flag to indicate when component
flags are valid in the obdo.

Updated client to set o_comp_flags in the obdo.

Modified OFD to read o_comp_flags from obdo and
store it in ff_flags during writes, setattr, punch,
and fallocate operations.

Updated LFSCK to read ff_flags from filter_fid and
restore component flags when reconstructing layouts
from orphan OST objects.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I716dbf24db48cc50385a2fa9bcc446d291380814
45963 master J !B ✓T ✗1R 1/2−
LU-15069 llite: Clean up bit shift for assert
needs rebase — checkpatch: cannot be cherry-picked
stalled 123d S +6 −7
123d
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-part-4
janitor run: 4 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-4 CentOS 8.3/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
build #85372 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2022-01-05 06:03
no vote yet: James Simmons
patchsets: PS1 01-04 PS2 01-04
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 1688d ago · NEW · open in Gerrit ↗
commit message
LU-15069 llite: Clean up bit shift for assert

There is a bizarre comment which says we're not converting
pages to bytes yet to save cost in checking an assert, but
we do that conversion immediately after the assert *and*
it requires doing a similar shift in the assert.

This is quite strange - clean it up.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Id2bb4e6910276537d807828a9a33439dea054c3b
65227 master J !B ✓T ✗1R 0/2
LU-20112 tests: verify drop_caches evicts client cache pages
enforced failed: review-ldiskfs-dne-arm
stalled 130d S +41 −0
130d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-dne-arm RHEL 8.10 / x86_64, Rocky 9.5 / aarch64 ran 5 tests. 1 tests failed: sanity. session
build #123740 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 130d ago · NEW · open in Gerrit ↗
commit message
LU-20112 tests: verify drop_caches evicts client cache pages

Add sanity test_101k that verifies drop_caches actually evicts
Lustre client page cache pages once any in-flight bulk RPC pin
has been released.

Read pages reap their bulk pin immediately on RPC completion.
Write pages keep the pin until the OST commits, so the test
forces a commit via dd conv=fsync. Both paths assert the
post-drop read shows ost_read activity (cache miss).

Note: global sync(2) does NOT drain Lustre's bulk pins -- only
fsync(fd) does, because only fsync goes through ll_fsync ->
OST_SYNC. cancel_lru_locks osc also drains the pins by
canceling the DLM extent locks, which is what the read path
in this test uses.

Generated with Claude Code + Tools

Test-Parameters: testlist=sanity env=ONLY=101k
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Iafa8f5986fed38d98964a3ebea929e0b412a8e49
58977 master J !B ✗T –R 1/2−
LU-16488 utils: fix help message for 'lctl interface_list'
needs rebase — checkpatch: cannot be cherry-picked
stalled 131d S +21 −22
131d
needs rebase — checkpatch: cannot be cherry-picked
build failure (#113047)
janitor run: build failed — no tests ran — janitor results
build #113047 FAILURE
reviews: Andreas Dilger +1 2025-05-02 23:00
patchsets: PS1 04-25 PS2 05-02 Andreas Dilger
owner Patrick Farrell · uploader Andreas Dilger · PS2 uploaded 473d ago · NEW · open in Gerrit ↗
commit message
LU-16488 utils: fix help message for 'lctl interface_list'

The help message for 'lctl interface_list' command was incorrect.
It was saying:
"You must run 'interface_list <network>' command before 'network'"

But the correct syntax is:
"lctl --net tcp0 interface_list"

This patch updates the help message in lctl.c and the man page to
reflect the correct usage. It also updates the error message in
portals.c to be more accurate.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I7be1c0189d4177ce0c6ed67d77c98ab723684191
64588 master J ✗1B ✗T –R 0/2−
LU-19989 llite: add FLR IWM connect flag and switches
needs rebase — checkpatch: cannot be cherry-picked
1 unique failure stalled 141d 1 unresolved M +111 −12
141d
needs rebase — checkpatch: cannot be cherry-picked
build failure (#122567)
janitor: 1 test failure unique to this patch — recovery-small@ldiskfs+DNE:test_131
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@ldiskfs+DNE:test_131seen in 64 other reviews
build #122567 FAILURE
patchsets: PS1 03-15 PS2 03-15 PS3 03-15 PS4 03-15
your previous vote: -1 on PS1 (2026-03-15 17:44) — now at PS4
threads: 0 need your reply · 0 waiting on others · 1 own notes · 0 bot
note PS1 2026-03-15 17:44 Patrick Farrell mdt_mds.c:99 — Also we should have a trap set before the 2.18 release to check if we should remove these parameters, as discussed
Patrick Farrell PS1 · 2026-03-15 17:44
Ah, interesting.

We have a mistake here - twice.  Or maybe four times, have to check llite.

These parameters should all be defaulting to disabled.
Patrick Farrell PS1 · 2026-03-15 17:44
Also we should have a trap set before the 2.18 release to check if we should remove these parameters, as discussed
owner Patrick Farrell · uploader Patrick Farrell · PS4 uploaded 157d ago · NEW · open in Gerrit ↗
commit message
LU-19989 llite: add FLR IWM connect flag and switches

Add OBD_CONNECT2_FLR_IMMED_MIRROR connect flag support,
LCME_FL_IMMEDIATE layout flag, and enable_immediate_mirror
parameter to control immediate write mirror layouts.

Add module parameters to gate presentation of connection
flag.

Define LCME_FL_IMMEDIATE (0x800) and add it to
LCME_KNOWN_FLAGS, LCME_USER_COMP_FLAGS,
LCME_CL_COMP_FLAGS, and LCME_TEMPLATE_FLAGS.
LCME_FL_IMMEDIATE and LCME_FL_PARITY are mutually
exclusive.

Generated with Claude Code + Tools

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I173c890d899a52cd57719cc89cc0629e54c86e51
64591 master J ✗2B ✓T ✗9R 0/2
LU-19991 llapi: immediate mirror layout support
janitor: 2 test failures unique to this patch — sanity1@zfs:test_27D, sanity-lfsck@ldiskfs+DNE:test_45
2 unique failures stalled 154d 3 unresolved L +825 −1
154d
janitor: 2 test failures unique to this patch — sanity1@zfs:test_27D, sanity-lfsck@ldiskfs+DNE:test_45
enforced failed: review-dne-part-1, review-dne-part-4, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-ubuntu
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@zfs:test_27Dseen in 80 other reviews
sanity-lfsck@ldiskfs+DNE:test_45seen in 14 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
12 optional test failure(s) — informational
build #122568 SUCCESS · tests all Maloo sessions
patchsets: PS1 03-15 PS2 03-15 PS3 03-15 PS4 03-15 PS5 03-15
threads: 0 need your reply · 0 waiting on others · 3 own notes · 0 bot
note PS5 2026-03-17 22:17 Patrick Farrell pack_generic.c:2461 — [Sashiko] The label "lcme_flags:" is used on the line above to print the hex flags value. The new line reuses the same label for an "immedia
Patrick Farrell PS5 · 2026-03-17 22:17
[Sashiko] The label "lcme_flags:" is used on the line above to print the hex flags value. The new line reuses the same label for an "immediate mirror" string, so two consecutive log lines with that label would have different types of content. Would something like "lcme_immediate:" be clearer?
note PS5 2026-03-17 22:17 Patrick Farrell llapi_layout_test.c — [Sashiko] test40: The third argument to llapi_layout_sanity() is the flr flag. With flr=false, the sanity callback checks flags against the
Patrick Farrell PS5 · 2026-03-17 22:17
[Sashiko] test40: The third argument to llapi_layout_sanity() is the flr flag. With flr=false, the sanity callback checks flags against the non-FLR allowed set, which does not include LCME_FL_IMMEDIATE. So the call returns LSE_FLAGS rather than LSE_IMMEDIATE_MIRROR_COUNT. The assertion rc != 0 passes, but the path the test description describes -- "immediate needs >= 2 mirrors" -- is never reached. Would passing flr=true and asserting rc == LSE_IMMEDIATE_MIRROR_COUNT better match the stated intent?
note PS5 2026-03-17 22:17 Patrick Farrell liblustreapi_layout.c — [Sashiko] llapi_layout_comp_flags_set() enforces that LCME_FL_IMMEDIATE and LCME_FL_PARITY are mutually exclusive, but the sanity callback d
Patrick Farrell PS5 · 2026-03-17 22:17
[Sashiko] llapi_layout_comp_flags_set() enforces that LCME_FL_IMMEDIATE and LCME_FL_PARITY are mutually exclusive, but the sanity callback doesn't appear to check that combination independently. In the FLR case (lsa_flr=true), both flags are in LCME_USER_COMP_FLAGS and would pass the flags validation. Can a layout with both LCME_FL_IMMEDIATE and LCME_FL_PARITY on the same component pass llapi_layout_sanity() without error -- for example, one read back via llapi_layout_get_by_fd()?
owner Patrick Farrell · uploader Patrick Farrell · PS5 uploaded 157d ago · NEW · open in Gerrit ↗
commit message
LU-19991 llapi: immediate mirror layout support

Add LCME_FL_IMMEDIATE kernel helpers, llapi validation,
and layout passthrough support.

Add lsme_is_immediate() and lsm_entry_is_immediate()
helpers in lov_internal.h. Add debug print for
LCME_FL_IMMEDIATE in pack_generic.c.

Add LCME_FL_IMMEDIATE + LCME_FL_PARITY mutual exclusion
validation, >= 2 mirror requirement, and per-mirror
all-or-nothing enforcement in liblustreapi_layout.c
sanity checks. Fix llapi_layout_set_by_fd to pass
correct FLR flag to sanity check.

Add llapi_layout_test cases: flag round-trip (test38),
mutual exclusion (test39), mirror count validation
(test40), kernel setstripe/getstripe round-trip
(test41), directory default layout inheritance
(test42), multi-component mirror flag consistency
(test43), re-open by path (test44), flag clearing
(test45), both-mirrors IMMEDIATE (test46), 3-mirror
isolation (test47), partial IMMEDIATE rejection
(test48).

Generated with Claude Code + Tools

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I42f17a6bba89c6c5c1f1a3e9d71ab3a0fb7c7f1e
63164 master J !B ✓T ✓R 1/2−
LU-930 doc: man page improvements
needs rebase — checkpatch: cannot be cherry-picked
stalled 162d 3 unresolved L +249 −146
162d
needs rebase — checkpatch: cannot be cherry-picked
3 unresolved thread(s) await your reply — last from Andreas Dilger
no vote yet from Marc Vef
janitor run: 1 failing config(s), none unique to this patch — janitor results
build #120257 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2026-01-10 01:09
no vote yet: Marc Vef
patchsets: PS1 12-24 PS2 01-09 Marc Vef PS3 01-10 Andreas Dilger
threads: 3 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-01-10 01:05 Andreas Dilger COMMIT_MSG:7 — ```suggestion
Marc Vef PS1 · 2026-01-09 11:02
(defect) This should use a proper LU number
Andreas Dilger PS1 · 2026-01-10 01:05
```suggestion
LU-930 doc: man page improvements
```

Could just use the default "man page improvement" ticket...
reply PS3 2026-01-12 08:40 Marc Vef patchset comment — The other patch indeed has similar changes as this one (and the same issues around nodemap_add vs. nodemap_new). Since I already fixed that
Andreas Dilger PS3 · 2026-01-10 01:13
It looks like there are patches under LU-19744 that are conflicting with this one.  It might be that this "LU-0000" patch was intended as a test, but should have been marked with "fortestonly" or "ignore" to avoid attention...
Marc Vef PS3 · 2026-01-12 08:40
The other patch indeed has similar changes as this one (and the same issues around nodemap_add vs. nodemap_new). Since I already fixed that here, it may make sense to fold the changes here into the other patch. Either way, this patch looks good.

Let's see what Patrick says.
reply PS1 2025-12-24 12:31 Andreas Dilger lctl.8:386 — Rather than adding sub-commands to lctl, it is better to add a separate manage for it. That allows proper formatting, subsections, examples
Andreas Dilger PS1 · 2025-12-24 12:31
Rather than adding sub-commands to lctl, it is better to add a separate manage for it.  That allows proper formatting, subsections, examples, etc.
owner Patrick Farrell · uploader Andreas Dilger · PS3 uploaded 221d ago · NEW · open in Gerrit ↗
commit message
LU-930 doc: man page improvements

Various man page improvements - adding missing
commands and options, fixing typos, fixing
format issues, etc.

Includes one trivial fix to lctl.c.

Focuses on man8.

This code was generated by Augment.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I222ea824b25b0a3104dc4a8bc8f56c10449045e4
57426 master J !B ✓T ✗3R 0/2−
LU-18553 llite: ensure layout refresh on fast read
needs rebase — checkpatch: cannot be cherry-picked
stalled 162d 1 unresolved M +47 −15
162d
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-ubuntu
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.3 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
2 optional test failure(s) — informational
build #109666 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Shaun Tancheff, Andreas Dilger, Alex Zhuravlev, Zhenyu Xu
patchsets: PS1 12-13 PS2 12-13 PS3 12-13
threads: 0 need your reply · 0 waiting on others · 1 own notes · 0 bot
note PS3 2024-12-13 18:24 Patrick Farrell rw.c:2019 — And look, we can finally get rid of this terrifying (and correct!) TODO ....... eek
Patrick Farrell PS3 · 2024-12-13 18:24
And look, we can finally get rid of this terrifying (and correct!) TODO ....... eek
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 614d ago · NEW · open in Gerrit ↗
commit message
LU-18553 llite: ensure layout refresh on fast read

It is essential to refresh the layout before doing a fast
read, otherwise we could read stale data if the layout has
changed and, eg, the mirror our data is from is now stale.

Today, we do this refresh incidentally in
file_read_confine_iter->cl_io_init->vvp_io_init, but this
is obviously fragile to future changes, since it's not
directly associated with the fast read path.

Add dedicated code in the fast read path to refresh the
layout.

Also opportunistically rename a few functions to make clear
they are Lustre functions and not kernel functions.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ifbd827b79847309fe8d798963774ccd6650ad22f
64273 master J !B ✓T ✗1R 0/2
LU-19344 llite: use ktime_get_coarse for read stats
enforced failed: review-ldiskfs
stalled 164d 1 unresolved S +12 −3
164d
enforced failed: review-ldiskfs
1 unresolved thread(s) await your reply — last from Shaun Tancheff
1 thread(s) waiting on others
janitor run: 5 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #122029 SUCCESS · tests all Maloo sessions
no vote yet: Shaun Tancheff
patchsets: PS1 02-28 PS2 02-28 PS3 03-02
threads: 1 need your reply · 1 waiting on others · 0 own notes · 0 bot
reply PS3 2026-03-08 01:00 Shaun Tancheff file.c:2494 — Since this is just a delta, why not use jiffies instead?
Shaun Tancheff PS3 · 2026-03-08 01:00
Since this is just a delta, why not use jiffies instead?

u64 kstart = get_jiffies_64();
...
ll_stats_ops_tally(ll_i2sbi(file_inode(file)),
LLPROC_LL_READ,
jiffies_to_usecs(get_jiffies_64() - kstart));
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 170d ago · NEW · open in Gerrit ↗
commit message
LU-19344 llite: use ktime_get_coarse for read stats

Replace ktime_get() with ktime_get_coarse() for read
timing stats in do_file_read_iter.  ktime_get() reads
the hardware clocksource on every call, which is
expensive on virtualized guests - pvclock_clocksource_read
was the #1 CPU consumer at 9.16% of the tiny read profile
on a KVM guest.  Virtualization is not niche; all major
cloud providers run KVM or similar hypervisors, so this
cost is broadly relevant.

ktime_get_coarse() reads a cached jiffies-granularity
timestamp (~1-4ms resolution), avoiding the hardware
read entirely.  The coarse granularity is sufficient for
the aggregate min/max/sum/count stats collected by
ll_stats_ops_tally - these stats summarize thousands of
ops, so per-op microsecond precision is not needed.

Also move kstart assignment after the zero-count early
return to avoid unnecessary work.

perf profile with ktime_get_coarse (KVM, pvclock):
  pvclock_clocksource_read: 0.02% (from other callers)
  ktime_get_coarse_ts64:    0.74%

Benchmark (8-byte sequential reads, 2M iterations):
  Before (ktime_get):       ~3,600k reads/sec
  After (ktime_get_coarse): ~4,100k reads/sec (+14%)

Generated with Claude Code + Tools

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I1c25e14b2fbb9a6f7f4f6f999aa9f2c6e2a0bb8c
63197 master J !B ✗T –R 0/2−
LU-19744 doc: bulk man page review
needs rebase — checkpatch: cannot be cherry-picked
stalled 165d L +367 −151
165d
needs rebase — checkpatch: cannot be cherry-picked
build failure (#120071)
Marc Vef voted -1
Andreas Dilger voted -1
janitor run: 1 failing config(s), none unique to this patch — janitor results
build #120071 FAILURE
reviews: Marc Vef -1 2026-03-04 14:34 · Andreas Dilger -1 2026-03-07 00:48
patchsets: PS1 12-29 PS2 12-29
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 233d ago · NEW · open in Gerrit ↗
commit message
LU-19744 doc: bulk man page review

Bulk review done by Augment and Claude Code.

Complete systematic review of Lustre man pages (sections 5, 7, 8)
with fixes for documentation errors, missing options, formatting
issues, and cross-references.

Key fixes include:
- Add missing options: --nomgs, --nidsfile, -q/--quiet, --catalog,
  -l, and others documented in usage but missing from man pages
- Fix formatting errors: .TH syntax, incomplete sentences, SEE ALSO
  sections
- Add missing cross-references to related man pages
- Fix typos and grammar errors
- Improve consistency across man pages
- Add missing NAME section to lnetctl.8
- Fix alphabetical ordering in SEE ALSO sections (18 nodemap files)

Files modified: 60+ man pages across sections 5, 7, and 8
Total changes: systematic improvements to documentation accuracy
and completeness

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I4896b64767e58c2b939b5a70db394a6f920949d5
64302 master J !B ✓T ✗1R 0/2
LU-19344 llite: inline fast path of ll_stats_ops_tally
enforced failed: review-ldiskfs-ubuntu
stalled 169d S +45 −3
169d
janitor run: 5 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
3 optional test failure(s) — informational
build #122031 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 170d ago · NEW · open in Gerrit ↗
commit message
LU-19344 llite: inline fast path of ll_stats_ops_tally

Inline the common case of ll_stats_ops_tally() for
the default STATS_TRACK_ALL mode with per-CPU stats.
This eliminates the out-of-line function call chain
through ll_stats_ops_tally -> lprocfs_counter_add ->
lprocfs_stats_lock/unlock on every read and write.

The inlined version directly accesses the per-CPU
counter struct under get_cpu()/put_cpu(), updating
count, sum, sumsquare, min, and max in place.  The
slow path (__ll_stats_ops_tally) handles filtered
tracking modes (PID/PPID/GID) and the NOPERCPU case.

perf profile before inlining (KVM tiny writes):
  lprocfs_counter_add: 1.41%
  lprocfs_stats_lock:  0.64%
  ll_stats_ops_tally:  0.14%
  lprocfs_stats_unlock: 0.05%
  Total stats overhead: 2.24%

After inlining: all four functions gone from profile.

Benchmark (8-byte sequential I/O, 2M iterations):
  Writes: ~2,179k/sec -> ~2,307k/sec (+6%)
  Reads:  ~4,100k/sec -> ~4,335k/sec (+6%)

Combined with ktime_get_coarse (patches 1-2):
  Writes: ~1,970k/sec -> ~2,307k/sec (+17% total)
  Reads:  ~3,600k/sec -> ~4,335k/sec (+20% total)

Generated with Claude Code + Tools

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie9e79d466fee8401dfc08485896124f918c0c9d4
63255 master J ✗8B ✓T ✓R 0/2−
LU-17000 lnet: refactor lnet_net_show_dump
needs rebase — checkpatch: cannot be cherry-picked
stalled 173d 1 unresolved L +260 −230
173d
needs rebase — checkpatch: cannot be cherry-picked
1 unresolved thread(s) await your reply — last from Chris Horn
CI green — no vote yet from James Simmons, Arshad Hussain, Chris Horn, Andreas Dilger
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
sanity-quota@zfs+DNE:test_12bseen in 19 other reviews
sanity-quota@zfs+DNE:test_17seen in 23 other reviews
sanity-quota@zfs+DNE:test_25seen in 17 other reviews
sanity-quota@zfs+DNE:test_33seen in 23 other reviews
sanity-quota@zfs+DNE:test_34seen in 23 other reviews
sanity-quota@zfs+DNE:test_37seen in 23 other reviews
sanity-quota@zfs+DNE:test_38seen in 23 other reviews
sanity-sec@zfs:test_25bseen in 31 other reviews
4 optional test failure(s) — informational
build #120343 SUCCESS · tests all Maloo sessions
no vote yet: James Simmons, Arshad Hussain, Chris Horn, Andreas Dilger
patchsets: PS1 01-06 PS2 01-12
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-01-07 16:19 Chris Horn COMMIT_MSG:28 — This patch could run with `Test-Parameters: trivial` if it is refreshed.
Chris Horn PS1 · 2026-01-07 16:19
This patch could run with `Test-Parameters: trivial` if it is refreshed.
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 219d ago · NEW · open in Gerrit ↗
commit message
LU-17000 lnet: refactor lnet_net_show_dump

Refactor lnet_net_show_dump() to improve readability and
reduce function size from ~360 lines to ~160 lines.

Changes:
- Add lnet_ni_dump_ctx struct to hold shared dump state
- Extract lnet_ni_dump_one_msg_stats() helper for message
  stats (send/recv/drop) - eliminates code duplication
- Extract lnet_ni_dump_health_stats() helper for health
  statistics
- Extract lnet_ni_dump_tunables() helper for net tunables
- Extract lnet_ni_format_cpts() helper for CPT list
  formatting with proper buffer overflow checking
- Extract lnet_ni_dump_extended() to handle all
  verbosity-dependent NI dumping with linear control flow
  instead of goto-based skipping

The refactoring eliminates goto labels (skip_msg_stats,
skip_udsp) by restructuring the verbosity-based logic
into clear conditional blocks.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I210f78fdf201a416f16733bc5ba4afdf45e92065
63188 master J ✓B ✓T ✗26R 0/2
LU-17240 tests: enable parallel mounting by default
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-part-7, review-dne-part-8, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-6, review-ldiskfs, review-ldiskfs-ubuntu
stalled 229d XS +2 −2
229d
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 11 tests. 4 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 15 tests. 4 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-6 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-part-7 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-part-8 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-part-8 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 5 tests failed: sanity-pfl, lnet-selftest, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: replay-ost-single. session
review-dne-zfs-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
9 optional test failure(s) — informational
build #120089 SUCCESS · tests all Maloo sessions
patchsets: PS1 12-29 PS2 01-01
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 230d ago · NEW · open in Gerrit ↗
commit message
LU-17240 tests: enable parallel mounting by default

Enable parallel mounting of targets within types by default.
This allows multiple OSTs (or MDTs in multi-MDT configurations)
to be mounted simultaneously, but maintains sequential ordering
between different target types (MDT before OST).

Configuration:
- PARALLEL_MOUNT now defaults to 1 (enabled)
- PARALLEL_MOUNT_TYPES explicitly set to 0 (no inter-type overlap)
- PARALLEL_MOUNT_TARGETS="mdt ost" (MGS excluded)

Test environment:
- 1 MGS (combined with MDS)
- 1 MDT (245MB)
- 2 OSTs (391MB each)

Performance results:
- Baseline (serial mounting): 29.7s
- Parallel mounting within types: 27.3s
- Improvement: 8% faster (2.4s savings)

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I71efad13359e3490129ce90dece5fee1d2513c75
63187 master J ✗18B ✓T ✗6R 0/2
LU-17240 tests: enable parallel formatting by default
janitor: 18 test failures unique to this patch — conf-sanity3@ldiskfs+DNE:test_87, conf-sanity3@ldiskfs+DNE:test_88, conf-sanity3@ldiskfs+DNE:test_89 +15 more
18 unique failures stalled 229d XS +1 −1
229d
janitor: 18 test failures unique to this patch — conf-sanity3@ldiskfs+DNE:test_87, conf-sanity3@ldiskfs+DNE:test_88, conf-sanity3@ldiskfs+DNE:test_89 +15 more
enforced failed: review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-7
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity3@ldiskfs+DNE:test_87seen in 7 other reviews
conf-sanity3@ldiskfs+DNE:test_88seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_89seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_90aseen in 12 other reviews
conf-sanity3@ldiskfs+DNE:test_90bseen in 15 other reviews
conf-sanity3@ldiskfs+DNE:test_90cseen in 21 other reviews
conf-sanity3@ldiskfs+DNE:test_90dseen in 24 other reviews
conf-sanity3@ldiskfs+DNE:test_91seen in 29 other reviews
conf-sanity3@ldiskfs+DNE:test_98seen in 34 other reviews
conf-sanity3@ldiskfs+DNE:test_99seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_120seen in 13 other reviews
conf-sanity4@ldiskfs+DNE:test_161seen in 7 other reviews
sanity-quota@ldiskfs+DNE:test_91seen in 1 other review
sanity-quota@ldiskfs+DNE:test_92seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_93seen in 5 other reviews
sanity-quota@ldiskfs+DNE:test_94seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_95aseen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_95bseen in 4 other reviews
failed enforced testplatformdetail
review-dne-part-2 RHEL 9.5 / x86_64 ran 13 tests. 1 tests failed: sanity-lfsck. session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-part-7 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
2 optional test failure(s) — informational
build #120088 SUCCESS · tests all Maloo sessions
patchsets: PS1 12-29 PS2 01-01
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 230d ago · NEW · open in Gerrit ↗
commit message
LU-17240 tests: enable parallel formatting by default

Enable parallel formatting of targets by default. This includes
both intra-type parallelism (multiple MDTs or OSTs formatted
simultaneously) and inter-type parallelism (MDT and OST formatting
overlapping).

Configuration:
- PARALLEL_FORMAT now defaults to 1 (enabled)
- PARALLEL_FORMAT_TYPES inherits from PARALLEL_FORMAT (=1)
- PARALLEL_FORMAT_TARGETS="mdt ost" (MGS excluded)
- Other operations (mount, unmount) remain disabled

Test environment:
- 1 MGS (combined with MDS)
- 1 MDT (245MB)
- 2 OSTs (391MB each)

Performance results:
- Baseline (serial formatting): 31.1s
- Parallel formatting: 17.3-25.7s
- Improvement: 17-44% faster

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I7cac5b4a677e3fee97edf57bb9a7cf3469bab92b
63191 master J !B ✓T ✗27R 0/2
LU-17240 tests: enable parallel unmounting across types
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-part-7, review-dne-part-8, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-6, review-dne-zfs-part-7, review-ldiskfs, review-ldiskfs-ubuntu
stalled 229d XS +1 −1
229d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 15 tests. 5 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck, runtests. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 17 tests. 5 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck, runtests. This build will be s session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-6 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-7 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-part-7 RHEL 8.10 / x86_64 ran 7 tests. 2 tests failed: sanity-scrub, sanity-pcc. session
review-dne-part-8 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-part-8 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 15 tests. 6 tests failed: sanity-pfl, lnet-selftest, pjdfstest, sanity-sec, sanity-lfsck, runtests. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: replay-ost-single. session
review-dne-zfs-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-zfs-part-7 RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: sanity-pcc. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 8 tests. 2 tests failed: sanity-sec, sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 8 tests. 2 tests failed: sanity-sec, sanity. session
9 optional test failure(s) — informational
build #120092 SUCCESS · tests all Maloo sessions
patchsets: PS1 12-29 PS2 01-01
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 230d ago · NEW · open in Gerrit ↗
commit message
LU-17240 tests: enable parallel unmounting across types

Enable inter-type parallelism for unmount operations, allowing
clients, MDTs, and OSTs to unmount simultaneously rather than
waiting for each type to complete sequentially.

WARNING: This feature is known to have stability issues and can
cause hangs during unmount. It is enabled here for testing
purposes only and should not be used in production environments.

Configuration:
- PARALLEL_UMOUNT_TYPES now inherits from PARALLEL_UMOUNT (=1)
- Allows client, MDT, and OST unmounts to overlap

Test environment:
- 1 MGS (combined with MDS)
- 1 MDT (245MB)
- 2 OSTs (391MB each)

Performance results (when it works):
- Baseline (sequential types): 24.6s
- With inter-type overlap: 11.9s
- Improvement: 51% faster (12.7s savings)

Known issues:
- Intermittent hangs during unmount operations
- Race conditions in cleanup ordering
- Resource deadlocks between target types

Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I413c5be0437049c88a6c1066681ed258fa41fa06
63189 master J ✗83B ✓T ✗25R 0/2
LU-17240 tests: enable parallel unmounting by default
janitor: 83 test failures unique to this patch — conf-sanity2@ldiskfs+DNE:test_73c, conf-sanity2@ldiskfs+DNE:test_73e, conf-sanity2@ldiskfs+DNE:test_74 +80 more
83 unique failures stalled 229d XS +1 −1
229d
janitor: 83 test failures unique to this patch — conf-sanity2@ldiskfs+DNE:test_73c, conf-sanity2@ldiskfs+DNE:test_73e, conf-sanity2@ldiskfs+DNE:test_74 +80 more
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-part-7, review-dne-part-8, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-6, review-ldiskfs, review-ldiskfs-ubuntu
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity2@ldiskfs+DNE:test_73cseen in 8 other reviews
conf-sanity2@ldiskfs+DNE:test_73eseen in 8 other reviews
conf-sanity2@ldiskfs+DNE:test_74seen in 12 other reviews
conf-sanity2@ldiskfs+DNE:test_75seen in 9 other reviews
conf-sanity3@ldiskfs+DNE:test_87seen in 7 other reviews
conf-sanity3@ldiskfs+DNE:test_88seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_89seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_90aseen in 12 other reviews
conf-sanity3@ldiskfs+DNE:test_90bseen in 15 other reviews
conf-sanity3@ldiskfs+DNE:test_90cseen in 21 other reviews
conf-sanity3@ldiskfs+DNE:test_90dseen in 24 other reviews
conf-sanity3@ldiskfs+DNE:test_91seen in 29 other reviews
conf-sanity3@ldiskfs+DNE:test_98seen in 34 other reviews
conf-sanity3@ldiskfs+DNE:test_99seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_103NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
conf-sanity3@ldiskfs+DNE:test_120seen in 13 other reviews
conf-sanity4@ldiskfs+DNE:test_154NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
conf-sanity4@ldiskfs+DNE:test_161seen in 5 other reviews
sanity2@ldiskfs+DNE:test_130iseen in 3 other reviews
sanity-lfsck@zfs:test_18aseen in 2 other reviews
sanity-lfsck@zfs:test_18cseen in 2 other reviews
sanity-lfsck@zfs:test_18dseen in 2 other reviews
sanity-lfsck@zfs:test_18eseen in 2 other reviews
sanity-lfsck@zfs:test_18fseen in 3 other reviews
sanity-lfsck@zfs:test_18gseen in 2 other reviews
sanity-lfsck@zfs:test_18hseen in 3 other reviews
sanity-lfsck@zfs:test_20aseen in 2 other reviews
sanity-lfsck@zfs:test_20bseen in 2 other reviews
sanity-lfsck@zfs:test_45seen in 1 other review
sanity-quota@ldiskfs+DNE:test_59seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_60seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_62seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_64seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_66seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_67seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_68seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_69seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_70aseen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_70bseen in 5 other reviews
sanity-quota@ldiskfs+DNE:test_71aseen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_71bseen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_72seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_73aseen in 5 other reviews
sanity-quota@ldiskfs+DNE:test_73bseen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_74seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_75seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_76seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_77seen in 7 other reviews
sanity-quota@ldiskfs+DNE:test_79seen in 6 other reviews
sanity-quota@ldiskfs+DNE:test_80seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_81seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_82seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_83seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_84seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_85seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_86seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_87seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_89seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_90aseen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_90bseen in 5 other reviews
sanity-scrub@ldiskfs+DNE:test_1bseen in 5 other reviews
sanity-scrub@ldiskfs+DNE:test_1cseen in 6 other reviews
sanity-scrub@ldiskfs+DNE:test_2seen in 6 other reviews
sanity-scrub@ldiskfs+DNE:test_4aseen in 6 other reviews
sanity-scrub@ldiskfs+DNE:test_4bseen in 10 other reviews
sanity-scrub@ldiskfs+DNE:test_4cseen in 12 other reviews
sanity-scrub@ldiskfs+DNE:test_4dseen in 16 other reviews
sanity-scrub@ldiskfs+DNE:test_4eseen in 13 other reviews
sanity-scrub@ldiskfs+DNE:test_5seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_6seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_7seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_8seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_9seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_10aseen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_11seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_14seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_15seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_17aseen in 5 other reviews
sanity-scrub@ldiskfs+DNE:test_17bseen in 5 other reviews
sanity-sec@ldiskfs+DNE:test_75bseen in 3 other reviews
sanityn@ldiskfs+DNE:test_104seen in 3 other reviews
sanityn@ldiskfs+DNE:test_106aseen in 2 other reviews
sanityn@ldiskfs+DNE:test_115seen in 3 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 crashed RHEL 8.10 / x86_64 ran 13 tests. 4 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck. %% THIS TEST SESSION CRASHED % session
review-dne-part-2 RHEL 9.5 / x86_64 ran 15 tests. 4 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-6 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-part-7 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-part-8 crashed RHEL 8.10 / x86_64 ran 2 tests. 1 tests failed: lustre-initialization. %% THIS TEST SESSION CRASHED %% session
review-dne-part-8 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 5 tests failed: sanity-pfl, lnet-selftest, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: replay-ost-single. session
review-dne-zfs-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
9 optional test failure(s) — informational
build #120090 SUCCESS · tests all Maloo sessions
patchsets: PS1 12-29 PS2 01-01
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 230d ago · NEW · open in Gerrit ↗
commit message
LU-17240 tests: enable parallel unmounting by default

Enable parallel unmounting of targets within types by default.
This allows multiple clients, OSTs, or MDTs to be unmounted
simultaneously within their respective type groups, but maintains
sequential ordering between different target types (clients, then
MDTs, then OSTs).

Configuration:
- PARALLEL_UMOUNT now defaults to 1 (enabled)
- PARALLEL_UMOUNT_TYPES remains 0 (no inter-type overlap)
- PARALLEL_UMOUNT_TARGETS="client mdt ost"

Test environment:
- 1 MGS (combined with MDS)
- 1 MDT (245MB)
- 2 OSTs (391MB each)

Performance results:
- Baseline (serial unmounting): 30.9s
- Parallel unmounting within types: 26.5s
- Improvement: 14% faster (4.4s savings)

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Icbd5fa4fc79259225b03a9feab0bc50b4b48b09d
63190 master J ✗73B ✓T ✗26R 0/2
LU-17240 tests: enable parallel mounting across types
janitor: 73 test failures unique to this patch — conf-sanity2@ldiskfs+DNE:test_73c, conf-sanity2@ldiskfs+DNE:test_73e, conf-sanity2@ldiskfs+DNE:test_74 +70 more
73 unique failures stalled 229d XS +1 −1
229d
janitor: 73 test failures unique to this patch — conf-sanity2@ldiskfs+DNE:test_73c, conf-sanity2@ldiskfs+DNE:test_73e, conf-sanity2@ldiskfs+DNE:test_74 +70 more
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-part-7, review-dne-part-8, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-6, review-ldiskfs, review-ldiskfs-ubuntu
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity2@ldiskfs+DNE:test_73cseen in 8 other reviews
conf-sanity2@ldiskfs+DNE:test_73eseen in 8 other reviews
conf-sanity2@ldiskfs+DNE:test_74seen in 12 other reviews
conf-sanity2@ldiskfs+DNE:test_75seen in 9 other reviews
conf-sanity4@ldiskfs+DNE:test_154seen in 1 other review
conf-sanity4@ldiskfs+DNE:test_161seen in 5 other reviews
sanity2@ldiskfs+DNE:test_130iseen in 3 other reviews
sanity3@zfs:test_271fseen in 10 other reviews
sanity-lfsck@zfs:test_18aseen in 2 other reviews
sanity-lfsck@zfs:test_18cseen in 2 other reviews
sanity-lfsck@zfs:test_18dseen in 2 other reviews
sanity-lfsck@zfs:test_18eseen in 2 other reviews
sanity-lfsck@zfs:test_18fseen in 4 other reviews
sanity-lfsck@zfs:test_18gseen in 2 other reviews
sanity-lfsck@zfs:test_18hseen in 3 other reviews
sanity-lfsck@zfs:test_20aseen in 2 other reviews
sanity-lfsck@zfs:test_20bseen in 2 other reviews
sanity-lfsck@zfs:test_45seen in 1 other review
sanity-quota@ldiskfs+DNE:test_59seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_60seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_62seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_64seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_66seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_67seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_68seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_69seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_70aseen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_70bseen in 5 other reviews
sanity-quota@ldiskfs+DNE:test_71aseen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_71bseen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_72seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_73aseen in 5 other reviews
sanity-quota@ldiskfs+DNE:test_73bseen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_74seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_75seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_76seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_77seen in 7 other reviews
sanity-quota@ldiskfs+DNE:test_79seen in 6 other reviews
sanity-quota@ldiskfs+DNE:test_80seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_81seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_82seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_83seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_84seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_85seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_86seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_87seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_89seen in 3 other reviews
sanity-quota@ldiskfs+DNE:test_90aseen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_90bseen in 5 other reviews
sanity-scrub@ldiskfs+DNE:test_1bseen in 5 other reviews
sanity-scrub@ldiskfs+DNE:test_1cseen in 6 other reviews
sanity-scrub@ldiskfs+DNE:test_2seen in 6 other reviews
sanity-scrub@ldiskfs+DNE:test_4aseen in 6 other reviews
sanity-scrub@ldiskfs+DNE:test_4bseen in 10 other reviews
sanity-scrub@ldiskfs+DNE:test_4cseen in 12 other reviews
sanity-scrub@ldiskfs+DNE:test_4dseen in 16 other reviews
sanity-scrub@ldiskfs+DNE:test_4eseen in 13 other reviews
sanity-scrub@ldiskfs+DNE:test_5seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_6seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_7seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_8seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_9seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_10aseen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_11seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_14seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_15seen in 2 other reviews
sanity-scrub@ldiskfs+DNE:test_17aseen in 5 other reviews
sanity-scrub@ldiskfs+DNE:test_17bseen in 5 other reviews
sanity-sec@ldiskfs+DNE:test_75bseen in 3 other reviews
sanity-sec@ldiskfs+DNE:test_82NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@ldiskfs+DNE:test_104seen in 3 other reviews
sanityn@ldiskfs+DNE:test_106aseen in 2 other reviews
sanityn@ldiskfs+DNE:test_115seen in 3 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 11 tests. 4 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 15 tests. 4 tests failed: sanity-pfl, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 2 tests failed: sanity-quota, sanity-flr. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-6 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-part-7 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-part-8 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-part-8 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 2 tests failed: sanity-sec, recovery-small. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 5 tests failed: sanity-pfl, lnet-selftest, pjdfstest, sanity-sec, sanity-lfsck. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 11 tests. 2 tests failed: sanity-quota, replay-ost-single. session
review-dne-zfs-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
8 optional test failure(s) — informational
build #120091 SUCCESS · tests all Maloo sessions
patchsets: PS1 12-29 PS2 01-01
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 230d ago · NEW · open in Gerrit ↗
commit message
LU-17240 tests: enable parallel mounting across types

Enable inter-type parallelism for mount operations, allowing
MDT and OST mounting to overlap rather than waiting for MDT
to complete before starting OST mounts.

Configuration:
- PARALLEL_MOUNT_TYPES now inherits from PARALLEL_MOUNT (=1)
- Allows MDT and OST mounts to run simultaneously

Test environment:
- 1 MGS (combined with MDS)
- 1 MDT (245MB)
- 2 OSTs (391MB each)

Performance results:
- Baseline (sequential types): 24.9s
- With inter-type overlap: 26.8s
- Result: 8% slower (1.9s penalty)

Note: Inter-type mount parallelism shows a small performance
degradation in this configuration. The overhead of running
MDT and OST mounts simultaneously appears to outweigh any
parallelism benefits, likely due to resource contention or
mount dependencies. This feature is enabled for completeness
and may show benefits in larger configurations.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I9981fc1a56d5196e311a95f9808cb14a163f09c3
62742 master J –B ✗T –R 0/2
LU-17240 tests: fix dm-flakey device handling
build failure (#119060)
stalled 233d 1 unresolved M +57 −62
233d
build failure (#119060)
1 unresolved thread(s) await your reply — last from Andreas Dilger
build #119060 FAILURE
patchsets: PS1 11-26 PS2 11-28
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2025-12-07 22:22 Andreas Dilger conf-sanity.sh:5596 — (style) line could be split after '||'
wc-checkpatch PS1 · 2025-11-26 16:31
(style)  line length of 84 exceeds 80 columns
Andreas Dilger PS1 · 2025-12-07 22:22
(style) line could be split after '||'
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 264d ago · NEW · open in Gerrit ↗
commit message
LU-17240 tests: fix dm-flakey device handling

The recent parallel unmount commit attempted to fix
device name functions to return the actual mounted
device for dm-flakey support, but this created circular
dependencies during initialization that caused hangs.

The proper solution is to add a new facet_real_dev()
function that returns the currently mounted device
(which could be a dm-flakey device) when the facet is
mounted, or falls back to the logical device name when
unmounted.

This is needed because direct device access tools like
debugfs, tune2fs, dumpe2fs, and e2fsck need to access
the actual mounted device (dm-flakey) to see current
filesystem state, not the underlying physical device
which may have stale data buffered in the dm layer.

Updated all test code that uses these tools to call
facet_real_dev() instead of ostdevname() or mdsdevname()
to get the correct device for direct access.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I8d9785351904fc4f21721f872a8cdce7958159a5
46810 master J ✗2B ✓T ✓R 0/2−
LU-15367 tests: Multiop allow mmap control
needs rebase — checkpatch: cannot be cherry-picked
stalled 251d S +12 −1
251d
needs rebase — checkpatch: cannot be cherry-picked
CI green — no vote yet from Sebastien Buisson, Andreas Dilger
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-quota@zfs:test_48seen in 24 other reviews
5 optional test failure(s) — informational
build #118694 SUCCESS · tests all Maloo sessions
no vote yet: Sebastien Buisson, Andreas Dilger
patchsets:
+4 earlier PS1 03-12 PS2 08-18 PS3 08-18 PS4 08-20
PS5 08-28 PS6 09-07 PS7 01-25 PS8 02-28 PS9 11-17
owner Patrick Farrell · uploader Patrick Farrell · PS9 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-15367 tests: Multiop allow mmap control

Add the ability for multiop to specify where to access a
file when it's mmaped by repurposing the 'w' and 'r'
options when a file is mmapped.

This makes multiop able to easily simulate application
behavior using processed iotrace logs as input.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6ff455f15a59132018525410c7fcce840c5b6209
54052 master J !B ✓T ✗2R 0/2
LU-15069 llite: remove ras_align
enforced failed: review-dne-part-2, review-dne-part-5
stalled 259d 1 unresolved S +6 −25
259d
enforced failed: review-dne-part-2, review-dne-part-5
1 thread(s) waiting on others
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-2 RHEL 9.5 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: recovery-small. session
3 optional test failure(s) — informational
build #119152 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger, Sebastien Buisson, Timothy Day
patchsets:
+4 earlier PS1 02-15 PS2 02-15 PS3 02-15 PS4 02-15
PS5 02-15 PS6 02-15 PS7 02-15 PS8 11-23 PS9 12-03
your previous vote: -1 on PS2 (2024-02-15 00:19) — now at PS9
threads: 0 need your reply · 1 waiting on others · 0 own notes · 0 bot
owner Patrick Farrell · uploader Patrick Farrell · PS9 uploaded 259d ago · NEW · open in Gerrit ↗
commit message
LU-15069 llite: remove ras_align

ras_align is quite odd - it aligns to either RPC size,
which has some justification, or to window size, which is
totally strange.  Window size has nothing to do with
alignment and shouldn't be used for this at all.

And ras_align rounds *down*, which results in extra misses
because it's shrinking the readahead window selected by the
rest of the readahead logic.

Finally, although aligning readahead to RPC boundaries
sounds nice, it makes readahead itself far more complicated
by messing up the math for offsets and window sizes, for
limited benefit:
It is not very important for RPCs to be *aligned* so long as
they are *large*, which is handled by the rest of the
readahed logic.

This significantly cleans up some of the readahead behavior
and fixes the misses introduced by rounding down.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I267076a79120e145f49a4b2ffdeff97b4f2b158b
50966 master J ✓B ✓T ✗1R 0/2−
LU-17473 llite: wait for partially successful aio
needs rebase — checkpatch: cannot be cherry-picked
stalled 260d S +36 −7
260d
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-zfs
failed enforced testplatformdetail
review-zfs RHEL 8.9 / x86_64 ran 8 tests. 1 tests failed: replay-single. session
1 optional test failure(s) — informational
build #108711 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Shaun Tancheff, Andreas Dilger
patchsets:
+49 earlier PS1 05-11 PS2 05-14 PS3 05-14 PS4 05-14 PS5 05-15 PS6 05-24 PS7 05-24 PS8 05-30 PS9 05-30 PS10 05-31 PS11 05-31 PS12 05-31 PS13 05-31 PS14 06-06 PS15 06-06 PS16 06-06 PS17 06-09 PS18 06-09 PS19 06-09 PS20 06-17 PS21 06-29 PS22 07-27 PS23 08-01 PS24 08-01 PS25 08-03 PS26 08-07 PS27 08-09 PS28 08-10 PS29 08-13 PS30 08-13 PS31 08-13 PS32 08-14 PS33 08-14 PS34 08-14 PS35 08-15 PS36 08-15 PS37 08-15 PS38 08-15 PS39 08-15 PS40 08-21 PS41 09-07 PS42 09-07 PS43 09-09 PS44 09-15 PS45 09-15 PS46 09-28 PS47 10-20 PS48 10-24 PS49 01-16
PS50 01-16 PS51 01-26 PS52 02-08 PS53 03-01 Andreas Dilger PS54 11-02
owner Patrick Farrell · uploader Patrick Farrell · PS54 uploaded 655d ago · NEW · open in Gerrit ↗
commit message
LU-17473 llite: wait for partially successful aio

For various reasons (notably conflicting buffered IO), we
may need to fall back from DIO to buffered IO.  This also
affects AIO, and if it happens, we will sometimes submit
only part of an AIO with the AIO path, completing the rest
with the buffered path.

Userspace doesn't expect this, expecting us to either do
all or none of the IO with AIO, so it doesn't wait for
completion in this case.

To meet this expectation, we must recognize this case and
wait for AIO to complete before returning to userspace.

Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Iac7abac3bd01f027c353120483932a62c6475277
52135 master J !B ✗T –R 0/2
LU-15367 scripts: Add iotrace to multiop script
build failure (#118771)
stalled 273d 1 unresolved L +569 −1
273d
build failure (#118771)
1 thread(s) waiting on others
janitor run: 3 failing config(s), none unique to this patch — janitor results
build #118771 FAILURE
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+7 earlier PS1 08-28 PS2 08-28 PS3 08-28 PS4 08-28 PS5 01-25 PS6 02-28 PS7 11-17
PS8 11-17 PS9 11-18 PS10 11-18 PS11 11-18 PS12 11-18
threads: 0 need your reply · 1 waiting on others · 0 own notes · 0 bot
owner Patrick Farrell · uploader Patrick Farrell · PS12 uploaded 274d ago · NEW · open in Gerrit ↗
commit message
LU-15367 scripts: Add iotrace to multiop script

With the standardization of iotrace and multiop having the
ability to take input from a file, we can start directly
translating iotrace recordings to multiop input.

This allows us to use multiop to simulate the I/O call
sequences of an iotrace recording.

There are a number of limitations currently, which we may
choose to fix later (if this turns out very useful):
1. No support for multiple open files (multiop limitation)
2. Can only play-back one thread at a time

We use the ability to go from command to iotrace recordin
back to multiop command to test this functionality.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I2ec4f358c97ceb15b717342af5cc9854b9c60677
52204 master J ✗7B ✓T ✗19R 0/2
LU-13814 osc: Move osc_page members to osc_async_page
janitor: 7 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity1@zfs:test_56x +4 more
7 unique failures stalled 275d S +14 −14
275d
janitor: 7 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity1@zfs:test_56x +4 more
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-4, review-dne-part-5, review-dne-part-8, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-5, review-dne-zfs-part-6, review-ldiskfs, review-ldiskfs-ubuntu
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 48 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-sec@ldiskfs+DNE:test_59aseen in 7 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 6 tests. 2 tests failed: lustre-initialization, replay-dual. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 13 tests. 1 tests failed: replay-dual. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 7 tests. 2 tests failed: sanityn, recovery-small. session
review-dne-part-8 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 1 tests. 1 tests failed: node-provisioning. %% NODE-PROVISIONING FAILED MULTIPLE TIMES FOR review-dne-zfs session
review-dne-zfs-part-5 RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: recovery-small. session
review-dne-zfs-part-6 RHEL 8.10 / x86_64 ran 6 tests. 1 tests failed: replay-single. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu failed 2× RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 3 tests failed: sanity-sec, sanity-lnet, sanity. session
6 optional test failure(s) — informational
build #118662 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+26 earlier PS1 08-31 PS2 09-05 PS3 09-09 PS4 09-09 PS5 09-10 PS6 09-10 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-12 PS13 09-14 PS14 09-15 PS15 09-24 PS16 09-25 PS17 09-26 PS18 09-26 PS19 10-05 PS20 10-05 PS21 10-20 PS22 10-22 PS23 10-22 PS24 02-27 PS25 10-28 PS26 11-03
PS27 04-29 PS28 05-01 PS29 11-09 PS30 11-16 PS31 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS31 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: Move osc_page members to osc_async_page

We're going to start using osc_async_page separately from
osc_page, since it's used for both DIO and buffered, but
osc_page is not.

This moves all of the members which are needed for DIO.

This commit deliberately ignores some packing related
issues which will be handled *much* later, since the names
and members of these structs will keep changing.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I994af9563142201a2c7193735ac02568735bd8d5
52188 master J ✓B ✓T ✗13R 0/2
LU-13814 osc: remove use of cp_obj
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-2, review-dne-zfs-part-3, review-ldiskfs, review-ldiskfs-ubuntu
stalled 275d 1 unresolved XS +1 −2
275d
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 11 tests. 2 tests failed: sanity-lnet, sanity-sec. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-dom. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 7 tests. 1 tests failed: recovery-small. session
review-dne-part-6 RHEL 8.10 / x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 7 tests. 2 tests failed: sanity-sec, recovery-small. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 2 tests failed: node-reset, sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 7 tests. 2 tests failed: sanity-lnet, sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
3 optional test failure(s) — informational
build #118659 SUCCESS · tests all Maloo sessions
patchsets:
+31 earlier PS1 08-30 PS2 08-30 PS3 08-31 PS4 09-05 PS5 09-09 PS6 09-09 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-12 PS15 09-14 PS16 09-15 PS17 09-24 PS18 09-25 PS19 09-26 PS20 09-26 PS21 10-05 PS22 10-05 PS23 10-20 PS24 10-22 PS25 10-22 PS26 02-27 PS27 10-28 PS28 11-03 PS29 04-28 PS30 05-01 PS31 07-04
PS32 07-14 PS33 11-06 PS34 11-09 PS35 11-16 PS36 11-16
threads: 0 need your reply · 0 waiting on others · 1 own notes · 0 bot
note PS33 2025-11-06 22:41 Patrick Farrell osc_request.c:1674 — Note to self:
Patrick Farrell PS33 · 2025-11-06 22:41
Note to self:
I am not 100% sure this is finding the right object, but it should blow up if not.  Might need a cl_object_top() here if it does.
owner Patrick Farrell · uploader Patrick Farrell · PS36 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove use of cp_obj

Since we're going to lose the cl_page, we need to remove
usage of its members from the code which handles DIO pages.
This removes cp_obj usage from the one place where it's
used by the DIO code, by adding it to the BRW async args.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ic53b872d930305c345a03c75dc21a613874bf3c8
52187 master J !B ✓T ✗9R 0/2
LU-13814 clio: use osc_dio_completion everywhere
enforced failed: review-dne-part-3, review-dne-part-5, review-dne-part-6, review-dne-part-8, review-dne-selinux-ssk-part-2, review-dne-zfs-part-3, review-dne-zfs-part-4, review-dne-zfs-part-5, review-ldiskfs-ubuntu
stalled 275d M +34 −27
275d
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-6 RHEL 9.5 / x86_64 ran 6 tests. 1 tests failed: replay-single. session
review-dne-part-8 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 12 tests. 1 tests failed: sanity-hsm. session
review-dne-zfs-part-5 RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: recovery-small. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 8 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #118658 SUCCESS · tests all Maloo sessions
patchsets:
+31 earlier PS1 08-30 PS2 08-30 PS3 08-31 PS4 09-05 PS5 09-09 PS6 09-09 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-12 PS15 09-14 PS16 09-15 PS17 09-24 PS18 09-25 PS19 09-26 PS20 09-26 PS21 10-05 PS22 10-05 PS23 10-20 PS24 10-22 PS25 10-22 PS26 02-27 PS27 10-28 PS28 11-03 PS29 04-28 PS30 05-01 PS31 07-04
PS32 07-14 PS33 11-06 PS34 11-09 PS35 11-16 PS36 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS36 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: use osc_dio_completion everywhere

The conversion to osc_dio_completion was incomplete because
some other code wasn't ready.  Finish that conversion.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Id6500bfb55dc27e783a91f58498f9a13906056b8
52189 master J ✗3B ✓T ✗12R 0/2
LU-13814 osc: Remove usage of cdp_cl_pages
janitor: 3 test failures unique to this patch — recovery-small@zfs:test_155, sanity-sec@ldiskfs+DNE:test_59a, sanity-sec@zfs:test_59a
3 unique failures stalled 275d XS +0 −7
275d
janitor: 3 test failures unique to this patch — recovery-small@zfs:test_155, sanity-sec@ldiskfs+DNE:test_59a, sanity-sec@zfs:test_59a
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-4, review-dne-part-5, review-dne-part-7, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-6, review-dne-zfs-part-7, review-ldiskfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-sec@ldiskfs+DNE:test_59aseen in 8 other reviews
sanity-sec@zfs:test_59aseen in 9 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 11 tests. 2 tests failed: sanity-lnet, sanity-sec. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: insanity. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-6 RHEL 8.10 / x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. session
review-dne-zfs-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 7 tests. 1 tests failed: sanity. session
3 optional test failure(s) — informational
build #118660 SUCCESS · tests all Maloo sessions
patchsets:
+31 earlier PS1 08-30 PS2 08-30 PS3 08-31 PS4 09-05 PS5 09-09 PS6 09-09 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-12 PS15 09-14 PS16 09-15 PS17 09-24 PS18 09-25 PS19 09-26 PS20 09-26 PS21 10-05 PS22 10-05 PS23 10-20 PS24 10-22 PS25 10-22 PS26 02-27 PS27 10-28 PS28 11-03 PS29 04-28 PS30 05-01 PS31 07-04
PS32 07-14 PS33 11-06 PS34 11-09 PS35 11-16 PS36 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS36 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: Remove usage of cdp_cl_pages

As part of eliminating cl_page in the DIO path, we need to
clear out all uses of it.

This is one more minor one - there's no need to clear this
list before returning from this function, because if it
fails we give up entirely.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I9dc1053c542ce7a903a93f7b9a1fb0bfc6ac1641
52203 master J ✗7B ✓T ✗18R 0/2
LU-17063 osc: remove duplicate info
janitor: 7 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity1@zfs:test_56x +4 more
7 unique failures stalled 275d 2 unresolved M +33 −43
275d
janitor: 7 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity1@zfs:test_56x +4 more
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-4, review-dne-part-6, review-dne-part-8, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-6, review-dne-zfs-part-7, review-ldiskfs, review-ldiskfs-ubuntu
2 unresolved thread(s) await your reply — last from Andreas Dilger
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-sec@ldiskfs+DNE:test_59aseen in 7 other reviews
sanity-sec@zfs:test_59aseen in 9 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 11 tests. 2 tests failed: sanity-lnet, sanity-sec. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-part-6 RHEL 8.10 / x86_64 ran 5 tests. 2 tests failed: lustre-initialization, replay-single. session
review-dne-part-8 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-zfs-part-6 RHEL 8.10 / x86_64 ran 6 tests. 1 tests failed: replay-single. session
review-dne-zfs-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
6 optional test failure(s) — informational
build #118661 SUCCESS · tests all Maloo sessions
no vote yet: Shaun Tancheff, Andreas Dilger, Sebastien Buisson
patchsets:
+13 earlier PS1 08-31 PS2 09-08 PS3 09-09 PS4 09-10 PS5 09-10 PS6 09-13 PS7 09-14 PS8 09-17 PS9 10-20 PS10 01-19 PS11 02-27 PS12 10-28 PS13 11-03
PS14 04-28 PS15 05-01 PS16 11-09 PS17 11-16 PS18 11-16
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS4 2023-09-10 17:26 Andreas Dilger lustre_osc.h:94 — I think "packed" is needed to combine fields across data structures. However, it is less useful for in-memory data structures so if it is n
Patrick Farrell PS4 · 2023-09-10 16:59
So I think I figured out what's weird here, but check me if I'm wrong.

I don't think it makes sense to both have padding bits AND the ((packed)) attribute?  Basically the effect of the padding bits is to prevent ((packed)) from taking effect.  Neighboring bitfields are combined without the ((packed)) attribute - at least in my observations - but the alignment requirements (the requirements for good performance, that is) are respected.  When you add ((packed)), the alignment requirements are ignored.  Adding the packing bits basically cancels that out again.

Without packed and without the packing bits, we seem to get the desired packing while respecting recommended alignment.

Thoughts?
Andreas Dilger PS4 · 2023-09-10 17:26
I think "packed" is needed to combine fields across data structures.  However, it is less useful for in-memory data structures so if it is no longer needed it could be removed. 

Did you check the structs without "packed" with pahole?
reply PS13 2024-11-14 06:42 Andreas Dilger lustre_osc.h:59 — These bitfields are handled by the compiler, this isn't the same as the "bitfield" macros used by the kernel that need to be "long" variable
Shaun Tancheff PS13 · 2024-11-13 03:51
Does this struct need to be long aligned?
Wondering if 4 byte alignment is an issue for some 64 bit arch
Patrick Farrell PS13 · 2024-11-13 16:09
The alignment here more generally is a bit messy - because we chose packed to prefer memory efficiency, we're not padding.

Much later, I have a portion of this series which removes every member of this struct and handles packing other stuff better.

I'll see about integrating some of it earlier in the series.
Andreas Dilger PS13 · 2024-11-14 06:42
These bitfields are handled by the compiler, this isn't the same as the "bitfield" macros used by the kernel that need to be "long" variables.
owner Patrick Farrell · uploader Patrick Farrell · PS18 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-17063 osc: remove duplicate info

The from/to in osc_page replicate the info provided by
oap_page_off and oap_count in osc_async_page, so just use
those.

Getting the full benefit of this requires removing the
padding, but with that done, this gets us a full 8 bytes
of size reduction in osc_page (and therefore cl_page)
size.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: If9f2ea5abfe1da6e586072f22c5e0758988b7760
52205 master J ✗8B ✓T ✗2R 0/2
LU-13814 osc: rename osc_async_page
janitor: 8 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity3@ldiskfs+DNE:test_230n +5 more
8 unique failures stalled 275d L +250 −249
275d
janitor: 8 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity3@ldiskfs+DNE:test_230n +5 more
enforced failed: review-ldiskfs-dne
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity3@ldiskfs+DNE:test_230nseen in 7 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 47 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-hsm@zfs:test_254bNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
1 optional test failure(s) — informational
build #118663 SUCCESS · tests all Maloo sessions
patchsets:
+26 earlier PS1 08-31 PS2 09-05 PS3 09-09 PS4 09-09 PS5 09-10 PS6 09-10 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-12 PS13 09-14 PS14 09-15 PS15 09-24 PS16 09-25 PS17 09-26 PS18 09-26 PS19 10-05 PS20 10-05 PS21 10-20 PS22 10-22 PS23 10-22 PS24 02-27 PS25 10-28 PS26 11-03
PS27 04-29 PS28 05-01 PS29 11-09 PS30 11-16 PS31 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS31 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: rename osc_async_page

osc_async_page isn't for async IO - it's for all data IO.

Rename it osc_transfer_page so the name fits the usage.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I930aae585763f95d9085bea179765a0431bccf52
52206 master J ✗7B ✓T ✗2R 0/2
LU-13814 osc: rename osc_prep_async_page
janitor: 7 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity3@ldiskfs+DNE:test_230n +4 more
7 unique failures stalled 275d S +7 −6
275d
janitor: 7 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity3@ldiskfs+DNE:test_230n +4 more
enforced failed: review-ldiskfs-dne
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity3@ldiskfs+DNE:test_230nseen in 7 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-sec@zfs:test_59aseen in 9 other reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
1 optional test failure(s) — informational
build #118664 SUCCESS · tests all Maloo sessions
patchsets:
+27 earlier PS1 08-31 PS2 09-05 PS3 09-09 PS4 09-09 PS5 09-10 PS6 09-10 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-12 PS13 09-14 PS14 09-15 PS15 09-24 PS16 09-25 PS17 09-26 PS18 09-26 PS19 10-05 PS20 10-05 PS21 10-20 PS22 10-22 PS23 10-22 PS24 02-27 PS25 02-27 PS26 10-28 PS27 11-03
PS28 04-29 PS29 05-01 PS30 11-09 PS31 11-16 PS32 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS32 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: rename osc_prep_async_page

This is another piece of renaming osc_async_page to
osc_transfer_page.  This is kept separate to make the
previous patch as focused as possible.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ifd57eec46aeeb059ac836e09aa47322a69cc1493
52207 master J ✗8B ✗T –R 0/2
LU-13814 osc: rename osc_async_flags
build failure (#118665)
8 unique failures stalled 275d M +24 −26
275d
build failure (#118665)
janitor: 8 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity3@ldiskfs+DNE:test_230n +5 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity3@ldiskfs+DNE:test_230nseen in 7 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-sec@ldiskfs+DNE:test_59aseen in 7 other reviews
sanity-sec@zfs:test_59aseen in 9 other reviews
build #118665 FAILURE
patchsets:
+26 earlier PS1 08-31 PS2 09-05 PS3 09-09 PS4 09-09 PS5 09-10 PS6 09-10 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-12 PS13 09-14 PS14 09-15 PS15 09-24 PS16 09-25 PS17 09-26 PS18 09-26 PS19 10-05 PS20 10-05 PS21 10-20 PS22 10-22 PS23 10-22 PS24 02-27 PS25 10-28 PS26 11-03
PS27 04-29 PS28 05-01 PS29 11-09 PS30 11-16 PS31 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS31 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: rename osc_async_flags

Async flags are used for all osc pages, rename them
accordingly.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ibf808bcad5f03d950b4d2d05fb11f047fd28f311
52208 master J ✗7B ✗T –R 0/2
LU-13814 clio: add cp_inode to page allocation
build failure (#118667)
7 unique failures stalled 275d S +19 −22
275d
build failure (#118667)
janitor: 7 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity1@zfs:test_56x +4 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-flr@zfs:test_70aseen in 75 other reviews
sanity-sec@ldiskfs+DNE:test_59aseen in 5 other reviews
build #118667 FAILURE
patchsets:
+27 earlier PS1 08-31 PS2 09-05 PS3 09-09 PS4 09-09 PS5 09-10 PS6 09-10 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-12 PS13 09-14 PS14 09-15 PS15 09-16 PS16 09-24 PS17 09-25 PS18 09-26 PS19 09-26 PS20 10-05 PS21 10-05 PS22 10-20 PS23 10-22 PS24 10-22 PS25 02-27 PS26 10-28 PS27 11-03
PS28 04-29 PS29 05-01 PS30 11-09 PS31 11-16 PS32 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS32 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: add cp_inode to page allocation

cp_inode can be set correctly during page allocation,
rather than after.  This is a prelude to moving cp_inode to
the osc_transfer_page, but that's better done in a separate
patch.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I509f6cfbae8e5a6ec6b07c8253d68f6dd2794e59
52226 master J ✗10B ✗T –R 0/2
LU-13814 clio: move cp_inode to transfer page
build failure (#118666)
10 unique failures stalled 275d M +61 −49
275d
build failure (#118666)
janitor: 10 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity3@ldiskfs+DNE:test_230n +7 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity3@ldiskfs+DNE:test_230nseen in 7 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-lfsck@ldiskfs+DNE:test_18fNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-lfsck@ldiskfs+DNE:test_18gseen in 4 other reviews
sanity-lfsck@ldiskfs+DNE:test_18hseen in 4 other reviews
sanity-sec@ldiskfs+DNE:test_59aseen in 6 other reviews
build #118666 FAILURE
patchsets:
+30 earlier PS1 09-01 PS2 09-01 PS3 09-03 PS4 09-05 PS5 09-09 PS6 09-09 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-12 PS16 09-14 PS17 09-15 PS18 09-16 PS19 09-24 PS20 09-25 PS21 09-26 PS22 09-26 PS23 10-05 PS24 10-05 PS25 10-20 PS26 10-22 PS27 10-22 PS28 02-27 PS29 10-28 PS30 11-03
PS31 04-29 PS32 05-01 PS33 11-09 PS34 11-16 PS35 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS35 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: move cp_inode to transfer page

As part of moving DIO to use only the transfer page and
not cl_page, we need to eliminate uses of cl_page where we
have a transfer page available.  That requires moving
cp_inode to the transfer page.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: If0312c7fa22501b789437479fadb023f09f341b8
52228 master J ✗9B ✗T –R 0/2
LU-13814 osc: replace cra_page
build failure (#118669)
9 unique failures stalled 275d S +23 −14
275d
build failure (#118669)
janitor: 9 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa +6 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity3@ldiskfs+DNE:test_230nseen in 7 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
sanity-flr@zfs:test_70aseen in 74 other reviews
sanity-sec@ldiskfs+DNE:test_59aseen in 7 other reviews
build #118669 FAILURE
patchsets:
+31 earlier PS1 09-01 PS2 09-01 PS3 09-02 PS4 09-03 PS5 09-05 PS6 09-09 PS7 09-09 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-12 PS17 09-14 PS18 09-15 PS19 09-16 PS20 09-24 PS21 09-25 PS22 09-26 PS23 09-26 PS24 10-05 PS25 10-05 PS26 10-20 PS27 10-22 PS28 10-22 PS29 02-27 PS30 10-28 PS31 11-03
PS32 04-29 PS33 05-01 PS34 11-09 PS35 11-16 PS36 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS36 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: replace cra_page

cra_page requires there to be a cl_page associated with an
OSC transfer page.  Since we're breaking that association,
we replace it with the page index, which can do what's
required.

Test-Parameters: forjanitoronly
Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I1163dae32bce6ae9fcc458251c047f05ddfa6ec1
52227 master J ✗6B ✗T –R 0/2
LU-13814 clio: move cp_page_index to transfer page
build failure (#118668)
6 unique failures stalled 275d M +32 −25
275d
build failure (#118668)
janitor: 6 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xa, sanity1@zfs:test_56x +3 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@zfs:test_56xseen in 36 other reviews
sanity1@zfs:test_56xaseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 47 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 90 other reviews
build #118668 FAILURE
patchsets:
+30 earlier PS1 09-01 PS2 09-01 PS3 09-03 PS4 09-05 PS5 09-09 PS6 09-09 PS7 09-10 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-12 PS16 09-14 PS17 09-15 PS18 09-16 PS19 09-24 PS20 09-25 PS21 09-26 PS22 09-26 PS23 10-05 PS24 10-05 PS25 10-20 PS26 10-22 PS27 10-22 PS28 02-27 PS29 10-28 PS30 11-03
PS31 04-29 PS32 05-01 PS33 11-09 PS34 11-16 PS35 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS35 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: move cp_page_index to transfer page

cp_page_index is needed for both DIO and BIO, so it has to
move to the OSC transfer page.

Test-Parameters: forjanitoronly
Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I2eceda45e3ac0b92973362b5427948fd1163adc9
52229 master J ✓B ✗T –R 0/2
LU-13814 osc: add DIO/BIO related asserts
build failure (#118670)
stalled 275d S +10 −0
275d
build #118670 FAILURE
patchsets:
+32 earlier PS1 09-01 PS2 09-01 PS3 09-02 PS4 09-03 PS5 09-03 PS6 09-05 PS7 09-09 PS8 09-09 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-12 PS18 09-14 PS19 09-15 PS20 09-16 PS21 09-24 PS22 09-25 PS23 09-26 PS24 09-26 PS25 10-05 PS26 10-05 PS27 10-20 PS28 10-22 PS29 10-22 PS30 02-27 PS31 10-28 PS32 11-03
PS33 04-29 PS34 05-01 PS35 11-09 PS36 11-16 PS37 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS37 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: add DIO/BIO related asserts

These will be adjusted when cp_type is moved to the otp
page, but for now, these asserts help ensure we don't have
any DIO pages in unexpected locations.

Test-Parameters: forjanitoronly
Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I9342a502e0195d86af5f6826e5677b96f6b57f20
55655 master J –B ✗T –R 0/2−
LU-0000 tgt: async write commit
needs rebase — checkpatch: cannot be cherry-picked
stalled 284d L +345 −143
284d
needs rebase — checkpatch: cannot be cherry-picked
build failure (#106123)
build #106123 FAILURE
patchsets: PS1 07-07 PS2 07-13
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 767d ago · NEW · open in Gerrit ↗
commit message
LU-0000 tgt: async write commit

A first and insufficient try at server side async.

For hybrid, we should in fact do everything async except
lock acquisition.  That means splitting the handler in to
a sync and async portions.

Test-Parameters: forbuildonly
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: Iba526e4d75b41992ea3ed77bb3c2a76fa9a1c41b
52391 master J !B ✓T ✓R 2/2−
LU-13805 llite: fail unaligned DIO for RDMA pages
needs rebase — checkpatch: cannot be cherry-picked
udio stalled 295d 1 unresolved M +98 −52
295d
needs rebase — checkpatch: cannot be cherry-picked
Alexey Lyashkov voted -1
1 unresolved thread(s) await your reply — last from Timothy Day
no vote yet from Qian Yingjin, Shaun Tancheff, Shuichi Ihara, Sebastien Buisson
janitor run: 2 failing config(s), none unique to this patch — janitor results
4 optional test failure(s) — informational
build #117333 SUCCESS · tests all Maloo sessions
reviews: Alexey Lyashkov -1 2025-10-16 08:58 · Andreas Dilger +1 2025-10-15 23:37 · Timothy Day +1 2025-10-23 18:16
no vote yet: Qian Yingjin, Shaun Tancheff, Shuichi Ihara, Sebastien Buisson
patchsets:
+16 earlier PS1 09-15 PS2 09-15 PS3 09-28 PS4 10-20 PS5 10-24 PS6 01-16 PS7 02-08 PS8 02-23 PS9 02-23 PS10 03-01 Andreas Dilger PS11 05-14 PS12 06-07 PS13 06-07 PS14 07-07 PS15 07-11 PS16 07-20
PS17 12-09 PS18 04-01 PS19 04-28 PS20 09-26 PS21 10-10
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS21 2025-10-23 18:16 Timothy Day sanity.sh:15571 — It would be nice to have a sanity test (or perhaps a small sanity-gds.sh) that exercises this using real hardware, for those that have it av
Timothy Day PS21 · 2025-10-23 18:16
It would be nice to have a sanity test (or perhaps a small sanity-gds.sh) that exercises this using real hardware, for those that have it available. That's outside the scope of this patch, but this test case would be good to have in such a test suite.
owner Patrick Farrell · uploader Patrick Farrell · PS21 uploaded 313d ago · NEW · open in Gerrit ↗
commit message
LU-13805 llite: fail unaligned DIO for RDMA pages

Unaligned DIO needs to directly access the page contents in
order to copy to the buffer.  This means it can't work with
RDMA only (non-CPU accessible) pages.

Implement that limitation.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I52bd1d4cc143e1018ddf6942403142f26be4430f
60498 master J ✓B ✓T ✗12R 0/2−
LU-19223 shrinkers: Add nr_scanned to all shrinkers
needs rebase — checkpatch: cannot be cherry-picked
stalled 295d M +36 −15
295d
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-5, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-5, review-ldiskfs, review-ldiskfs-ubuntu
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 13 tests. 1 tests failed: sanity-sec. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 13 tests. 1 tests failed: sanity-sec. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 7 tests. 2 tests failed: recovery-small, lustre-rsync-test. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: recovery-small. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 7 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 7 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 8 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #115489 SUCCESS · tests all Maloo sessions
no vote yet: James Simmons, Andreas Dilger, Neil Brown, Timothy Day
patchsets: PS1 08-02 PS2 08-03
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 381d ago · NEW · open in Gerrit ↗
commit message
LU-19223 shrinkers: Add nr_scanned to all shrinkers

If the Lustre shrinkers can't free any pages but don't set
nr_scanned, they may be called forever by the kernel - see
do_shrink_slab() in the kernel.

Add nr_scanned support to the remaining Lustre shrinkers:
- LDLM pools server and client shrinkers
- Lu site shrinker
- Page pools shrinkers

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ica35a0dabe1dce78fd3cd29174ef142a965be824
60807 master J ✗3B ✓T ✗14R 0/2
LU-0000 osc: ghost index entries for deleted pages
janitor: 3 test failures unique to this patch — conf-sanity1@ldiskfs+DNE:test_30a, recovery-small@ldiskfs+DNE:test_67, sanity-sec@zfs:test_21
3 unique failures stalled 300d M +209 −35
300d
janitor: 3 test failures unique to this patch — conf-sanity1@ldiskfs+DNE:test_30a, recovery-small@ldiskfs+DNE:test_67, sanity-sec@zfs:test_21
enforced failed: review-dne-part-1, review-dne-part-4, review-dne-part-5, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-dne-zfs-part-4, review-dne-zfs-part-5, review-ldiskfs, review-ldiskfs-ubuntu, review-zfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity1@ldiskfs+DNE:test_30aseen in 1 other review
recovery-small@ldiskfs+DNE:test_67NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-sec@zfs:test_21seen in 2 other reviews
failed enforced testplatformdetail
review-dne-part-1 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-1 crashed RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-4 crashed RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-flr. %% THIS TEST SESSION CRASHED %% session
review-dne-part-4 crashed RHEL 9.5 / x86_64 ran 11 tests. 1 tests failed: sanity-flr. %% THIS TEST SESSION CRASHED %% session
review-dne-part-5 crashed RHEL 8.10 / x86_64 ran 5 tests. 2 tests failed: sanityn, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-part-5 crashed RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. %% THIS TEST SESSION CRASHED %% session
review-dne-selinux-ssk-part-1 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-1 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 crashed RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-flr. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-5 crashed RHEL 8.10 / x86_64 ran 5 tests. 2 tests failed: sanityn, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 8 tests. 1 tests failed: sanity. session
review-zfs crashed RHEL 8.10 / x86_64 ran 10 tests. 1 tests failed: sanity-flr. %% THIS TEST SESSION CRASHED %% session
6 optional test failure(s) — informational
build #115873 SUCCESS · tests all Maloo sessions
patchsets: PS1 08-19 PS2 08-19 PS3 08-19 Janitor Bot
your previous vote: -1 on PS1 (2025-08-19 20:35) — now at PS3
owner Patrick Farrell · uploader Janitor Bot · PS3 uploaded 365d ago · NEW · open in Gerrit ↗
commit message
LU-0000 osc: ghost index entries for deleted pages

Replace OSC radix tree page entries with a ghost value
that encodes the page index when pages are deleted.
On insert, detect and replace such ghosts with the real page.

This allows us to discard these 'ghost' pages after
they've been removed.

Add COIO_PCACHE_TRUNCATE and handle it in vvp to truncate
pagecache by [start,end] page indices for a cl_object.

Aggregate contiguous ghost indices in OSC discard paths and
invoke cl_object_inode_ops() to drop pagecache efficiently.

Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I9f1d9a383e267fd6f1d8419d180f99bdb71d6667
58981 master J !B ✓T ✗15R 0/2−
LU-17159 lod: mark file layouts with append striping
needs rebase — checkpatch: cannot be cherry-picked
stalled 364d 1 unresolved M +74 −2
364d
needs rebase — checkpatch: cannot be cherry-picked
enforced failed: review-dne-part-1, review-dne-part-4, review-dne-part-6, review-dne-selinux-ssk-part-1, review-dne-subtest-change, review-dne-zfs-part-1, review-dne-zfs-part-4, review-dne-zfs-subtest-change, review-ldiskfs, review-ldiskfs-ubuntu
Andreas Dilger voted -1
1 unresolved thread(s) await your reply — last from Andreas Dilger
janitor run: build failed — no tests ran — janitor results
failed enforced testplatformdetail
review-dne-part-1 crashed RHEL 9.4 / x86_64 ran 6 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-1 crashed RHEL 8.10 / x86_64 ran 6 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-4 crashed RHEL 8.10 / x86_64 ran 13 tests. 2 tests failed: sanity-flr, sanity-dom. %% THIS TEST SESSION CRASHED %% session
review-dne-part-4 crashed RHEL 9.4 / x86_64 ran 13 tests. 2 tests failed: sanity-flr, sanity-dom. %% THIS TEST SESSION CRASHED %% session
review-dne-part-6 RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: replay-single. session
review-dne-selinux-ssk-part-1 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-subtest-change RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 crashed RHEL 8.10 / x86_64 ran 6 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 crashed RHEL 8.10 / x86_64 ran 13 tests. 2 tests failed: sanity-flr, sanity-dom. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-subtest-change RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs crashed RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 9.4 / x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.10 / x86_64, RHEL 9.4 / x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-ubuntu crashed RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 8 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
7 optional test failure(s) — informational
build #112825 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2025-04-26 10:40
no vote yet: Qian Yingjin
patchsets: PS1 04-25 PS2 04-26 PS3 04-26 PS4 04-26 PS5 04-26
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS5 2025-04-29 23:35 Andreas Dilger lod_object.c:5405 — Instead of making this a
Zhenyu Xu PS5 · 2025-04-29 16:03
if want_composite is true, then we need to set mirror_count to 1, as there is an assertion to make sure mirror_count == 0 only for plain layout file in lod_fill_mirrors() as LU-18962 shows.
Andreas Dilger PS5 · 2025-04-29 23:35
Instead of making this a
owner Patrick Farrell · uploader Patrick Farrell · PS5 uploaded 480d ago · NEW · open in Gerrit ↗
commit message
LU-17159 lod: mark file layouts with append striping

Add LCM_FL_APPEND flag to file layouts when a file is opened with
O_APPEND flag. This makes it easier to diagnose layout behavior
when the MDS decides to use append-specific layout, which can
override the default file layout.

Add dah_flags to dt_allocation_hint structure to pass MDS_OPEN_APPEND
flag from mdd_object_make_hint() to lod_ah_init(). The flag is set in
mdd_object_make_hint() when MDS_OPEN_APPEND is present in the open
flags, and is then used in lod_ah_init() to set the LCM_FL_APPEND flag
in the layout.

Also added BUILD_BUG_ON tests for LCM_FL flags in wiretest.c to ensure
the flag values remain consistent.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I927faae3a385a9d0acf40a37ab1be0c0d4cbb82c
60538 master J !B ✗T –R 0/2
LU-0000 lod: initial implementation
build failure (#115548)
stalled 379d L +254 −81
379d
janitor run: build failed — no tests ran — janitor results
build #115548 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 379d ago · NEW · open in Gerrit ↗
commit message
LU-0000 lod: initial implementation

This is an initial and partially incorrect
implementation, which I'll be tearing up a bit
until we can actually get layout creation to
work.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I229b5751b60f8078e22dbb4ed3e2e205d3e4c9a1
54196 master J ✗3B ✓T ✗2R 0/2
LU-17433 osc: simplify osc_lock_set
janitor: 3 test failures unique to this patch — conf-sanity3@ldiskfs+DNE:test_135, sanity-flr@ldiskfs+DNE:test_200a, sanity-flr@zfs:test_200b
3 unique failures stalled 379d M +10 −68
379d
janitor: 3 test failures unique to this patch — conf-sanity3@ldiskfs+DNE:test_135, sanity-flr@ldiskfs+DNE:test_200a, sanity-flr@zfs:test_200b
enforced failed: review-dne-selinux-ssk-part-2, review-ldiskfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity3@ldiskfs+DNE:test_135seen in 20 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 2 other reviews
sanity-flr@zfs:test_200bseen in 1 other review
failed enforced testplatformdetail
review-dne-selinux-ssk-part-2 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity-sec. session
review-ldiskfs crashed RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity-lnet. %% THIS TEST SESSION CRASHED %% session
build #102531 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 904d ago · NEW · open in Gerrit ↗
commit message
LU-17433 osc: simplify osc_lock_set

The presence of osc_lock_set_writer and osc_lock_set_reader
and their complexity appears to be a holdover from the old
CLIO, before the 2.7 era CLIO simplification.

Most of the checks in the functions are unnecessary - we
can't get here unless it's the same object and the range of
the lock matches that of the IO.  These may've been needed
with the older more complicated CLIO locking, but they're
not needed now.

Clean all that up to make the code a bit more readable.

Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I728039e18834eb08d9eb1f3492f8001c2a12f52b
57219 master J !B ✓T ✗1R 0/2
LU-0000 obdclass: Refactor cl_object_attr_update
enforced failed: review-ldiskfs-dne
stalled 379d S +5 −6
379d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 9.3 / x86_64 ran 5 tests. 2 tests failed: sanity-lnet, sanity. session
build #109281 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 625d ago · NEW · open in Gerrit ↗
commit message
LU-0000 obdclass: Refactor cl_object_attr_update

The object named "top" is not actually a top object - it's
any cl_object and we navigate the list accordingly.

Clarify.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6043f0e6c1705cfeeece62cd71f2208b2197f5cc
58621 master J ✗1B ✓T ✗2R 3/2
LU-13814 llite: remove unnecessary smp_mb()
janitor: 1 test failure unique to this patch — replay-single@ldiskfs+DNE:test_65a
1 unique failure stalled 379d XS +0 −5
379d
janitor: 1 test failure unique to this patch — replay-single@ldiskfs+DNE:test_65a
enforced failed: review-dne-part-6, review-ldiskfs-ubuntu
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
replay-single@ldiskfs+DNE:test_65aseen in 66 other reviews
failed enforced testplatformdetail
review-dne-part-6 crashed RHEL 9.4 / x86_64 ran 6 tests. 1 tests failed: replay-single. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
2 optional test failure(s) — informational
build #112134 SUCCESS · tests all Maloo sessions
reviews: Qian Yingjin +1 2025-04-01 01:45 · Marc Vef +1 2025-04-01 09:10 · Andreas Dilger +1 2025-03-31 20:40
patchsets: PS1 03-31 PS2 03-31
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 506d ago · NEW · open in Gerrit ↗
commit message
LU-13814 llite: remove unnecessary smp_mb()

This smp_mb() was added as part of:
https://review.whamcloud.com/c/39542

To help protect the csi_sync_nr atomic.

But it was not justified there, and is not in fact needed.
IO submission has *several* memory barriers before another
thread can see the IO.  (Note there is a discussion on that
Gerrit suggesting it was unneeded.)

For example:
osc_queue_sync_pages uses a spinlock to put the extent on
the list(s) (after this point, it's available for ptlrpc to
make an RPC).  There are several other instances of
spinlocks, AND the use of csi_sync_nr is under memory
barriers (in atomic_dec_and_lock, or under a spinlock).

Let's remove this.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I8b81f8e02025cae801a980d2856993c6d4023716
58680 master J ✗1B ✓T ✗6R 0/2−
LU-18843 mdt: parallel rename in a single directory
janitor: 1 test failure unique to this patch — sanity1@zfs:test_24oa
1 unique failure stalled 379d M +70 −25
379d
janitor: 1 test failure unique to this patch — sanity1@zfs:test_24oa
enforced failed: review-dne-part-1, review-ldiskfs, review-ldiskfs-ubuntu
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@zfs:test_24oaNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.4 / x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.4 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.4 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
5 optional test failure(s) — informational
build #112231 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, kg.xu
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 502d ago · NEW · open in Gerrit ↗
commit message
LU-18843 mdt: parallel rename in a single directory

Testing...

Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I920f9c0624ef25469ece046244d97623018acd63
55055 master J !B ✗T –R 0/2−
LU-17831 osc: batch discard for write locks
needs rebase — checkpatch: cannot be cherry-picked
stalled 379d M +74 −14
379d
needs rebase — checkpatch: cannot be cherry-picked
build failure (#108972)
janitor run: 42 failing config(s), none unique to this patch — janitor results
build #108972 FAILURE
no vote yet: Qian Yingjin
patchsets: PS1 05-08 PS2 11-13 PS3 11-13
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 644d ago · NEW · open in Gerrit ↗
commit message
LU-17831 osc: batch discard for write locks

Batch page discard when cancelling a write lock.
This roughly halves the time to cancel pages under a write
lock.  A future patch will do this for read locks as well.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I214f6babb69fc2117379490efe3d2d62b8122d90
44206 master J ✓B ✓T ✗2R 0/2
LU-14838 ldlm: Disable lockless on contention
enforced failed: review-dne-part-1, review-dne-part-6
stalled 380d M +9 −58
380d
failed enforced testplatformdetail
review-dne-part-1 CentOS 8.3/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-part-6 crashed CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: replay-single. %% THIS TEST SESSION CRASHED %% session
build #22481 SUCCESS · tests all Maloo sessions
no vote yet: Wang Shilong, Andreas Dilger, Mikhail Pershin, Zhenyu Xu, Oleg Drokin
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1828d ago · NEW · open in Gerrit ↗
commit message
LU-14838 ldlm: Disable lockless on contention

The contention detection code is mostly broken, and if it
ever returns -EUSERS to the client, the client will crash
or corrupt user data.

The code is being retained because a rewrite is in flight
and it would be much harder to do that if the code were
fully removed.

But let's disable it at least.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I3128288df8ddd39d2875c817830f7a1884c0e763
44386 master J !B ✓T ✗3R 0/2
LU-14882 tests: Fix S_NOSEC tests
enforced failed: review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-ldiskfs-arm
stalled 380d M +51 −34
380d
failed enforced testplatformdetail
review-dne-selinux-ssk-part-1 CentOS 8.3/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs-arm CentOS 8.3/aarch64, CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanity. session
build #82099 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1854d ago · NEW · open in Gerrit ↗
commit message
LU-14882 tests: Fix S_NOSEC tests

The S_NOSEC tests were using incorrect fail_loc values, and
also did not work correctly with correct fail_loc values.

Correct the fail_locs and fix the tests.

Properly fixing the tests required an odd bit of behavior:
Userspace cannot normally tell if we took a lock in Lustre
or not.  This was the problem with the earlier tests:
A successful tests was identical to normal operation, so
it was missed that the tests did not work.

The solution is to return an error when we detect the
*correct* behavior (using a fail loc).  This allows the
test to clearly tell the difference between a successful
test and normal operation.

Fixes: 8bc4b26453 ("LU-8656 vvp: Add S_NOSEC support")
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I3650bb304b7548ba72d2c1812b30c0217883a441
44401 master J !B ✓T ✗9R 0/2
LU-14887 llite: Add DIO splitting tunables
enforced failed: review-dne-part-1, review-dne-part-4, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-dne-zfs-part-4, review-ldiskfs, review-ldiskfs-arm, review-ldiskfs-ubuntu, review-zfs
stalled 380d L +298 −16
380d
failed enforced testplatformdetail
review-dne-part-1 CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-dne-part-4 CentOS 8.3/x86_64 ran 11 tests. 2 tests failed: sanity-flr, sanity-dom. session
review-dne-selinux-ssk-part-1 CentOS 8.3/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-dne-zfs-part-4 CentOS 8.3/x86_64 ran 11 tests. 1 tests failed: sanity-dom. session
review-ldiskfs CentOS 8.3/x86_64 ran 7 tests. 1 tests failed: sanity. session
review-ldiskfs-arm CentOS 8.3/aarch64, CentOS 8.3/x86_64 ran 8 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu CentOS 8.3/x86_64, Ubuntu 20.04/x86_64 ran 8 tests. 1 tests failed: sanity. session
review-zfs crashed CentOS 8.3/x86_64 ran 10 tests. 1 tests failed: sanity-flr. %% THIS TEST SESSION CRASHED %% session
build #82259 SUCCESS · tests all Maloo sessions
no vote yet: Wang Shilong, Shuichi Ihara, Andreas Dilger
owner Patrick Farrell · uploader Patrick Farrell · PS7 uploaded 1846d ago · NEW · open in Gerrit ↗
commit message
LU-14887 llite: Add DIO splitting tunables

The new faster DIO path is great, but benefit is only seen
if I/O is split to multiple RPCs.  Currently, this only
happens if I/O size is > RPC size or if I/O crosses a
stripe boundary.

This requirement for splitting means that there is an
inherent conflict between the desire to do large RPCs and
doing single stream I/O at high speed.

This patch adds a pair of tunables, turning on some I/O
splitting by default while allowing users to control the
degree.

DIO parallelism, at the llite layer, specifying how many
chunks we should try to split a DIO In to
Minimum preferred I/O size, at the OSC layer, specifying
the minimum size to which we should split I/O.

Parallelism is a global control of how much splitting is
desired for best performance, the overall preference
between maximum RPC size and maximum single stream
performance.

The OSC level control is because some OSTs have
dramatically different performance with synchronous I/O,
so for a spinning OST, it may be desirable to enforce a
higher minimum I/O size (and so less parallelism), and the
reverse for a flash OST.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I5ce010d97b0bf6d91d05d36a2c74268432b5f1f2
45276 master J ✗5B ✓T ✗5R 0/2
LU-15069 llite: Move most readahead code to ra.c
janitor: 5 test failures unique to this patch — sanity-pfl@zfs:test_15, sanity-pfl@zfs:test_16c, sanity-pfl@zfs:test_17 +2 more
5 unique failures stalled 380d XL +1011 −898
380d
janitor: 5 test failures unique to this patch — sanity-pfl@zfs:test_15, sanity-pfl@zfs:test_16c, sanity-pfl@zfs:test_17 +2 more
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-zfs-part-2, review-dne-zfs-part-4, review-zfs
janitor flagged test failures unique to this patch
unique failing testhistory
sanity-pfl@zfs:test_15seen in 3 other reviews
sanity-pfl@zfs:test_16cseen in 2 other reviews
sanity-pfl@zfs:test_17seen in 2 other reviews
sanity-pfl@zfs:test_18seen in 3 other reviews
sanity-pfl@zfs:test_19cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-1 CentOS 8.3/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-part-2 CentOS 8.3/x86_64 ran 7 tests. 1 tests failed: replay-dual. session
review-dne-zfs-part-2 CentOS 8.3/x86_64 ran 7 tests. 2 tests failed: sanity-lfsck, replay-dual. session
review-dne-zfs-part-4 CentOS 8.3/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-zfs crashed CentOS 8.3/x86_64 ran 10 tests. 1 tests failed: sanity-quota. %% THIS TEST SESSION CRASHED %% session
build #83732 SUCCESS · tests all Maloo sessions
no vote yet: Aurelien Degremont
patchsets: PS1 10-18 PS2 10-18 PS3 10-18
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1766d ago · NEW · open in Gerrit ↗
commit message
LU-15069 llite: Move most readahead code to ra.c

The readahead algorithm/prediction code is mixed weirdly
throughout rw.c, which is mostly code which actually moves
data.  Because the prediction/window management code is not
clearly split from the page reading code, there's still
some in rw.c - but this still makes things clearer.

There are also a few trivial function renames where names
were wrong (eg, RAS instead of RIA), and one extra debug
print.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Icc17c057f23233f9f3be8bcf73b9730dfe6b4856
46135 master J ✓B ✓T ✗3R 1/2
LU-15483 tests: Reduce I/O sizes
enforced failed: review-dne-part-5, review-dne-zfs-part-2, review-dne-zfs-part-6
stalled 380d S +19 −19
380d
failed enforced testplatformdetail
review-dne-part-5 CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanity-scrub. session
review-dne-zfs-part-2 CentOS 8.3/x86_64 ran 7 tests. 1 tests failed: replay-dual. session
review-dne-zfs-part-6 CentOS 8.3/x86_64 ran 4 tests. 1 tests failed: replay-single. session
build #85874 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2022-01-27 00:49
patchsets: PS1 01-14 PS2 01-26
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 1666d ago · NEW · open in Gerrit ↗
commit message
LU-15483 tests: Reduce I/O sizes

A lot of the LU-13799 tests use significantly more I/O than
is required for the actual test.  In particular, almost all
of them use 64 MiB of data for every test, just because the
tests started out by copy-pasting.

Reduce the I/O size to closer to the minimum required for
each test, which will save some time.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ife9a950c28ee09e2be1909cdd07c6f532a5f92bb
46871 master J ✗2B ✓T ✗6R 0/2
LU-15663 llite: Simplify readahead stats
janitor: 2 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101j, sanity2@zfs:test_101j
2 unique failures stalled 380d S +8 −37
380d
janitor: 2 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101j, sanity2@zfs:test_101j
enforced failed: review-dne-part-1, review-dne-part-4, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-ubuntu
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_101jNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_101jNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-1 CentOS 8.3/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-part-4 CentOS 8.3/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-selinux-ssk-part-1 CentOS 8.3/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 CentOS 8.3/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs CentOS 8.3/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu CentOS 8.3/x86_64, Ubuntu 20.04/x86_64 ran 6 tests. 1 tests failed: sanity. session
3 optional test failure(s) — informational
build #86719 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1614d ago · NEW · open in Gerrit ↗
commit message
LU-15663 llite: Simplify readahead stats

Readahead stats should be a user readable collection of
stats, not a debug dump.  Also, even as debug, many of
the stats aren't useful.

Let's clean it up.

RA_STAT_FAILED_FAST_READ is confusing, and it is
recorded for every miss.  Rename it, and move it to be
recorded only for *hits* where we decide not to do fast
read for other reasons.

'zero page window' is an almost useless internal detail
that makes no sense to users, and has little use even as
debug.  Let's just remove it.

zero file size isn't an interesting readahead stat, it's
just a fact about a file.  Remove it.

'failed reach end' is also meaningless for users and not
useful debug.  Remove it.

'readahead to eof' is simply not interesting - readahead
reaching the end of the file is a normal part of operation
and not a useful stat.

RA_STAT_FAILED_MATCH is unused.

NB: This is not marked trivial because the stats are used
in various tests and we need to verify nothing is broken
by these changes.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I24dd543f9703fe5883d774f5e9b3152579494c30
47216 master J !B ✓T ✗5R 0/2
LU-15822 ldlm: Add debug in lock_matches
enforced failed: review-dne-zfs-part-1, review-dne-zfs-part-3, review-dne-zfs-part-4, review-ldiskfs-arm, review-zfs
stalled 380d M +98 −16
380d
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-1 CentOS 8.5/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-dne-zfs-part-3 CentOS 8.5/x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-zfs-part-4 CentOS 8.5/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-ldiskfs-arm crashed RHEL 8.6/aarch64, RHEL 8.6/x86_64 ran 8 tests. 1 tests failed: lnet-selftest. %% THIS TEST SESSION CRASHED %% session
review-zfs CentOS 8.5/x86_64 ran 8 tests. 1 tests failed: sanity-quota. session
2 optional test failure(s) — informational
build #89484 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Aurelien Degremont, Andreas Dilger, Vitaly Fertman
patchsets:
+2 earlier PS1 05-05 PS2 05-05
PS3 05-05 PS4 05-05 PS5 05-16 PS6 06-22 Andreas Dilger PS7 09-09 Qian Yingjin
your previous vote: -1 on PS2 (2022-05-05 15:43) — now at PS7
owner Patrick Farrell · uploader Qian Yingjin · PS7 uploaded 1440d ago · NEW · open in Gerrit ↗
commit message
LU-15822 ldlm: Add debug in lock_matches

'lock_matches' is a core LDLM function and entirely
opaque from a debugging perspective, giving no info on why
a lock did not match existing locks.

Let's fix this.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: Icd95a6ba0cd99f689d83758d7576ff45e681d49d
50028 master J !B ✓T ✗7R 0/2−
LU-16564 ldlm: Remove cancel on block
enforced failed: review-dne-selinux-ssk-part-1, review-dne-zfs-part-4, review-ldiskfs, review-ldiskfs-arm, review-ldiskfs-ubuntu, review-zfs
stalled 380d M +23 −108
380d
enforced failed: review-dne-selinux-ssk-part-1, review-dne-zfs-part-4, review-ldiskfs, review-ldiskfs-arm, review-ldiskfs-ubuntu, review-zfs
Andreas Dilger voted -1
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-selinux-ssk-part-1 CentOS 8.5/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-4 CentOS 8.5/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-ldiskfs RHEL 8.6/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs CentOS 8.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.6/aarch64, RHEL 8.6/x86_64 ran 6 tests. 2 tests failed: sanity-lnet, sanity. session
review-ldiskfs-ubuntu CentOS 8.5/x86_64, Ubuntu 20.04/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-zfs CentOS 8.5/x86_64 ran 10 tests. 1 tests failed: replay-single. session
4 optional test failure(s) — informational
build #92401 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2025-02-25 16:54
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1280d ago · NEW · open in Gerrit ↗
commit message
LU-16564 ldlm: Remove cancel on block

The LDLM_FL_CANCEL_ON_BLOCK flag was used by liblustre,
but isn't used now.  The comment on it explains why - it's
for clients that can't reply reliably to BL callbacks,
which is a disaster waiting to happen (or, not waiting, as
the case may be).

This should be removed - itss continued presence is
confusing (at least to me!).

Note: It turns out this is used by lease locks.  I think
that use may still be irrelevant - let's test and find out.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I608ef0e48999ac3c43d6a395c5351cf3151d897b
50379 master J ✗6B ✓T ✗4R 0/2
LU-16656 llite: Improve 'out:' in ll_file_io_generic
janitor: 6 test failures unique to this patch — recovery-small@ldiskfs+DNE:test_110m, replay-single@ldiskfs+DNE:test_70c, sanity2@ldiskfs+DNE:test_154g +3 more
6 unique failures stalled 380d XS +2 −1
380d
janitor: 6 test failures unique to this patch — recovery-small@ldiskfs+DNE:test_110m, replay-single@ldiskfs+DNE:test_70c, sanity2@ldiskfs+DNE:test_154g +3 more
enforced failed: review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-zfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@ldiskfs+DNE:test_110mNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
replay-single@ldiskfs+DNE:test_70cseen in 4 other reviews
sanity2@ldiskfs+DNE:test_154gseen in 2 other reviews
sanity-pcc@ldiskfs+DNE:test_1dseen in 3 other reviews
sanity-pcc@zfs:test_1fseen in 2 other reviews
sanity-pcc@zfs:test_1gseen in 3 other reviews
failed enforced testplatformdetail
review-dne-selinux-ssk-part-1 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.7/x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.7/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-zfs RHEL 8.7/x86_64 ran 10 tests. 1 tests failed: replay-single. session
1 optional test failure(s) — informational
build #93762 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger, Zhenyu Xu
patchsets: PS1 03-22 PS2 03-22 PS3 04-10
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1227d ago · NEW · open in Gerrit ↗
commit message
LU-16656 llite: Improve 'out:' in ll_file_io_generic

The location of the 'out:' label in ll_file_io_generic is a
bit scary, because it skips part of the setup for
io restart, where partial io is taken in to account.

This is safe today because 'out' is only used before calls
to cl_io_loop, so IO hasn't started yet, but if 'out' is
ever used later in the function, it will be incorrect.

Let's move it now rather than leave a trap for the unwary.

Note that until cl_io_loop is called "io->ci_nob" is 0, so
this shouldn't change current behavior.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I89e29708a6d17c5eecdf4f86261dfa013c7a5ec3
51104 master J !B ✗T –R 0/2
LU-16845 obd: rename imp_connect_flags_orig
build aborted (#95050)
stalled 380d S +20 −20
380d
janitor run: 1 failing config(s), none unique to this patch — janitor results
build #95050 ABORTED
no vote yet: Sebastien Buisson, Andreas Dilger, Alex Zhuravlev
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1184d ago · NEW · open in Gerrit ↗
commit message
LU-16845 obd: rename imp_connect_flags_orig

The imp_connect_flags_orig and imp_connect_flags2_orig
values both end with "_orig", but there is no
corresponding "updated" or other value for them to be
original relative to.  They seem to be named mirroring
ns_connect_flags_orig, where there is also a
ns_connect_flags, but this naming makes no sense for the
import flags since they're not modified in this way.

test-parameters: trivial

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I1551447b2e92f8cff665dd75c43dd4dde6da9a09
51164 master J !B ✓T ✗2R 1/2
LU-16858 build: Remove pinger config option
enforced failed: review-dne-part-4, review-dne-zfs-part-1
stalled 380d M +0 −56
380d
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-4 RHEL 8.7/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-zfs-part-1 RHEL 8.7/x86_64 ran 4 tests. 1 tests failed: sanity. session
1 optional test failure(s) — informational
build #95186 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2023-05-30 21:32
no vote yet: Alex Zhuravlev
patchsets: PS1 05-30 PS2 05-30 PS3 05-30
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1177d ago · NEW · open in Gerrit ↗
commit message
LU-16858 build: Remove pinger config option

Lustre is never built or tested without the pinger, so the
config option to build without it should be removed.

Note if anyone does want to disable the pinger this can be
done at runtime.  (This was done historically by Cray, but
is not done any more.  I suspect no one actually does this,
but the option is present if needed.)

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I40aa68fbcee8f68a78316da844951b13bdcb4ffe
51165 master J !B ✓T ✗4R 2/2
LU-14639 build: Remove disable-lru-resize config
enforced failed: review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-5, review-zfs
stalled 380d 1 unresolved M +2 −126
380d
enforced failed: review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-5, review-zfs
1 thread(s) waiting on others
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-selinux-ssk-part-2 RHEL 8.7/x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.7/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-dne-zfs-part-5 crashed RHEL 8.7/x86_64 ran 6 tests. 1 tests failed: sanityn. %% THIS TEST SESSION CRASHED %% session
review-zfs crashed RHEL 8.7/x86_64 ran 10 tests. 2 tests failed: replay-single, sanity-quota. %% THIS TEST SESSION CRASHED %% session
1 optional test failure(s) — informational
build #95222 SUCCESS · tests all Maloo sessions
reviews: James Simmons +1 2023-05-31 19:43 · Sebastien Buisson +1 2023-05-31 15:36
no vote yet: Shuichi Ihara, Andreas Dilger, Oleg Drokin
patchsets: PS1 05-30 PS2 05-31
your previous vote: -1 on PS1 (2023-05-31 15:30) — now at PS2
threads: 0 need your reply · 1 waiting on others · 0 own notes · 0 bot
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 1176d ago · NEW · open in Gerrit ↗
commit message
LU-14639 build: Remove disable-lru-resize config

The lru-resize feature is disabled at runtime by setting
lru_resize to 0.  If it is compiled out or disabled at
mount time, then it can never be enabled without
recompiling or remounting.

Disabling it like this doesn't offer any advantages, and
and all customers disabling it are setting lru_size
manually already.

Let's remove the extra ways to disable lru-resize to
avoid confusion and possible bugs.

This patch also removes checks in the tests which verify
the client and server have lru-resize support.  Servers
have had lru-resize support for several years, and with
this patch, it becomes impossible to build clients without
it either.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I801b9eb8cf280e37bc81b3adade7973e295d151f
52731 master J ✓B ✓T ✗3R 0/2
LU-17210 llite: add kernel readahead asserts
enforced failed: review-dne-part-5, review-ldiskfs-arm, review-zfs
stalled 380d S +33 −0
380d
failed enforced testplatformdetail
review-dne-part-5 RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanityn. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-zfs RHEL 8.8/x86_64 ran 8 tests. 1 tests failed: sanity-quota. session
3 optional test failure(s) — informational
build #99522 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets: PS1 10-17 PS2 10-17 PS3 10-18
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1036d ago · NEW · open in Gerrit ↗
commit message
LU-17210 llite: add kernel readahead asserts

Add a set of asserts which confirm kernel readahead is
disabled and wasn't used for mmap.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I0924f2b1a2bc78e44b9a2082c3dad93a51b4d000
60435 master J !B ✗T –R 0/2
LU-0000 osc: batch osc_consume_write_grant
build failure (#115381)
stalled 386d S +20 −18
386d
janitor run: build failed — no tests ran — janitor results
build #115381 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 386d ago · NEW · open in Gerrit ↗
commit message
LU-0000 osc: batch osc_consume_write_grant

Do osc_consume_write_grant on blocks of transfer pages.

Test-Parameters: ignore
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Ieb211c4f7930da1ba431902a9703c22114d8829e
58687 master J !B ✓T ✗5R 0/2
LU-9834 tests: fix loop condition in llapi_layout_test
enforced failed: review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-ubuntu, review-zfs
stalled 387d XS +1 −1
387d
janitor run: 5 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity-lnet. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.4 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
review-zfs RHEL 8.10 / x86_64 ran 8 tests. 1 tests failed: sanity-quota. session
2 optional test failure(s) — informational
build #112819 SUCCESS · tests all Maloo sessions
patchsets: PS1 04-04 PS2 04-25
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 480d ago · NEW · open in Gerrit ↗
commit message
LU-9834 tests: fix loop condition in llapi_layout_test

The loop condition in test29 of llapi_layout_test.c was
incorrect, causing the loop to never execute. The
condition was:

for (i = LOV_MAX_STRIPE_COUNT-1; i <= 0; i--)

Since LOV_MAX_STRIPE_COUNT-1 is a large positive number
and the condition checks if i <= 0, the loop body was
never entered.

This patch fixes the condition to i >= 0 so that the loop
properly executes as intended, starting from
LOV_MAX_STRIPE_COUNT-1 and decrementing until it reaches 0.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: If96063227542f79004688786f0aeb42e3b27b9d5
46139 master J ✗2B ✓T ✗1R 0/2−
LU-15483 tests: Use fallocate to fill OSTs
janitor: 2 test failures unique to this patch — sanity2@ldiskfs+DNE:test_398k, sanity2@ldiskfs+DNE:test_398l
2 unique failures stalled 387d M +32 −29
387d
janitor: 2 test failures unique to this patch — sanity2@ldiskfs+DNE:test_398k, sanity2@ldiskfs+DNE:test_398l
enforced failed: review-ldiskfs-dne
Andreas Dilger voted -1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_398kNEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
sanity2@ldiskfs+DNE:test_398lNEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
failed enforced testplatformdetail
review-ldiskfs-dne CentOS 8.3/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #85873 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2022-01-26 19:17
patchsets: PS1 01-14 PS2 01-14 Andreas Dilger PS3 01-26
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1666d ago · NEW · open in Gerrit ↗
commit message
LU-15483 tests: Use fallocate to fill OSTs

Rather than using dd, we can use fallocate to fill the
OSTs in 398k and 398l, which should make them much faster.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Id65726ccafb3a6e57581b3b14c846ad6b3757c35
50508 master J ✗1B ✓T ✗4R 0/2
LU-16704 tests: cleanup after 398l
janitor: 1 test failure unique to this patch — sanity1@ldiskfs+DNE:test_39r
1 unique failure stalled 387d 2 unresolved XS +5 −3
387d
janitor: 1 test failure unique to this patch — sanity1@ldiskfs+DNE:test_39r
enforced failed: review-dne-part-2, review-dne-zfs-part-2, review-dne-zfs-part-4, review-dne-zfs-part-6
1 unresolved thread(s) await your reply — last from Sebastien Buisson
1 thread(s) waiting on others
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_39rseen in 19 other reviews
failed enforced testplatformdetail
review-dne-part-2 RHEL 8.8/x86_64 ran 7 tests. 1 tests failed: sanity-lfsck. session
review-dne-zfs-part-2 crashed RHEL 8.8/x86_64 ran 9 tests. 1 tests failed: replay-dual. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 RHEL 8.8/x86_64 ran 9 tests. 1 tests failed: sanity-hsm. session
review-dne-zfs-part-6 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: replay-single. session
2 optional test failure(s) — informational
build #97488 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger, Sebastien Buisson, xinliang
patchsets: PS1 04-03 PS2 04-04 PS3 08-31
threads: 1 need your reply · 1 waiting on others · 0 own notes · 0 bot
reply PS1 2023-04-04 07:08 Sebastien Buisson sanity.sh:25737 — These commands are piling up in a stack, which means they are going to be executed in reverse order IIUC, which gives:
Sebastien Buisson PS1 · 2023-04-04 07:08
These commands are piling up in a stack, which means they are going to be executed in reverse order IIUC, which gives:
1. wait_mds_ost_sync
2. wait_delete_completed
3. rm -f $DIR/$tfile*

Is this what we want?
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1084d ago · NEW · open in Gerrit ↗
commit message
LU-16704 tests: cleanup after 398l

Test 398l fills an OST, so we should have it delete the
files it created and wait for delete/sync before the end of
the test.

Otherwise it can cause ENOSPC on tests that run after it.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I5b5916046689c4a016893bc44cdfe9012bd4e987
50621 master J !B ✗T –R 0/2
LU-17433 osc: Make unaligned DIO async
build failure (#112159)
stalled 387d 1 unresolved XS +5 −0
387d
build failure (#112159)
1 thread(s) waiting on others
janitor run: 27 failing config(s), none unique to this patch — janitor results
build #112159 FAILURE
no vote yet: Qian Yingjin
patchsets:
+4 earlier PS1 04-13 PS2 04-13 PS3 04-13 PS4 04-19
PS5 08-04 Qian Yingjin PS6 02-23 PS7 07-03 PS8 07-03 PS9 04-01
threads: 0 need your reply · 1 waiting on others · 0 own notes · 0 bot
owner Patrick Farrell · uploader Patrick Farrell · PS9 uploaded 505d ago · NEW · open in Gerrit ↗
commit message
LU-17433 osc: Make unaligned DIO async

Because unaligned DIO is using a copy of the data from
userspace, we can make the writes async on the OST side.
Because DIO expects that data be 'safe', we cannot just
go entirely async and not wait for RPC completion, but we
can wait only for RPC completion and not force a commit
sync on the server.

This is because having our own copy of the data lets us
replay the RPC after write() has completed, which is not
possible for regular DIO.

This reduces the DIO 'O_SYNC' guarantee slightly for
unaligned DIO (and other small DIO if we change this).
Before this patch, after a DIO write(), the data is fully
committed to disk and cannot be lost even if the client and
server crash.

With this patch, after write() returns, if the server
crashes, the client can replay the RPC, and if the client
crashes, the server will finish writing out the data.
However, if the client and server both crash, the data will
be lost.

For this reason, we make this behavior tunable:
llite.*.dio_full_sync

With the default to '0'.

Todo: Run through tests
Get perf #s for this
Write a test verifying this behavior?

Test-parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6ab6da2844010df209f219eb9df75c4bbb6e2042
55056 master J ✓B ✓T ✗1R 0/2
LU-17831 osc: discard all if discard one
enforced failed: review-dne-zfs-part-4
stalled 387d S +8 −3
387d
failed enforced testplatformdetail
review-dne-zfs-part-4 RHEL 8.9 / x86_64 ran 9 tests. 2 tests failed: sanity-hsm, sanity-flr. session
4 optional test failure(s) — informational
build #108947 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Alexander Zarochentsev, Andreas Dilger
patchsets: PS1 05-08 PS2 05-08 PS3 11-12
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 644d ago · NEW · open in Gerrit ↗
commit message
LU-17831 osc: discard all if discard one

When we cancel a read lock, we check if another read lock
also protects the same pages.  This is surprisingly
expensive.

So don't do this for every page: If we find a page which is
not covered by a second lock (and therefore must be
discarded), we discard all pages after that one.

This cuts the time to discard 8 GiB of data under a read
lock from 2.2 seconds to 1.2 seconds on a small VM system,
so nearly a 50% reduction in time required.

We may also do batch discards in the future, which this
will permit.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I5b5a63c9fcae246fd3db35e613df1cd882544946
55080 master J –B ✓T ✗2R 0/2
LU-17843 build: correctly create lustre-devel.files
enforced failed: review-ldiskfs, review-ldiskfs-ubuntu
stalled 387d XS +4 −2
387d
failed enforced testplatformdetail
review-ldiskfs RHEL 9.4 / x86_64 ran 5 tests. 1 tests failed: sanity-lnet. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
3 optional test failure(s) — informational
build #111798 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger, Minh Diep, Jian Yu
patchsets: PS1 05-11 PS2 05-11 PS3 03-18 Andreas Dilger
owner Patrick Farrell · uploader Andreas Dilger · PS3 uploaded 519d ago · NEW · open in Gerrit ↗
commit message
LU-17843 build: correctly create lustre-devel.files

The lustre-devel.files file is currently 'created' in the
%description section of rpmbuild (the :> command), but that
command doesn't do anything in %description.

Move this to %install and add a blank line so the file is
not empty.  Otherwise, the lustre-devel.files file is only
populated when we build with --shared, not static.
If the lustre-devel.files file is not present OR if it's
entirely empty (0 size), this results in an error in
rpmbuild.

Note the lustre-devel package still has other contents
added in the %files directive, so lustre-devel is sound -
the issue is just that you can't build RPMs when compiling
statically due to the spec file issues.

Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: Ic598531e376ce1cd356330023b74ec624b9adea8
55618 master J ✗1B ✓T ✗21R 0/2
LU-0000 tgt: true async write commits
janitor: 1 test failure unique to this patch — runtests-ssk@ldiskfs+SharedKey:test_1
1 unique failure stalled 387d M +113 −20
387d
janitor: 1 test failure unique to this patch — runtests-ssk@ldiskfs+SharedKey:test_1
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-part-7, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-3, review-dne-zfs-part-4, review-dne-zfs-part-5, review-dne-zfs-part-6, review-dne-zfs-part-7, review-ldiskfs, review-zfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests-ssk@ldiskfs+SharedKey:test_1seen in 5 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.3/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 9.3/x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-part-3 RHEL 9.3/x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 9.3/x86_64 ran 9 tests. 4 tests failed: sanity-quota, sanity-hsm, sanity-flr, replay-ost-single. session
review-dne-part-5 RHEL 9.3/x86_64 ran 6 tests. 1 tests failed: sanityn. session
review-dne-part-6 RHEL 9.3/x86_64 ran 4 tests. 1 tests failed: replay-single. session
review-dne-part-7 crashed RHEL 9.3/x86_64 ran 4 tests. 1 tests failed: sanity-pcc. %% THIS TEST SESSION CRASHED %% session
review-dne-selinux-ssk-part-1 RHEL 8.9/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.9/x86_64 ran 5 tests. 2 tests failed: sanity-sec, recovery-small. session
review-dne-zfs-part-1 crashed RHEL 8.9/x86_64 ran 6 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-2 RHEL 8.9/x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-3 RHEL 8.9/x86_64 ran 3 tests. 1 tests failed: conf-sanity. This build will be scored -1 since fortestonly was specified. session
review-dne-zfs-part-4 RHEL 8.9/x86_64 ran 9 tests. 4 tests failed: sanity-quota, sanity-hsm, sanity-flr, replay-ost-single. session
review-dne-zfs-part-5 RHEL 8.9/x86_64 ran 6 tests. 2 tests failed: sanityn, recovery-small. session
review-dne-zfs-part-6 RHEL 8.9/x86_64 ran 4 tests. 1 tests failed: replay-single. session
review-dne-zfs-part-7 RHEL 8.9/x86_64 ran 4 tests. 1 tests failed: sanity-pcc. session
review-ldiskfs crashed RHEL 8.9/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.9/x86_64, RHEL 9.3/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 9.3/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.9/x86_64, SLES 15.5/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-zfs RHEL 8.9/x86_64 ran 8 tests. 3 tests failed: replay-ost-single, replay-single, sanity-quota. session
20 optional test failure(s) — informational
build #105948 SUCCESS · tests all Maloo sessions
patchsets:
+2 earlier PS1 07-03 PS2 07-04
PS3 07-04 PS4 07-04 PS5 07-07 PS6 07-07 PS7 07-07
owner Patrick Farrell · uploader Patrick Farrell · PS7 uploaded 773d ago · NEW · open in Gerrit ↗
commit message
LU-0000 tgt: true async write commits

This implements async write commit.
TODO:
- Testing
- Add handling of failed commits (not too hard - just store
error in export and make next commit forced to sync, like
how the client handles the analogous)

This is intended to attach to hybrid IO.

Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I83e80bfea57bd9780ff5fec10cc4c3e992690584
52241 master J ✗59B ✗T –R 0/2
LU-13814 osc: call transfer_page_init for DIO
build failure (#112984)
59 unique failures stalled 474d S +30 −4
474d
build failure (#112984)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 8 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 7 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 10 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 10 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 10 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 26 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 10 other reviews
sanity1@zfs:test_56xseen in 40 other reviews
sanity1@zfs:test_56xBseen in 14 other reviews
sanity1@zfs:test_56xaseen in 40 other reviews
sanity1@zfs:test_56xabseen in 11 other reviews
sanity1@zfs:test_56xcseen in 36 other reviews
sanity1@zfs:test_56ejseen in 14 other reviews
sanity2@zfs:test_119eseen in 21 other reviews
sanity2@zfs:test_119fseen in 20 other reviews
sanity2@zfs:test_119gseen in 20 other reviews
sanity2@zfs:test_119hseen in 20 other reviews
sanity2@zfs:test_119pseen in 11 other reviews
sanity2@zfs:test_119qseen in 11 other reviews
sanity2@zfs:test_398oseen in 25 other reviews
sanity2@zfs:test_398sseen in 11 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 27 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 13 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 72 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 31 other reviews
sanity-flr@zfs:test_0gseen in 34 other reviews
sanity-flr@zfs:test_0hseen in 36 other reviews
sanity-flr@zfs:test_0jseen in 35 other reviews
sanity-flr@zfs:test_36dseen in 33 other reviews
sanity-flr@zfs:test_37seen in 37 other reviews
sanity-flr@zfs:test_38seen in 34 other reviews
sanity-flr@zfs:test_44bseen in 11 other reviews
sanity-flr@zfs:test_61aseen in 41 other reviews
sanity-flr@zfs:test_61cseen in 34 other reviews
sanity-flr@zfs:test_70aseen in 61 other reviews
sanity-flr@zfs:test_200aseen in 34 other reviews
sanity-flr@zfs:test_200bseen in 34 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 12 other reviews
sanity-hsm@zfs:test_607bseen in 12 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 30 other reviews
sanityn@zfs:test_16jseen in 33 other reviews
build #112984 FAILURE
patchsets:
+40 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-03 PS7 09-03 PS8 09-03 PS9 09-05 PS10 09-07 PS11 09-07 PS12 09-09 PS13 09-09 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-10 PS22 09-10 PS23 09-10 PS24 09-10 PS25 09-12 PS26 09-14 PS27 09-14 PS28 09-15 PS29 09-15 PS30 09-15 PS31 09-16 PS32 09-25 PS33 09-26 PS34 09-26 PS35 10-05 PS36 10-05 PS37 10-05 PS38 10-20 PS39 10-22 PS40 10-22
PS41 12-26 PS42 02-27 PS43 10-28 PS44 11-03 PS45 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS45 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: call transfer_page_init for DIO

The transfer pages for DIO need to be set up, this does the
necessary wrangling to call osc_transfer_page_init from the
DIO path.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I0fdc3340cfcecb1dc524c55f480961d36cabdedc
54595 master J ✗58B ✗T –R 0/2
LU-17885 osc: add oe_page_array for dio
build failure (#113014)
58 unique failures stalled 474d S +12 −0
474d
build failure (#113014)
janitor: 58 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB +55 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 24 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 23 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 39 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 26 other reviews
sanity2@ldiskfs+DNE:test_63bseen in 61 other reviews
sanity2@ldiskfs+DNE:test_64aseen in 61 other reviews
sanity2@ldiskfs+DNE:test_64cseen in 61 other reviews
sanity2@ldiskfs+DNE:test_64dseen in 100 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 29 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 29 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 39 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 29 other reviews
sanity1@zfs:test_56xseen in 44 other reviews
sanity1@zfs:test_56xBseen in 35 other reviews
sanity1@zfs:test_56xaseen in 44 other reviews
sanity1@zfs:test_56xabseen in 32 other reviews
sanity1@zfs:test_56xcseen in 40 other reviews
sanity1@zfs:test_56ejseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 78 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 36 other reviews
sanity-flr@zfs:test_0gseen in 37 other reviews
sanity-flr@zfs:test_0hseen in 39 other reviews
sanity-flr@zfs:test_0jseen in 38 other reviews
sanity-flr@zfs:test_36dseen in 37 other reviews
sanity-flr@zfs:test_37seen in 40 other reviews
sanity-flr@zfs:test_38seen in 38 other reviews
sanity-flr@zfs:test_44bseen in 32 other reviews
sanity-flr@zfs:test_61aseen in 44 other reviews
sanity-flr@zfs:test_61cseen in 37 other reviews
sanity-flr@zfs:test_70aseen in 68 other reviews
sanity-flr@zfs:test_200aseen in 37 other reviews
sanity-flr@zfs:test_200bseen in 37 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 33 other reviews
sanity-hsm@zfs:test_250seen in 11 other reviews
sanity-hsm@zfs:test_607bseen in 33 other reviews
sanity-quota@zfs:test_90aseen in 2 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 36 other reviews
sanityn@zfs:test_16jseen in 37 other reviews
build #113014 FAILURE
patchsets:
+1 earlier PS1 03-28
PS2 05-29 PS3 10-28 PS4 10-28 PS5 11-03 PS6 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS6 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: add oe_page_array for dio

This is a very simple patch which just adds the array and a
few asserts for places that never see DIO pages.

The array is used in the next patch.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: If1cb80167e409a8dc36711b46ed4b5459a88df75
54596 master J ✗43B ✗T –R 0/2
LU-17885 osc: remove DIO otp list use in osc_build_rpc
build failure (#113015)
43 unique failures stalled 474d M +59 −24
474d
build failure (#113015)
janitor: 43 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +40 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 25 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 24 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 39 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 27 other reviews
sanity1@zfs:test_56xseen in 44 other reviews
sanity1@zfs:test_56xBseen in 33 other reviews
sanity1@zfs:test_56xaseen in 44 other reviews
sanity1@zfs:test_56xabseen in 30 other reviews
sanity1@zfs:test_56xcseen in 40 other reviews
sanity1@zfs:test_56ejseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 78 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 36 other reviews
sanity-flr@zfs:test_0gseen in 37 other reviews
sanity-flr@zfs:test_0hseen in 39 other reviews
sanity-flr@zfs:test_0jseen in 38 other reviews
sanity-flr@zfs:test_36dseen in 37 other reviews
sanity-flr@zfs:test_37seen in 40 other reviews
sanity-flr@zfs:test_38seen in 38 other reviews
sanity-flr@zfs:test_44bseen in 31 other reviews
sanity-flr@zfs:test_61aseen in 44 other reviews
sanity-flr@zfs:test_61cseen in 37 other reviews
sanity-flr@zfs:test_70aseen in 67 other reviews
sanity-flr@zfs:test_200aseen in 37 other reviews
sanity-flr@zfs:test_200bseen in 37 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 31 other reviews
sanity-hsm@zfs:test_607bseen in 32 other reviews
sanity-pcc@zfs:test_1dseen in 34 other reviews
sanityn@zfs:test_16jseen in 37 other reviews
build #113015 FAILURE
patchsets:
+2 earlier PS1 03-28 PS2 03-28
PS3 05-29 PS4 10-28 PS5 10-28 PS6 11-03 PS7 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS7 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove DIO otp list use in osc_build_rpc

This removes the usage of the osc_transfer_page list for
DIO in osc_build_rpc.  The list is still created and used
elsewhere, but this reduces the usage with an eye to
removal.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie04ef14569d07f5dde01b223f0dced66c2af0094
54597 master J ✗51B ✗T –R 0/2
LU-17885 osc: remove list for dio in extent finish
build failure (#113016)
51 unique failures stalled 474d S +25 −17
474d
build failure (#113016)
janitor: 51 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +48 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 23 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 22 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 39 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 25 other reviews
sanity1@zfs:test_56xseen in 44 other reviews
sanity1@zfs:test_56xBseen in 34 other reviews
sanity1@zfs:test_56xaseen in 44 other reviews
sanity1@zfs:test_56xabseen in 31 other reviews
sanity1@zfs:test_56xcseen in 40 other reviews
sanity1@zfs:test_56ejseen in 34 other reviews
sanity2@zfs:test_119eseen in 35 other reviews
sanity2@zfs:test_119fseen in 34 other reviews
sanity2@zfs:test_119gseen in 34 other reviews
sanity2@zfs:test_119hseen in 34 other reviews
sanity2@zfs:test_119pseen in 30 other reviews
sanity2@zfs:test_119qseen in 30 other reviews
sanity2@zfs:test_398oseen in 39 other reviews
sanity2@zfs:test_398sseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 77 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 36 other reviews
sanity-flr@zfs:test_0gseen in 37 other reviews
sanity-flr@zfs:test_0hseen in 39 other reviews
sanity-flr@zfs:test_0jseen in 38 other reviews
sanity-flr@zfs:test_36dseen in 37 other reviews
sanity-flr@zfs:test_37seen in 40 other reviews
sanity-flr@zfs:test_38seen in 38 other reviews
sanity-flr@zfs:test_44bseen in 30 other reviews
sanity-flr@zfs:test_61aseen in 44 other reviews
sanity-flr@zfs:test_61cseen in 37 other reviews
sanity-flr@zfs:test_70aseen in 66 other reviews
sanity-flr@zfs:test_200bseen in 37 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 32 other reviews
sanity-hsm@zfs:test_607bseen in 31 other reviews
sanity-pcc@ldiskfs+DNE:test_1cseen in 27 other reviews
sanity-quota@zfs:test_90bseen in 5 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 36 other reviews
sanityn@zfs:test_16jseen in 37 other reviews
build #113016 FAILURE
patchsets:
+3 earlier PS1 03-28 PS2 03-28 PS3 05-29
PS4 10-28 PS5 10-28 PS6 11-03 PS7 11-03 PS8 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS8 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove list for dio in extent finish

This removes the last usage of the page lists for DIO, and
also stops creating them.  This gets us most of the
performance benefit, but not all of it - yet.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ic2c700a6e09def0e0162ab567d9a0af321fa7e87
52246 master J ✗60B ✗T –R 0/2
LU-13814 clio: remove cp_type from vvp, mdc, ll
build failure (#112990)
60 unique failures stalled 474d M +30 −43
474d
build failure (#112990)
janitor: 60 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 21 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 20 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 39 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 23 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 33 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 28 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 28 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 39 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 28 other reviews
sanity1@zfs:test_56xseen in 43 other reviews
sanity1@zfs:test_56xBseen in 30 other reviews
sanity1@zfs:test_56xaseen in 43 other reviews
sanity1@zfs:test_56xabseen in 27 other reviews
sanity1@zfs:test_56xcseen in 39 other reviews
sanity1@zfs:test_56ejseen in 30 other reviews
sanity2@zfs:test_119eseen in 34 other reviews
sanity2@zfs:test_119fseen in 33 other reviews
sanity2@zfs:test_119gseen in 33 other reviews
sanity2@zfs:test_119hseen in 33 other reviews
sanity2@zfs:test_119pseen in 27 other reviews
sanity2@zfs:test_119qseen in 27 other reviews
sanity2@zfs:test_398oseen in 38 other reviews
sanity2@zfs:test_398sseen in 27 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 28 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 75 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 35 other reviews
sanity-flr@zfs:test_0gseen in 36 other reviews
sanity-flr@zfs:test_0hseen in 38 other reviews
sanity-flr@zfs:test_0jseen in 37 other reviews
sanity-flr@zfs:test_36dseen in 36 other reviews
sanity-flr@zfs:test_37seen in 39 other reviews
sanity-flr@zfs:test_38seen in 37 other reviews
sanity-flr@zfs:test_44bseen in 27 other reviews
sanity-flr@zfs:test_61aseen in 43 other reviews
sanity-flr@zfs:test_61cseen in 36 other reviews
sanity-flr@zfs:test_70aseen in 64 other reviews
sanity-flr@zfs:test_200aseen in 36 other reviews
sanity-flr@zfs:test_200bseen in 36 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 28 other reviews
sanity-hsm@zfs:test_607bseen in 28 other reviews
sanity-quota@zfs:test_90bseen in 4 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 33 other reviews
sanityn@zfs:test_16jseen in 36 other reviews
build #112990 FAILURE
patchsets:
+36 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-07 PS7 09-07 PS8 09-09 PS9 09-09 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-12 PS22 09-14 PS23 09-15 PS24 09-15 PS25 09-15 PS26 09-15 PS27 09-16 PS28 09-16 PS29 09-25 PS30 09-26 PS31 10-05 PS32 10-05 PS33 10-06 PS34 10-20 PS35 10-22 PS36 10-22
PS37 12-26 PS38 02-27 PS39 10-28 PS40 11-03 PS41 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS41 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: remove cp_type from vvp, mdc, ll

cp_type appears only a little in the vvp, mdc, and ll
code, so remove it all in one patch.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I9dc3dc4e4d35322fbe4428d4d8ffd624baada693
52249 master J ✗53B ✗T –R 0/2
LU-13814 clio: remove type from cl_page_find
build failure (#112993)
53 unique failures stalled 474d M +29 −43
474d
build failure (#112993)
janitor: 53 test failures unique to this patch — sanity2@ldiskfs+DNE:test_119e, sanity2@ldiskfs+DNE:test_119f, sanity2@ldiskfs+DNE:test_119g +50 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_119eseen in 32 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 32 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 32 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 32 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 27 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 27 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 38 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 27 other reviews
sanity1@zfs:test_56xseen in 42 other reviews
sanity1@zfs:test_56xBseen in 27 other reviews
sanity1@zfs:test_56xaseen in 42 other reviews
sanity1@zfs:test_56xabseen in 24 other reviews
sanity1@zfs:test_56xcseen in 38 other reviews
sanity1@zfs:test_56ejseen in 27 other reviews
sanity2@zfs:test_119eseen in 30 other reviews
sanity2@zfs:test_119fseen in 29 other reviews
sanity2@zfs:test_119gseen in 29 other reviews
sanity2@zfs:test_119hseen in 29 other reviews
sanity2@zfs:test_119pseen in 23 other reviews
sanity2@zfs:test_119qseen in 23 other reviews
sanity2@zfs:test_398oseen in 34 other reviews
sanity2@zfs:test_398sseen in 23 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 25 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 75 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 35 other reviews
sanity-flr@zfs:test_0gseen in 36 other reviews
sanity-flr@zfs:test_0hseen in 38 other reviews
sanity-flr@zfs:test_0jseen in 37 other reviews
sanity-flr@zfs:test_36dseen in 36 other reviews
sanity-flr@zfs:test_37seen in 39 other reviews
sanity-flr@zfs:test_38seen in 37 other reviews
sanity-flr@zfs:test_44bseen in 24 other reviews
sanity-flr@zfs:test_61aseen in 43 other reviews
sanity-flr@zfs:test_61cseen in 36 other reviews
sanity-flr@zfs:test_70aseen in 64 other reviews
sanity-flr@zfs:test_200aseen in 36 other reviews
sanity-flr@zfs:test_200bseen in 36 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 26 other reviews
sanity-hsm@zfs:test_607bseen in 24 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 33 other reviews
sanityn@zfs:test_16jseen in 36 other reviews
build #112993 FAILURE
patchsets:
+37 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-07 PS7 09-07 PS8 09-09 PS9 09-09 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-12 PS22 09-14 PS23 09-15 PS24 09-15 PS25 09-15 PS26 09-15 PS27 09-16 PS28 09-16 PS29 09-25 PS30 09-26 PS31 10-05 PS32 10-05 PS33 10-06 PS34 10-20 PS35 10-22 PS36 10-22 PS37 12-26
PS38 02-27 PS39 10-28 PS40 10-28 PS41 11-03 PS42 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS42 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: remove type from cl_page_find

type is no longer used in cl_page_find/alloc, remove it.

Test-Parameters: forjanitoronly
Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I5168f5d34e24727d45d1d0910d8b90cec9429b35
52244 master J ✗54B ✗T –R 0/2
LU-13814 osc: change asserts to use OTP type
build failure (#112988)
54 unique failures stalled 474d S +2 −9
474d
build failure (#112988)
janitor: 54 test failures unique to this patch — recovery-small@zfs:test_155, sanity2@ldiskfs+DNE:test_119e, sanity2@ldiskfs+DNE:test_119f +51 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_119eseen in 31 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 31 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 31 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 31 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 26 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 37 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 26 other reviews
sanity1@zfs:test_56xseen in 44 other reviews
sanity1@zfs:test_56xBseen in 32 other reviews
sanity1@zfs:test_56xaseen in 44 other reviews
sanity1@zfs:test_56xabseen in 29 other reviews
sanity1@zfs:test_56xcseen in 40 other reviews
sanity1@zfs:test_56ejseen in 32 other reviews
sanity2@zfs:test_119eseen in 35 other reviews
sanity2@zfs:test_119fseen in 34 other reviews
sanity2@zfs:test_119gseen in 34 other reviews
sanity2@zfs:test_119hseen in 34 other reviews
sanity2@zfs:test_119pseen in 29 other reviews
sanity2@zfs:test_119qseen in 29 other reviews
sanity2@zfs:test_398oseen in 39 other reviews
sanity2@zfs:test_398sseen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 44 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 76 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 36 other reviews
sanity-flr@zfs:test_0gseen in 37 other reviews
sanity-flr@zfs:test_0hseen in 39 other reviews
sanity-flr@zfs:test_0jseen in 38 other reviews
sanity-flr@zfs:test_36dseen in 37 other reviews
sanity-flr@zfs:test_37seen in 40 other reviews
sanity-flr@zfs:test_38seen in 38 other reviews
sanity-flr@zfs:test_44bseen in 29 other reviews
sanity-flr@zfs:test_61aseen in 44 other reviews
sanity-flr@zfs:test_61cseen in 37 other reviews
sanity-flr@zfs:test_70aseen in 65 other reviews
sanity-flr@zfs:test_200aseen in 37 other reviews
sanity-flr@zfs:test_200bseen in 37 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 30 other reviews
sanity-hsm@zfs:test_607bseen in 30 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 35 other reviews
sanityn@zfs:test_16jseen in 37 other reviews
build #112988 FAILURE
patchsets:
+36 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-07 PS7 09-07 PS8 09-09 PS9 09-09 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-12 PS22 09-14 PS23 09-15 PS24 09-15 PS25 09-15 PS26 09-15 PS27 09-16 PS28 09-16 PS29 09-25 PS30 09-26 PS31 10-05 PS32 10-05 PS33 10-06 PS34 10-20 PS35 10-22 PS36 10-22
PS37 12-26 PS38 02-27 PS39 10-28 PS40 11-03 PS41 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS41 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: change asserts to use OTP type

cp_type is no longer set for transient pages since they
don't use cl_page.  Switch asserts to use otp_type.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I3ad8292972fad9669b00aac3e98d0b6ea12ef398
52788 master J ✗60B ✗T –R 0/2
LU-13814 osc: move otp_obj to osc page
build failure (#112996)
60 unique failures stalled 474d M +26 −38
474d
build failure (#112996)
janitor: 60 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 18 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 17 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 30 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 30 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 30 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 30 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 25 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 25 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 36 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 25 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 25 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 22 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 25 other reviews
sanity2@zfs:test_119eseen in 27 other reviews
sanity2@zfs:test_119fseen in 26 other reviews
sanity2@zfs:test_119gseen in 26 other reviews
sanity2@zfs:test_119hseen in 26 other reviews
sanity2@zfs:test_119pseen in 20 other reviews
sanity2@zfs:test_119qseen in 20 other reviews
sanity2@zfs:test_398oseen in 31 other reviews
sanity2@zfs:test_398sseen in 20 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 23 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 74 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 34 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 22 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 23 other reviews
sanity-hsm@zfs:test_607bseen in 23 other reviews
sanity-quota@zfs:test_90bNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 35 other reviews
build #112996 FAILURE
patchsets:
+3 earlier PS1 10-22 PS2 10-22 PS3 12-26
PS4 02-27 PS5 10-28 PS6 10-28 PS7 11-03 PS8 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS8 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: move otp_obj to osc page

The object pointer is only used from the OSC page, so move
it there.  This reduces the size of the OTP page, which
is useful because for DIO there is only an OTP page.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I97360277a9d686b7b78648762d45d20864355cbc
52245 master J ✗60B ✗T –R 0/2
LU-13814 osc: remove cp_type in osc
build failure (#112989)
60 unique failures stalled 474d M +28 −44
474d
build failure (#112989)
janitor: 60 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 22 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 21 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 39 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 24 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 29 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 29 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 29 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 29 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 24 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 24 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 35 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 24 other reviews
sanity1@zfs:test_56xseen in 43 other reviews
sanity1@zfs:test_56xBseen in 31 other reviews
sanity1@zfs:test_56xaseen in 43 other reviews
sanity1@zfs:test_56xabseen in 28 other reviews
sanity1@zfs:test_56xcseen in 39 other reviews
sanity1@zfs:test_56ejseen in 31 other reviews
sanity2@zfs:test_119eseen in 34 other reviews
sanity2@zfs:test_119fseen in 33 other reviews
sanity2@zfs:test_119gseen in 33 other reviews
sanity2@zfs:test_119hseen in 33 other reviews
sanity2@zfs:test_119pseen in 28 other reviews
sanity2@zfs:test_119qseen in 28 other reviews
sanity2@zfs:test_398oseen in 38 other reviews
sanity2@zfs:test_398sseen in 28 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 75 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 35 other reviews
sanity-flr@zfs:test_0gseen in 36 other reviews
sanity-flr@zfs:test_0hseen in 38 other reviews
sanity-flr@zfs:test_0jseen in 37 other reviews
sanity-flr@zfs:test_36dseen in 36 other reviews
sanity-flr@zfs:test_37seen in 39 other reviews
sanity-flr@zfs:test_38seen in 37 other reviews
sanity-flr@zfs:test_44bseen in 28 other reviews
sanity-flr@zfs:test_61aseen in 43 other reviews
sanity-flr@zfs:test_61cseen in 36 other reviews
sanity-flr@zfs:test_70aseen in 64 other reviews
sanity-flr@zfs:test_200aseen in 36 other reviews
sanity-flr@zfs:test_200bseen in 36 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 29 other reviews
sanity-hsm@zfs:test_607bseen in 29 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 34 other reviews
sanityn@zfs:test_16jseen in 37 other reviews
build #112989 FAILURE
no vote yet: Qian Yingjin
patchsets:
+36 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-07 PS7 09-07 PS8 09-09 PS9 09-09 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-12 PS22 09-14 PS23 09-15 PS24 09-15 PS25 09-15 PS26 09-15 PS27 09-16 PS28 09-16 PS29 09-25 PS30 09-26 PS31 10-05 PS32 10-05 PS33 10-06 PS34 10-20 PS35 10-22 PS36 10-22
PS37 12-26 PS38 02-27 PS39 10-28 PS40 11-03 PS41 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS41 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove cp_type in osc

Now that we no longer have cl_page for transient pages,
cp_type is going away, so remove it in the OSC layer.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I2ea93f46d8a99ba6c0e04af373827b4c8b8fd2be
52247 master J ✗59B ✗T –R 0/2
LU-13814 lov: remove cp_type from lov
build failure (#112991)
59 unique failures stalled 474d M +21 −87
474d
build failure (#112991)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 20 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 19 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 22 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 28 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 28 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 28 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 28 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 23 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 23 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 34 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 23 other reviews
sanity1@zfs:test_56xseen in 43 other reviews
sanity1@zfs:test_56xBseen in 29 other reviews
sanity1@zfs:test_56xaseen in 43 other reviews
sanity1@zfs:test_56xabseen in 26 other reviews
sanity1@zfs:test_56xcseen in 39 other reviews
sanity1@zfs:test_56ejseen in 29 other reviews
sanity2@zfs:test_119eseen in 33 other reviews
sanity2@zfs:test_119fseen in 32 other reviews
sanity2@zfs:test_119gseen in 32 other reviews
sanity2@zfs:test_119hseen in 32 other reviews
sanity2@zfs:test_119pseen in 26 other reviews
sanity2@zfs:test_119qseen in 26 other reviews
sanity2@zfs:test_398oseen in 37 other reviews
sanity2@zfs:test_398sseen in 26 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 27 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 75 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 35 other reviews
sanity-flr@zfs:test_0gseen in 36 other reviews
sanity-flr@zfs:test_0hseen in 38 other reviews
sanity-flr@zfs:test_0jseen in 37 other reviews
sanity-flr@zfs:test_36dseen in 36 other reviews
sanity-flr@zfs:test_37seen in 39 other reviews
sanity-flr@zfs:test_38seen in 37 other reviews
sanity-flr@zfs:test_44bseen in 26 other reviews
sanity-flr@zfs:test_61aseen in 43 other reviews
sanity-flr@zfs:test_61cseen in 36 other reviews
sanity-flr@zfs:test_70aseen in 64 other reviews
sanity-flr@zfs:test_200aseen in 36 other reviews
sanity-flr@zfs:test_200bseen in 36 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 27 other reviews
sanity-hsm@zfs:test_607bseen in 27 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 36 other reviews
build #112991 FAILURE
patchsets:
+36 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-07 PS7 09-07 PS8 09-09 PS9 09-09 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-12 PS22 09-14 PS23 09-15 PS24 09-15 PS25 09-15 PS26 09-15 PS27 09-16 PS28 09-16 PS29 09-25 PS30 09-26 PS31 10-05 PS32 10-05 PS33 10-06 PS34 10-20 PS35 10-22 PS36 10-22
PS37 12-26 PS38 02-27 PS39 10-28 PS40 11-03 PS41 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS41 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 lov: remove cp_type from lov

Removing cp_type from lov involves removing the LOV stripe
information caching, since that was just for DIO.  Other
removals here are trivial.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ia60397639e9499e69c17f8d549806f17b4000d05
52248 master J ✗54B ✗T –R 0/2
LU-13814 clio: remove cp_type
build failure (#112992)
54 unique failures stalled 474d M +25 −66
474d
build failure (#112992)
janitor: 54 test failures unique to this patch — sanity2@ldiskfs+DNE:test_119e, sanity2@ldiskfs+DNE:test_119f, sanity2@ldiskfs+DNE:test_119g +51 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_119eseen in 27 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 27 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 27 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 27 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 22 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 22 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 33 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 22 other reviews
sanity1@zfs:test_56xseen in 43 other reviews
sanity1@zfs:test_56xBseen in 28 other reviews
sanity1@zfs:test_56xaseen in 43 other reviews
sanity1@zfs:test_56xabseen in 25 other reviews
sanity1@zfs:test_56xcseen in 39 other reviews
sanity1@zfs:test_56ejseen in 28 other reviews
sanity2@zfs:test_119eseen in 31 other reviews
sanity2@zfs:test_119fseen in 30 other reviews
sanity2@zfs:test_119gseen in 30 other reviews
sanity2@zfs:test_119hseen in 30 other reviews
sanity2@zfs:test_119pseen in 24 other reviews
sanity2@zfs:test_119qseen in 24 other reviews
sanity2@zfs:test_398oseen in 35 other reviews
sanity2@zfs:test_398sseen in 24 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 26 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 43 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 75 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 35 other reviews
sanity-flr@zfs:test_0gseen in 36 other reviews
sanity-flr@zfs:test_0hseen in 38 other reviews
sanity-flr@zfs:test_0jseen in 37 other reviews
sanity-flr@zfs:test_36dseen in 36 other reviews
sanity-flr@zfs:test_37seen in 39 other reviews
sanity-flr@zfs:test_38seen in 37 other reviews
sanity-flr@zfs:test_44bseen in 25 other reviews
sanity-flr@zfs:test_61aseen in 43 other reviews
sanity-flr@zfs:test_61cseen in 36 other reviews
sanity-flr@zfs:test_70aseen in 64 other reviews
sanity-flr@zfs:test_200aseen in 36 other reviews
sanity-flr@zfs:test_200bseen in 36 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 25 other reviews
sanity-hsm@zfs:test_607bseen in 26 other reviews
sanity-quota@zfs:test_90bseen in 4 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 36 other reviews
build #112992 FAILURE
no vote yet: Qian Yingjin
patchsets:
+36 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-07 PS7 09-07 PS8 09-09 PS9 09-09 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-12 PS22 09-14 PS23 09-15 PS24 09-15 PS25 09-15 PS26 09-15 PS27 09-16 PS28 09-16 PS29 09-25 PS30 09-26 PS31 10-05 PS32 10-05 PS33 10-06 PS34 10-20 PS35 10-22 PS36 10-22
PS37 12-26 PS38 02-27 PS39 10-28 PS40 11-03 PS41 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS41 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: remove cp_type

Page->cp_type is no longer needed and can be removed
entirely.

Two notes:
This makes 'inode' in coo_page_init irrelevant since it's
only used for DIO.  This will be fixed in a future patch.
The packing of cl_page is NOT correct currently and will be
fixed in a future patch.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I660bb956b2d85fcff98b8e1726d60b51fd4f8ac5
52789 master J ✗60B ✗T –R 0/2
LU-13814 osc: remove otp_srvlock
build failure (#112997)
60 unique failures stalled 474d S +9 −17
474d
build failure (#112997)
janitor: 60 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 17 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 16 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 19 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 25 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 25 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 25 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 25 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 19 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 19 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 31 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 19 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 24 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 21 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 24 other reviews
sanity2@zfs:test_119eseen in 32 other reviews
sanity2@zfs:test_119fseen in 31 other reviews
sanity2@zfs:test_119gseen in 31 other reviews
sanity2@zfs:test_119hseen in 31 other reviews
sanity2@zfs:test_119pseen in 25 other reviews
sanity2@zfs:test_119qseen in 25 other reviews
sanity2@zfs:test_398oseen in 36 other reviews
sanity2@zfs:test_398sseen in 25 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 22 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 74 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 34 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 21 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 22 other reviews
sanity-hsm@zfs:test_607bseen in 22 other reviews
sanity-quota@zfs:test_90bNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 35 other reviews
build #112997 FAILURE
patchsets:
+3 earlier PS1 10-22 PS2 10-22 PS3 12-26
PS4 02-27 PS5 10-28 PS6 10-28 PS7 11-03 PS8 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS8 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove otp_srvlock

The srvlock information stored in the otp_srvlock flag is
always available elsewhere, so remove it.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I7a8669b8a3ae9014a9971386c316d514079a0ae1
52795 master J ✗59B ✗T –R 0/2
LU-13814 osc: remove aa_otps
build failure (#113000)
59 unique failures stalled 474d S +2 −14
474d
build failure (#113000)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 14 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 13 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 16 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 21 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 21 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 32 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 21 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 20 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 17 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 20 other reviews
sanity2@zfs:test_119eseen in 23 other reviews
sanity2@zfs:test_119fseen in 22 other reviews
sanity2@zfs:test_119gseen in 22 other reviews
sanity2@zfs:test_119hseen in 22 other reviews
sanity2@zfs:test_119pseen in 15 other reviews
sanity2@zfs:test_119qseen in 15 other reviews
sanity2@zfs:test_398oseen in 27 other reviews
sanity2@zfs:test_398sseen in 15 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 28 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 18 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 73 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 32 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 17 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 18 other reviews
sanity-hsm@zfs:test_607bseen in 18 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 31 other reviews
sanityn@zfs:test_16jseen in 34 other reviews
build #113000 FAILURE
patchsets:
+5 earlier PS1 10-22 PS2 10-23 PS3 10-24 PS4 10-24 PS5 12-26
PS6 02-27 PS7 10-28 PS8 10-28 PS9 11-03 PS10 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS10 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove aa_otps

The aa_oops list isn't really used for anything, so let's
remove it.

This will let us remove the otp_rpc_item list, because the
only use of that list was to go on the aa_otps list.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I491f66857786dd9ed13657d4211e774232cb6e22
52257 master J ✗60B ✗T –R 0/2
LU-13814 osc: minor function relocation
build failure (#112994)
60 unique failures stalled 474d M +40 −58
474d
build failure (#112994)
janitor: 60 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 19 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 18 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 38 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 21 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 26 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 20 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 32 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 20 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 26 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 23 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 26 other reviews
sanity2@zfs:test_119eseen in 28 other reviews
sanity2@zfs:test_119fseen in 27 other reviews
sanity2@zfs:test_119gseen in 27 other reviews
sanity2@zfs:test_119hseen in 27 other reviews
sanity2@zfs:test_119pseen in 21 other reviews
sanity2@zfs:test_119qseen in 21 other reviews
sanity2@zfs:test_398oseen in 32 other reviews
sanity2@zfs:test_398sseen in 21 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 24 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 74 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 34 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 23 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 24 other reviews
sanity-hsm@zfs:test_607bseen in 25 other reviews
sanity-pcc@ldiskfs+DNE:test_100seen in 33 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 35 other reviews
build #112994 FAILURE
patchsets:
+24 earlier PS1 09-04 PS2 09-10 PS3 09-10 PS4 09-10 PS5 09-10 PS6 09-10 PS7 09-10 PS8 09-12 PS9 09-14 PS10 09-15 PS11 09-15 PS12 09-15 PS13 09-15 PS14 09-16 PS15 09-16 PS16 09-25 PS17 09-26 PS18 10-05 PS19 10-05 PS20 10-06 PS21 10-20 PS22 10-22 PS23 10-22 PS24 12-26
PS25 02-27 PS26 10-28 PS27 10-28 PS28 11-03 PS29 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS29 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: minor function relocation

Two functions are essentially in the wrong file, and one of
them is a trivial wrapper.  Move the actual function and
just remove the wrapper.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie408734f02a8047621f3447b13f5d1786b070801
52796 master J ✗60B ✗T –R 0/2
LU-13814 osc: remove otp_rpc_item list
build failure (#113001)
60 unique failures stalled 474d S +4 −21
474d
build failure (#113001)
janitor: 60 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 12 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 11 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 14 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 24 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 24 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 24 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 24 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 18 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 18 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 30 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 18 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 18 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 15 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 18 other reviews
sanity2@zfs:test_119eseen in 23 other reviews
sanity2@zfs:test_119fseen in 22 other reviews
sanity2@zfs:test_119gseen in 22 other reviews
sanity2@zfs:test_119hseen in 22 other reviews
sanity2@zfs:test_119pseen in 14 other reviews
sanity2@zfs:test_119qseen in 14 other reviews
sanity2@zfs:test_398oseen in 27 other reviews
sanity2@zfs:test_398sseen in 14 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 28 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 17 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 73 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 32 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 16 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 17 other reviews
sanity-hsm@zfs:test_607bseen in 17 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 31 other reviews
sanityn@zfs:test_16jseen in 34 other reviews
build #113001 FAILURE
patchsets:
+5 earlier PS1 10-22 PS2 10-23 PS3 10-24 PS4 10-24 PS5 12-26
PS6 02-27 PS7 10-28 PS8 10-28 PS9 11-03 PS10 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS10 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove otp_rpc_item list

The otp_rpc_item list is only used to recognize if a page
is in an RPC, which an error condition that should only
occur if there's a bug in the code.  We can remove it, and
save ourselves two pointers in every page.

With this, this the osc_transfer_page is now 61 bytes in
size, fitting it inside a single cacheline(!).

This has a huge impact on DIO performance.  The net effect
of these reduction patches is about a 40-50% boost in single
threaded DIO performance beyond that achieved by cl_page
removal.

1 GiB transfer size IOR performance (single threaded)
Without the reduction patches:
Read: 57 GiB/s
Write: 48 GiB/s

With:
Read: 88 GiB/s
Write: 65 GiB/s
(Write performance is expected to be closer to read, but it
 may have been affected by a network issue.)

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Icb83298da1bdc797a33dae6ca3357b1ad3b3c848
52791 master J ✗60B ✗T –R 0/2
LU-13814 osc: remove otp_page_off
build failure (#112998)
60 unique failures stalled 474d S +23 −20
474d
build failure (#112998)
janitor: 60 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 16 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 15 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 18 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 22 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 22 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 22 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 22 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 16 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 16 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 28 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 16 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 21 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 18 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 21 other reviews
sanity2@zfs:test_119eseen in 29 other reviews
sanity2@zfs:test_119fseen in 28 other reviews
sanity2@zfs:test_119gseen in 28 other reviews
sanity2@zfs:test_119hseen in 28 other reviews
sanity2@zfs:test_119pseen in 22 other reviews
sanity2@zfs:test_119qseen in 22 other reviews
sanity2@zfs:test_398oseen in 33 other reviews
sanity2@zfs:test_398sseen in 22 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 20 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 74 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 34 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 19 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 20 other reviews
sanity-hsm@zfs:test_607bseen in 20 other reviews
sanity-pcc@ldiskfs+DNE:test_1cseen in 26 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 35 other reviews
build #112998 FAILURE
patchsets:
+13 earlier PS1 10-22 PS2 10-22 PS3 10-23 PS4 10-23 PS5 10-23 PS6 10-23 PS7 10-23 PS8 10-23 PS9 10-24 PS10 10-24 PS11 10-24 PS12 10-24 PS13 12-26
PS14 02-27 PS15 10-28 PS16 10-28 PS17 11-03 PS18 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS18 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove otp_page_off

otp_page_off can be determined from otp_obj_off, so we can
remove it.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I4ab9e71a8d6e79544241021b72eff2a95c592cb9
52790 master J ✗60B ✗T –R 0/2
LU-13814 osc: remove otp_cmd
build failure (#112995)
60 unique failures stalled 474d S +10 −9
474d
build failure (#112995)
janitor: 60 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 15 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 14 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 17 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 23 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 23 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 23 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 23 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 17 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 17 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 29 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 17 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 23 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 20 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 23 other reviews
sanity2@zfs:test_119eseen in 25 other reviews
sanity2@zfs:test_119fseen in 24 other reviews
sanity2@zfs:test_119gseen in 24 other reviews
sanity2@zfs:test_119hseen in 24 other reviews
sanity2@zfs:test_119pseen in 18 other reviews
sanity2@zfs:test_119qseen in 18 other reviews
sanity2@zfs:test_398oseen in 29 other reviews
sanity2@zfs:test_398sseen in 18 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 21 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 42 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 74 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 34 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 20 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 21 other reviews
sanity-hsm@zfs:test_607bseen in 21 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 35 other reviews
build #112995 FAILURE
patchsets:
+3 earlier PS1 10-22 PS2 10-22 PS3 12-26
PS4 02-27 PS5 10-28 PS6 10-28 PS7 11-03 PS8 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS8 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove otp_cmd

The otp_cmd information is only need in the OSC page, so
move it there so it's not allocated for DIO.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I2c32126e72d45dad5a2104ded0b55cdb1150adce
52797 master J ✗53B ✗T –R 0/2
LU-13814 osc: add osc_transfer_page comments
build failure (#113003)
53 unique failures stalled 474d S +22 −0
474d
build failure (#113003)
janitor: 53 test failures unique to this patch — racer@zfs:test_1, sanity2@ldiskfs+DNE:test_119e, sanity2@ldiskfs+DNE:test_119f +50 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
racer@zfs:test_1seen in 6 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 14 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 14 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 26 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 14 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 19 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 16 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 19 other reviews
sanity2@zfs:test_119eseen in 26 other reviews
sanity2@zfs:test_119fseen in 25 other reviews
sanity2@zfs:test_119gseen in 25 other reviews
sanity2@zfs:test_119hseen in 25 other reviews
sanity2@zfs:test_119pseen in 19 other reviews
sanity2@zfs:test_119qseen in 19 other reviews
sanity2@zfs:test_398oseen in 30 other reviews
sanity2@zfs:test_398sseen in 19 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 27 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 16 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 72 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 31 other reviews
sanity-flr@zfs:test_0gseen in 34 other reviews
sanity-flr@zfs:test_0hseen in 36 other reviews
sanity-flr@zfs:test_0jseen in 35 other reviews
sanity-flr@zfs:test_36dseen in 34 other reviews
sanity-flr@zfs:test_37seen in 37 other reviews
sanity-flr@zfs:test_44bseen in 15 other reviews
sanity-flr@zfs:test_61aseen in 41 other reviews
sanity-flr@zfs:test_61cseen in 34 other reviews
sanity-flr@zfs:test_70aseen in 62 other reviews
sanity-flr@zfs:test_200aseen in 34 other reviews
sanity-flr@zfs:test_200bseen in 34 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 16 other reviews
sanity-hsm@zfs:test_607bseen in 16 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 31 other reviews
sanityn@zfs:test_16jseen in 35 other reviews
build #113003 FAILURE
patchsets:
+5 earlier PS1 10-22 PS2 10-23 PS3 10-24 PS4 10-24 PS5 12-26
PS6 02-27 PS7 10-28 PS8 10-28 PS9 11-03 PS10 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS10 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: add osc_transfer_page comments

Add comments highlighting the critical nature of the OSC
transfer page for performance.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ifb282c0a5332fac3bf0a054a9e27b2e596fce8f0
52792 master J ✗59B ✗T –R 0/2
LU-13814 osc: remove otp_inode
build failure (#112999)
59 unique failures stalled 474d S +11 −18
474d
build failure (#112999)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 13 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 12 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 37 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 15 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 21 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 21 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 21 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 21 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 15 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 15 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 27 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 15 other reviews
sanity1@zfs:test_56xseen in 41 other reviews
sanity1@zfs:test_56xBseen in 22 other reviews
sanity1@zfs:test_56xaseen in 41 other reviews
sanity1@zfs:test_56xabseen in 19 other reviews
sanity1@zfs:test_56xcseen in 37 other reviews
sanity1@zfs:test_56ejseen in 22 other reviews
sanity2@zfs:test_119eseen in 24 other reviews
sanity2@zfs:test_119fseen in 23 other reviews
sanity2@zfs:test_119gseen in 23 other reviews
sanity2@zfs:test_119hseen in 23 other reviews
sanity2@zfs:test_119pseen in 16 other reviews
sanity2@zfs:test_119qseen in 16 other reviews
sanity2@zfs:test_398oseen in 28 other reviews
sanity2@zfs:test_398sseen in 16 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 19 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 41 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 73 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 33 other reviews
sanity-flr@zfs:test_0gseen in 35 other reviews
sanity-flr@zfs:test_0hseen in 37 other reviews
sanity-flr@zfs:test_0jseen in 36 other reviews
sanity-flr@zfs:test_36dseen in 35 other reviews
sanity-flr@zfs:test_37seen in 38 other reviews
sanity-flr@zfs:test_38seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 18 other reviews
sanity-flr@zfs:test_61aseen in 42 other reviews
sanity-flr@zfs:test_61cseen in 35 other reviews
sanity-flr@zfs:test_70aseen in 63 other reviews
sanity-flr@zfs:test_200aseen in 35 other reviews
sanity-flr@zfs:test_200bseen in 35 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 19 other reviews
sanity-hsm@zfs:test_607bseen in 19 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 35 other reviews
build #112999 FAILURE
patchsets:
+6 earlier PS1 10-22 PS2 10-22 PS3 10-23 PS4 10-24 PS5 10-24 PS6 12-26
PS7 02-27 PS8 10-28 PS9 10-28 PS10 11-03 PS11 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS11 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove otp_inode

We can add the inode to the osc object, which allows us to
remove the inode from the osc_transfer_page.  This removes
a pointer from the OTP struct, which is allocated for every
page in Lustre.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ida9c030bf085ad9606e19522714497c4adfa33de
54235 master J ✗59B ✗T –R 0/2
LU-13814 osc: remove otp_ll_index
build failure (#113004)
59 unique failures stalled 474d S +4 −18
474d
build failure (#113004)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 10 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 9 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 12 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 12 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 12 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 26 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 12 other reviews
sanity1@zfs:test_56xseen in 40 other reviews
sanity1@zfs:test_56xBseen in 16 other reviews
sanity1@zfs:test_56xaseen in 40 other reviews
sanity1@zfs:test_56xabseen in 13 other reviews
sanity1@zfs:test_56xcseen in 36 other reviews
sanity1@zfs:test_56ejseen in 16 other reviews
sanity2@zfs:test_119eseen in 24 other reviews
sanity2@zfs:test_119fseen in 23 other reviews
sanity2@zfs:test_119gseen in 23 other reviews
sanity2@zfs:test_119hseen in 23 other reviews
sanity2@zfs:test_119pseen in 17 other reviews
sanity2@zfs:test_119qseen in 17 other reviews
sanity2@zfs:test_398oseen in 28 other reviews
sanity2@zfs:test_398sseen in 17 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 27 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 14 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 72 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 31 other reviews
sanity-flr@zfs:test_0gseen in 34 other reviews
sanity-flr@zfs:test_0hseen in 36 other reviews
sanity-flr@zfs:test_0jseen in 35 other reviews
sanity-flr@zfs:test_36dseen in 33 other reviews
sanity-flr@zfs:test_37seen in 37 other reviews
sanity-flr@zfs:test_38seen in 34 other reviews
sanity-flr@zfs:test_44bseen in 13 other reviews
sanity-flr@zfs:test_61aseen in 41 other reviews
sanity-flr@zfs:test_61cseen in 34 other reviews
sanity-flr@zfs:test_70aseen in 62 other reviews
sanity-flr@zfs:test_200aseen in 34 other reviews
sanity-flr@zfs:test_200bseen in 34 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 13 other reviews
sanity-hsm@zfs:test_607bseen in 14 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 30 other reviews
sanityn@zfs:test_16jseen in 33 other reviews
build #113004 FAILURE
patchsets:
+2 earlier PS1 03-01 PS2 03-01
PS3 03-28 PS4 10-28 PS5 10-28 PS6 11-03 PS7 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS7 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove otp_ll_index

otp_ll_index is used to preserve the index for direct IO
pages, but direct IO pages do not use the index value, so
we can just store the index in the vmpage.

This reduces the osc_transfer_page size by a further 8
bytes, to 43 bytes.  This puts us tantalizingly close to
a single cacheline, but this can only be achieved by
removing the otp_pending_item list, which is challenging.

That will require converting osc extents to use an array
of pointers instead of a linked list.  This can be done,
and will improve performance because of that change by
itself.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I621388fb36a2a792525e07f35c1c948c4ae4292e
52383 master J ✗59B ✗T –R 0/2
LU-13814 clio: add args to cl_dio_pages_init
build failure (#112983)
59 unique failures stalled 474d M +31 −20
474d
build failure (#112983)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 32 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 5 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 32 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 4 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 33 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 7 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 16 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 16 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 16 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 16 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 6 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 6 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 22 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 6 other reviews
sanity1@zfs:test_56xseen in 39 other reviews
sanity1@zfs:test_56xBseen in 10 other reviews
sanity1@zfs:test_56xaseen in 39 other reviews
sanity1@zfs:test_56xabseen in 7 other reviews
sanity1@zfs:test_56xcseen in 35 other reviews
sanity1@zfs:test_56ejseen in 10 other reviews
sanity2@zfs:test_119eseen in 22 other reviews
sanity2@zfs:test_119fseen in 21 other reviews
sanity2@zfs:test_119gseen in 21 other reviews
sanity2@zfs:test_119hseen in 21 other reviews
sanity2@zfs:test_119pseen in 13 other reviews
sanity2@zfs:test_119qseen in 13 other reviews
sanity2@zfs:test_398oseen in 26 other reviews
sanity2@zfs:test_398sseen in 13 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 26 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 9 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 71 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 30 other reviews
sanity-flr@zfs:test_0gseen in 33 other reviews
sanity-flr@zfs:test_0hseen in 35 other reviews
sanity-flr@zfs:test_0jseen in 34 other reviews
sanity-flr@zfs:test_36dseen in 32 other reviews
sanity-flr@zfs:test_37seen in 36 other reviews
sanity-flr@zfs:test_44bseen in 8 other reviews
sanity-flr@zfs:test_61aseen in 40 other reviews
sanity-flr@zfs:test_61cseen in 33 other reviews
sanity-flr@zfs:test_70aseen in 60 other reviews
sanity-flr@zfs:test_200aseen in 33 other reviews
sanity-flr@zfs:test_200bseen in 33 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 9 other reviews
sanity-hsm@zfs:test_607bseen in 8 other reviews
sanity-pcc@zfs:test_100seen in 19 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 29 other reviews
sanityn@zfs:test_16jseen in 31 other reviews
build #112983 FAILURE
patchsets:
+10 earlier PS1 09-15 PS2 09-16 PS3 09-25 PS4 09-26 PS5 09-26 PS6 10-05 PS7 10-05 PS8 10-20 PS9 10-22 PS10 10-22
PS11 12-26 PS12 02-27 PS13 10-28 PS14 11-03 PS15 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS15 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: add args to cl_dio_pages_init

The inode and osc index are needed to set up the transfer
pages, so though they're unused here, they will be used in
the next patch.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ic41d1ca6db05c53ac86840379abcab2e62220b81
54234 master J ✗61B ✗T –R 0/2
LU-13814 osc: remove dedicated otp_obj_off member
build failure (#113002)
61 unique failures stalled 474d S +5 −6
474d
build failure (#113002)
janitor: 61 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB +58 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 11 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 10 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 13 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 13 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 13 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 26 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 13 other reviews
sanity1@zfs:test_56xseen in 40 other reviews
sanity1@zfs:test_56xBseen in 17 other reviews
sanity1@zfs:test_56xaseen in 40 other reviews
sanity1@zfs:test_56xabseen in 14 other reviews
sanity1@zfs:test_56xcseen in 36 other reviews
sanity1@zfs:test_56ejseen in 17 other reviews
sanity2@zfs:test_119eseen in 21 other reviews
sanity2@zfs:test_119fseen in 20 other reviews
sanity2@zfs:test_119gseen in 20 other reviews
sanity2@zfs:test_119hseen in 20 other reviews
sanity2@zfs:test_119pseen in 12 other reviews
sanity2@zfs:test_119qseen in 12 other reviews
sanity2@zfs:test_398oseen in 25 other reviews
sanity2@zfs:test_398sseen in 12 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 27 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 15 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 37 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 40 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 72 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 31 other reviews
sanity-flr@zfs:test_0gseen in 34 other reviews
sanity-flr@zfs:test_0hseen in 36 other reviews
sanity-flr@zfs:test_0jseen in 35 other reviews
sanity-flr@zfs:test_36dseen in 33 other reviews
sanity-flr@zfs:test_37seen in 37 other reviews
sanity-flr@zfs:test_38seen in 35 other reviews
sanity-flr@zfs:test_44bseen in 14 other reviews
sanity-flr@zfs:test_61aseen in 41 other reviews
sanity-flr@zfs:test_61cseen in 34 other reviews
sanity-flr@zfs:test_70aseen in 62 other reviews
sanity-flr@zfs:test_200aseen in 34 other reviews
sanity-flr@zfs:test_200bseen in 34 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 15 other reviews
sanity-hsm@zfs:test_607bseen in 15 other reviews
sanity-quota@zfs:test_90bseen in 1 other review
sanityn@ldiskfs+DNE:test_16jseen in 30 other reviews
sanityn@zfs:test_16jseen in 33 other reviews
build #113002 FAILURE
patchsets:
+1 earlier PS1 03-01
PS2 03-01 PS3 10-28 PS4 10-28 PS5 11-03 PS6 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS6 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: remove dedicated otp_obj_off member

otp_obj_off and the offset stored in the brw page are the
same, and the osc transfer page always contains a brw page.

So we can just always use the bp_off offset.  This saves
4 bytes in the osc_transfer_page, which is a meaningful
reduction in size.

Total size of osc_transfer_page (on x86_64) is now down to
51 bytes.  This does not have a huge performance impact
because the struct still occupies two cachelines.
(Cachelines are 32 bytes.)

Getting the size to 32 bytes will be challenging, but may
be possible.  For example, the otp_ll_index field may be
removable, and it should be possible - with effort - to
remove the otp_pending_list.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie38e8154e184c4c9bec38f1ddd482b02cac29ab9
54594 master J ✗60B ✗T –R 0/2
LU-17885 osc: move list to queue_dio_pages
build failure (#113005)
60 unique failures stalled 474d S +11 −10
474d
build failure (#113005)
janitor: 60 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB +57 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 9 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 35 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 8 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 36 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 11 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 20 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 11 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 11 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 26 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 11 other reviews
sanity1@zfs:test_56xseen in 40 other reviews
sanity1@zfs:test_56xBseen in 15 other reviews
sanity1@zfs:test_56xaseen in 40 other reviews
sanity1@zfs:test_56xabseen in 12 other reviews
sanity1@zfs:test_56xcseen in 36 other reviews
sanity1@zfs:test_56ejseen in 15 other reviews
sanity2@zfs:test_119eseen in 20 other reviews
sanity2@zfs:test_119fseen in 19 other reviews
sanity2@zfs:test_119gseen in 19 other reviews
sanity2@zfs:test_119hseen in 19 other reviews
sanity2@zfs:test_119pseen in 10 other reviews
sanity2@zfs:test_119qseen in 10 other reviews
sanity2@zfs:test_398oseen in 24 other reviews
sanity2@zfs:test_398sseen in 10 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 26 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 12 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 71 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 30 other reviews
sanity-flr@zfs:test_0gseen in 34 other reviews
sanity-flr@zfs:test_0hseen in 36 other reviews
sanity-flr@zfs:test_0jseen in 35 other reviews
sanity-flr@zfs:test_36dseen in 33 other reviews
sanity-flr@zfs:test_37seen in 37 other reviews
sanity-flr@zfs:test_38seen in 34 other reviews
sanity-flr@zfs:test_44bseen in 12 other reviews
sanity-flr@zfs:test_61aseen in 41 other reviews
sanity-flr@zfs:test_61cseen in 34 other reviews
sanity-flr@zfs:test_70aseen in 62 other reviews
sanity-flr@zfs:test_200aseen in 34 other reviews
sanity-flr@zfs:test_200bseen in 34 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 14 other reviews
sanity-hsm@zfs:test_607bseen in 13 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 32 other reviews
sanityn@zfs:test_16jseen in 33 other reviews
build #113005 FAILURE
patchsets:
+1 earlier PS1 03-28
PS2 05-29 PS3 10-28 PS4 10-28 PS5 11-03 PS6 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS6 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: move list to queue_dio_pages

Move list handling to queue_dio_pages.  This is a precursor
to removing list usage and this one actually makes things
less efficient, but only briefly.

Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I2f9671bf276b03e3ce5e9bae2d4239649ae25cec
52242 master J ✗53B ✗T –R 0/2
LU-13814 osc: drop cl_page structs for DIO
build failure (#112986)
53 unique failures stalled 474d M +14 −58
474d
build failure (#112986)
janitor: 53 test failures unique to this patch — sanity2@ldiskfs+DNE:test_119e, sanity2@ldiskfs+DNE:test_119f, sanity2@ldiskfs+DNE:test_119g +50 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_119eseen in 18 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 18 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 18 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 18 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 8 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 8 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 24 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 8 other reviews
sanity1@zfs:test_56xseen in 39 other reviews
sanity1@zfs:test_56xBseen in 13 other reviews
sanity1@zfs:test_56xaseen in 39 other reviews
sanity1@zfs:test_56xabseen in 10 other reviews
sanity1@zfs:test_56xcseen in 35 other reviews
sanity1@zfs:test_56ejseen in 13 other reviews
sanity2@zfs:test_119eseen in 20 other reviews
sanity2@zfs:test_119fseen in 19 other reviews
sanity2@zfs:test_119gseen in 19 other reviews
sanity2@zfs:test_119hseen in 19 other reviews
sanity2@zfs:test_119pseen in 9 other reviews
sanity2@zfs:test_119qseen in 9 other reviews
sanity2@zfs:test_398oseen in 24 other reviews
sanity2@zfs:test_398sseen in 9 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 26 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 11 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 71 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 30 other reviews
sanity-flr@zfs:test_0gseen in 33 other reviews
sanity-flr@zfs:test_0hseen in 35 other reviews
sanity-flr@zfs:test_0jseen in 34 other reviews
sanity-flr@zfs:test_36dseen in 32 other reviews
sanity-flr@zfs:test_37seen in 36 other reviews
sanity-flr@zfs:test_38seen in 33 other reviews
sanity-flr@zfs:test_44bseen in 10 other reviews
sanity-flr@zfs:test_61aseen in 40 other reviews
sanity-flr@zfs:test_61cseen in 33 other reviews
sanity-flr@zfs:test_70aseen in 60 other reviews
sanity-flr@zfs:test_200aseen in 33 other reviews
sanity-flr@zfs:test_200bseen in 33 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 10 other reviews
sanity-hsm@zfs:test_607bseen in 9 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 29 other reviews
sanityn@zfs:test_16jseen in 32 other reviews
build #112986 FAILURE
no vote yet: Qian Yingjin
patchsets:
+25 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-03 PS7 09-03 PS8 09-03 PS9 09-05 PS10 09-05 PS11 09-07 PS12 09-15 PS13 09-15 PS14 09-15 PS15 09-15 PS16 09-16 PS17 09-16 PS18 09-25 PS19 09-26 PS20 10-05 PS21 10-05 PS22 10-06 PS23 10-20 PS24 10-22 PS25 10-22
PS26 12-26 PS27 02-27 PS28 10-28 PS29 11-03 PS30 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS30 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: drop cl_page structs for DIO

This is the big one - this flips the switch and switches
DIO from using osc transfer pages which are part of
cl_pages and are initialized the same for buffered or DIO,
to using bare OSC transfer pages - no associated cl_page.

This patch is the primary goal of this series, but it stops
halfway, leaving out removing the cl_page allocation for
DIO, because that is better done in a separate patch.

Once that is done in the next patch, we'll see the
performance jump.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I7f664f0ffee97c9f2c778996423cef5ae79c3460
52243 master J ✗59B ✗T –R 0/2
LU-13814 clio: remove cl_page allocation for DIO
build failure (#112987)
59 unique failures stalled 474d M +1 −69
474d
build failure (#112987)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 33 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 6 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 33 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 5 other reviews
sanity1@ldiskfs+DNE:test_56xcseen in 34 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 8 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 19 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 19 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 19 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 19 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 9 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 9 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 25 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 9 other reviews
sanity1@zfs:test_56xseen in 39 other reviews
sanity1@zfs:test_56xBseen in 12 other reviews
sanity1@zfs:test_56xaseen in 39 other reviews
sanity1@zfs:test_56xabseen in 9 other reviews
sanity1@zfs:test_56xcseen in 35 other reviews
sanity1@zfs:test_56ejseen in 12 other reviews
sanity2@zfs:test_119eseen in 19 other reviews
sanity2@zfs:test_119fseen in 18 other reviews
sanity2@zfs:test_119gseen in 18 other reviews
sanity2@zfs:test_119hseen in 18 other reviews
sanity2@zfs:test_119pseen in 8 other reviews
sanity2@zfs:test_119qseen in 8 other reviews
sanity2@zfs:test_398oseen in 23 other reviews
sanity2@zfs:test_398sseen in 8 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 26 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 8 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 36 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 39 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 71 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 30 other reviews
sanity-flr@zfs:test_0gseen in 33 other reviews
sanity-flr@zfs:test_0hseen in 35 other reviews
sanity-flr@zfs:test_0jseen in 34 other reviews
sanity-flr@zfs:test_36dseen in 32 other reviews
sanity-flr@zfs:test_37seen in 36 other reviews
sanity-flr@zfs:test_38seen in 33 other reviews
sanity-flr@zfs:test_44bseen in 7 other reviews
sanity-flr@zfs:test_61aseen in 40 other reviews
sanity-flr@zfs:test_61cseen in 33 other reviews
sanity-flr@zfs:test_70aseen in 60 other reviews
sanity-flr@zfs:test_200aseen in 33 other reviews
sanity-flr@zfs:test_200bseen in 33 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 8 other reviews
sanity-hsm@zfs:test_607bseen in 10 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 29 other reviews
sanityn@zfs:test_16jseen in 31 other reviews
build #112987 FAILURE
patchsets:
+39 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-05 PS7 09-05 PS8 09-07 PS9 09-07 PS10 09-09 PS11 09-09 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-10 PS22 09-10 PS23 09-12 PS24 09-14 PS25 09-14 PS26 09-15 PS27 09-15 PS28 09-15 PS29 09-15 PS30 09-16 PS31 09-16 PS32 09-25 PS33 09-26 PS34 10-05 PS35 10-05 PS36 10-06 PS37 10-20 PS38 10-22 PS39 10-22
PS40 12-26 PS41 02-27 PS42 10-28 PS43 11-03 PS44 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS44 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: remove cl_page allocation for DIO

This removes the - now unused - cl_page allocation for DIO.
This will be followed by further patches cleaning up
various checks associated with transient cl pages, which no
longer exist.

With this patch, the performance benefits are realized.
This reduces the time to submit DIO pages by about 85%.
This results in about a 2.5-3x improvement in DIO
performance, because of other overheads and hardware
limitations.

Without this patch, IOR at 1 GiB transfer size:
Read: 22 GiB/s
Write: 20 GiB/s

With this patch, IOR at 1 GiB transfer size:
Read: 57 GiB/s
Write: 48 GiB/s

There's still some substantial overhead in the transfer
page allocations which is removed by the rest of this
series.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I406c69d69049484e477a671ada6b4e95357d9f39
54599 master J ✗3B ✗T –R 0/2
LU-17885 osc: move pending_list to OSC page
build failure (#113018)
3 unique failures stalled 475d M +66 −72
475d
build failure (#113018)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 1 other review
runtests@zfs:test_1NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
build #113018 FAILURE
patchsets:
+3 earlier PS1 03-28 PS2 03-28 PS3 05-29
PS4 10-28 PS5 10-28 PS6 11-03 PS7 11-03 PS8 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS8 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: move pending_list to OSC page

Move the pending list to the osc page.  This reduces the
size of osc_transfer_page by two full pointers, which is
quite significant - the entire struct is around 48 bytes,
so the removal of two pointers has a significant impact.

There's now little more than a BRW page in here.

It wouldn't be too difficult to replace the flags in here
with BRW flags, which would make the transfer page just a
BRW page.  This would give minimal benefit since it doesn't
actually reduce the allocated size, but might be nice.

Next, it is in theory possible to remove all per-page data
for DIO except the vmpage pointer.  For DIO, all per-page
data (even size and offset, even for encryption and
compression) can be inferred from a header associated with
the extent.

Still, at this point, one thread can submit DIO at over
100 GiB/s, so there's little point to further improvements.
Time is better spent in other areas.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I9c752f3dc2bb71c5ca2ed8bf6b3cb8db1756ad6c
56857 master J ✗3B ✗T –R 0/2
LU-17885 osc: inline osc_transfer_page_init
build failure (#113017)
3 unique failures stalled 475d S +6 −5
475d
build failure (#113017)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 1 other review
runtests-ssk@ldiskfs+SharedKey:test_1seen in 1 other review
runtests@zfs:test_1seen in 1 other review
build #113017 FAILURE
patchsets: PS1 11-03 PS2 11-03 PS3 11-03 PS4 11-03 PS5 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS5 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: inline osc_transfer_page_init

Inlining osc_transfer_page_init notably reduces CPU time
used in initializing pages - from 27% to 21% of total time.

In this microbenchmark, this reduces CPU time for DIO
overall by 10%, which should drive a performance improvement
of up to 11%.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I1193ce9f6a930aa07f2cc7f5bb8f4c4484ab2d03
52240 master J ✗59B ✗T –R 0/2
LU-13814 clio: add cdp_bytes
build failure (#112981)
59 unique failures stalled 475d XS +5 −0
475d
build failure (#112981)
janitor: 59 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +56 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 31 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 2 other reviews
sanity1@ldiskfs+DNE:test_56xaseen in 31 other reviews
sanity1@ldiskfs+DNE:test_56xabseen in 1 other review
sanity1@ldiskfs+DNE:test_56xcseen in 32 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 4 other reviews
sanity2@ldiskfs+DNE:test_119eseen in 13 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 13 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 13 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 13 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 3 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 3 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 19 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 3 other reviews
sanity1@zfs:test_56xseen in 38 other reviews
sanity1@zfs:test_56xBseen in 7 other reviews
sanity1@zfs:test_56xaseen in 38 other reviews
sanity1@zfs:test_56xabseen in 4 other reviews
sanity1@zfs:test_56xcseen in 34 other reviews
sanity1@zfs:test_56ejseen in 7 other reviews
sanity2@zfs:test_119eseen in 16 other reviews
sanity2@zfs:test_119fseen in 15 other reviews
sanity2@zfs:test_119gseen in 15 other reviews
sanity2@zfs:test_119hseen in 15 other reviews
sanity2@zfs:test_119pseen in 4 other reviews
sanity2@zfs:test_119qseen in 4 other reviews
sanity2@zfs:test_398oseen in 20 other reviews
sanity2@zfs:test_398sseen in 4 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 25 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 5 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 70 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 29 other reviews
sanity-flr@zfs:test_0gseen in 32 other reviews
sanity-flr@zfs:test_0hseen in 34 other reviews
sanity-flr@zfs:test_0jseen in 33 other reviews
sanity-flr@zfs:test_36dseen in 31 other reviews
sanity-flr@zfs:test_37seen in 35 other reviews
sanity-flr@zfs:test_38seen in 32 other reviews
sanity-flr@zfs:test_44bseen in 4 other reviews
sanity-flr@zfs:test_61aseen in 39 other reviews
sanity-flr@zfs:test_61cseen in 32 other reviews
sanity-flr@zfs:test_70aseen in 59 other reviews
sanity-flr@zfs:test_200aseen in 31 other reviews
sanity-flr@zfs:test_200bseen in 32 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 5 other reviews
sanity-hsm@zfs:test_607bseen in 5 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 27 other reviews
sanityn@zfs:test_16jseen in 30 other reviews
build #112981 FAILURE
patchsets:
+39 earlier PS1 09-03 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-03 PS7 09-03 PS8 09-03 PS9 09-05 PS10 09-07 PS11 09-07 PS12 09-09 PS13 09-09 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-10 PS22 09-10 PS23 09-10 PS24 09-10 PS25 09-12 PS26 09-14 PS27 09-14 PS28 09-15 PS29 09-15 PS30 09-16 PS31 09-24 PS32 09-25 PS33 09-26 PS34 09-26 PS35 10-05 PS36 10-05 PS37 10-20 PS38 10-22 PS39 10-22
PS40 12-26 PS41 02-27 PS42 10-28 PS43 11-03 PS44 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS44 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: add cdp_bytes

This is one of several things needed to do
prep_transfer_page in the DIO path, so add it.

Test-Parameters: fortestonly
Test-Parameters: forjanitoronly
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I622b43ba0cee5fb3124fc30dd177f47df3aef3c0
52231 master J ✗1B ✗T –R 0/2
LU-13814 clio: add cdp_osc_tpages array
build failure (#112973)
1 unique failure stalled 475d S +33 −3
475d
build failure (#112973)
janitor: 1 test failure unique to this patch — sanity-quota@zfs:test_1b
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-quota@zfs:test_1bseen in 38 other reviews
build #112973 FAILURE
patchsets:
+36 earlier PS1 09-02 PS2 09-02 PS3 09-02 PS4 09-03 PS5 09-03 PS6 09-03 PS7 09-03 PS8 09-03 PS9 09-05 PS10 09-07 PS11 09-09 PS12 09-09 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-12 PS22 09-14 PS23 09-14 PS24 09-15 PS25 09-15 PS26 09-16 PS27 09-24 PS28 09-25 PS29 09-26 PS30 09-26 PS31 10-05 PS32 10-05 PS33 10-20 PS34 10-22 PS35 10-22 PS36 12-26
PS37 02-27 PS38 10-28 PS39 11-03 PS40 04-29 PS41 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS41 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 clio: add cdp_osc_tpages array

This adds the OSC transfer pages array to the cl_dio_pages
struct, which will soon replace cl_pages for DIO.

Test-Parameters: trivial
Test-Parameters: testlist=sanity-sec env=ONLY=52,59a,59b
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I2986bfc1b54b3e9e6c2e5517f130ace8ff2e4ef2
52234 master J ✗51B ✗T –R 0/2
LU-13814 osc: move from/to to otp prep
build failure (#112976)
51 unique failures stalled 475d S +9 −7
475d
build failure (#112976)
janitor: 51 test failures unique to this patch — sanity1@ldiskfs+DNE:test_56x, sanity1@ldiskfs+DNE:test_56xB, sanity1@ldiskfs+DNE:test_56xa +48 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56xseen in 30 other reviews
sanity1@ldiskfs+DNE:test_56xBseen in 1 other review
sanity1@ldiskfs+DNE:test_56xaseen in 30 other reviews
sanity1@ldiskfs+DNE:test_56xabNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_56xcseen in 31 other reviews
sanity1@ldiskfs+DNE:test_56ejseen in 3 other reviews
sanity1@zfs:test_56xseen in 38 other reviews
sanity1@zfs:test_56xBseen in 6 other reviews
sanity1@zfs:test_56xaseen in 38 other reviews
sanity1@zfs:test_56xabseen in 3 other reviews
sanity1@zfs:test_56xcseen in 34 other reviews
sanity1@zfs:test_56ejseen in 6 other reviews
sanity2@zfs:test_119eseen in 15 other reviews
sanity2@zfs:test_119fseen in 14 other reviews
sanity2@zfs:test_119gseen in 14 other reviews
sanity2@zfs:test_119hseen in 14 other reviews
sanity2@zfs:test_119pseen in 3 other reviews
sanity2@zfs:test_119qseen in 3 other reviews
sanity2@zfs:test_398oseen in 19 other reviews
sanity2@zfs:test_398sseen in 3 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 25 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 4 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 70 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 29 other reviews
sanity-flr@zfs:test_0gseen in 32 other reviews
sanity-flr@zfs:test_0hseen in 34 other reviews
sanity-flr@zfs:test_0jseen in 33 other reviews
sanity-flr@zfs:test_36dseen in 31 other reviews
sanity-flr@zfs:test_37seen in 35 other reviews
sanity-flr@zfs:test_38seen in 31 other reviews
sanity-flr@zfs:test_44bseen in 3 other reviews
sanity-flr@zfs:test_61aseen in 39 other reviews
sanity-flr@zfs:test_61cseen in 32 other reviews
sanity-flr@zfs:test_70aseen in 59 other reviews
sanity-flr@zfs:test_200aseen in 31 other reviews
sanity-flr@zfs:test_200bseen in 32 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 4 other reviews
sanity-hsm@zfs:test_607bseen in 4 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 27 other reviews
sanityn@zfs:test_16jseen in 30 other reviews
build #112976 FAILURE
patchsets:
+37 earlier PS1 09-02 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-03 PS7 09-03 PS8 09-05 PS9 09-07 PS10 09-09 PS11 09-09 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-10 PS22 09-12 PS23 09-14 PS24 09-14 PS25 09-15 PS26 09-15 PS27 09-16 PS28 09-24 PS29 09-25 PS30 09-26 PS31 09-26 PS32 10-05 PS33 10-05 PS34 10-20 PS35 10-22 PS36 10-22 PS37 12-26
PS38 02-27 PS39 10-28 PS40 11-03 PS41 04-29 PS42 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS42 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: move from/to to otp prep

Everything in the otp needs to be init inside the OTP
preparation function, so move from and to.

Test-Parameters: fortestonly
Test-Parameters: testlist=sanity-sec env=ONLY=52,59a,59b
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Id18a7ddbaf1c2f46b32b7d927df93792126ef5b3
52233 master J ✗45B ✗T –R 0/2
LU-13814 osc: move srvlock to prep otp
build failure (#112975)
45 unique failures stalled 475d XS +6 −3
475d
build failure (#112975)
janitor: 45 test failures unique to this patch — sanity1@zfs:test_56x, sanity1@zfs:test_56xB, sanity1@zfs:test_56xa +42 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@zfs:test_56xseen in 38 other reviews
sanity1@zfs:test_56xBseen in 6 other reviews
sanity1@zfs:test_56xaseen in 38 other reviews
sanity1@zfs:test_56xabseen in 3 other reviews
sanity1@zfs:test_56xcseen in 34 other reviews
sanity1@zfs:test_56ejseen in 6 other reviews
sanity2@zfs:test_119eseen in 15 other reviews
sanity2@zfs:test_119fseen in 14 other reviews
sanity2@zfs:test_119gseen in 14 other reviews
sanity2@zfs:test_119hseen in 14 other reviews
sanity2@zfs:test_119pseen in 3 other reviews
sanity2@zfs:test_119qseen in 3 other reviews
sanity2@zfs:test_398oseen in 19 other reviews
sanity2@zfs:test_398sseen in 3 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 25 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 4 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 70 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 29 other reviews
sanity-flr@zfs:test_0gseen in 32 other reviews
sanity-flr@zfs:test_0hseen in 34 other reviews
sanity-flr@zfs:test_0jseen in 33 other reviews
sanity-flr@zfs:test_36dseen in 31 other reviews
sanity-flr@zfs:test_37seen in 35 other reviews
sanity-flr@zfs:test_38seen in 31 other reviews
sanity-flr@zfs:test_44bseen in 3 other reviews
sanity-flr@zfs:test_61aseen in 39 other reviews
sanity-flr@zfs:test_61cseen in 32 other reviews
sanity-flr@zfs:test_70aseen in 59 other reviews
sanity-flr@zfs:test_200aseen in 31 other reviews
sanity-flr@zfs:test_200bseen in 32 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 4 other reviews
sanity-hsm@zfs:test_607bseen in 4 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 27 other reviews
sanityn@zfs:test_16jseen in 30 other reviews
build #112975 FAILURE
patchsets:
+34 earlier PS1 09-02 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-03 PS7 09-05 PS8 09-07 PS9 09-09 PS10 09-09 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-12 PS20 09-14 PS21 09-14 PS22 09-15 PS23 09-15 PS24 09-16 PS25 09-24 PS26 09-25 PS27 09-26 PS28 09-26 PS29 10-05 PS30 10-05 PS31 10-20 PS32 10-22 PS33 10-22 PS34 12-26
PS35 02-27 PS36 10-28 PS37 11-03 PS38 04-29 PS39 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS39 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: move srvlock to prep otp

Everything in the otp needs to be init inside the OTP
preparation function, so move srvlock.

Test-Parameters: fortestonly
Test-Parameters: testlist=sanity-sec env=ONLY=52,59a,59b
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I1940101c9e21e345d20d93820951fe26eab95cf6
52235 master J ✗46B ✗T –R 0/2
LU-13814 osc: rename osc_prep_transfer_page
build failure (#112977)
46 unique failures stalled 475d S +19 −20
475d
build failure (#112977)
janitor: 46 test failures unique to this patch — recovery-small@zfs:test_155, sanity1@zfs:test_56x, sanity1@zfs:test_56xB +43 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@zfs:test_56xseen in 38 other reviews
sanity1@zfs:test_56xBseen in 6 other reviews
sanity1@zfs:test_56xaseen in 38 other reviews
sanity1@zfs:test_56xabseen in 3 other reviews
sanity1@zfs:test_56xcseen in 34 other reviews
sanity1@zfs:test_56ejseen in 6 other reviews
sanity2@zfs:test_119eseen in 15 other reviews
sanity2@zfs:test_119fseen in 14 other reviews
sanity2@zfs:test_119gseen in 14 other reviews
sanity2@zfs:test_119hseen in 14 other reviews
sanity2@zfs:test_119pseen in 3 other reviews
sanity2@zfs:test_119qseen in 3 other reviews
sanity2@zfs:test_398oseen in 19 other reviews
sanity2@zfs:test_398sseen in 3 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 25 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 4 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 70 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 29 other reviews
sanity-flr@zfs:test_0gseen in 32 other reviews
sanity-flr@zfs:test_0hseen in 34 other reviews
sanity-flr@zfs:test_0jseen in 33 other reviews
sanity-flr@zfs:test_36dseen in 31 other reviews
sanity-flr@zfs:test_37seen in 35 other reviews
sanity-flr@zfs:test_38seen in 31 other reviews
sanity-flr@zfs:test_44bseen in 3 other reviews
sanity-flr@zfs:test_61aseen in 39 other reviews
sanity-flr@zfs:test_61cseen in 32 other reviews
sanity-flr@zfs:test_70aseen in 59 other reviews
sanity-flr@zfs:test_200aseen in 31 other reviews
sanity-flr@zfs:test_200bseen in 32 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 4 other reviews
sanity-hsm@zfs:test_607bseen in 4 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 27 other reviews
sanityn@zfs:test_16jseen in 30 other reviews
build #112977 FAILURE
no vote yet: Andreas Dilger
patchsets:
+37 earlier PS1 09-02 PS2 09-03 PS3 09-03 PS4 09-03 PS5 09-03 PS6 09-03 PS7 09-03 PS8 09-05 PS9 09-07 PS10 09-09 PS11 09-09 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-10 PS16 09-10 PS17 09-10 PS18 09-10 PS19 09-10 PS20 09-10 PS21 09-10 PS22 09-10 PS23 09-12 PS24 09-14 PS25 09-14 PS26 09-15 PS27 09-15 PS28 09-16 PS29 09-24 PS30 09-25 PS31 09-26 PS32 09-26 PS33 10-05 PS34 10-05 PS35 10-20 PS36 10-22 PS37 10-22
PS38 12-26 PS39 02-27 PS40 10-28 PS41 11-03 PS42 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS42 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: rename osc_prep_transfer_page

osc_transfer_page_init is a better match for osc_page_init.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Id12eec932eb4aab00139f08532b218c12e6ffba4
52493 master J ✗54B ✗T –R 0/2
LU-13814 llite: fix RDMA only check for DIO pages
build failure (#112974)
54 unique failures stalled 475d M +56 −30
475d
build failure (#112974)
janitor: 54 test failures unique to this patch — recovery-small@zfs:test_155, sanity2@ldiskfs+DNE:test_119e, sanity2@ldiskfs+DNE:test_119f +51 more
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_119eseen in 12 other reviews
sanity2@ldiskfs+DNE:test_119fseen in 12 other reviews
sanity2@ldiskfs+DNE:test_119gseen in 12 other reviews
sanity2@ldiskfs+DNE:test_119hseen in 12 other reviews
sanity2@ldiskfs+DNE:test_119pseen in 2 other reviews
sanity2@ldiskfs+DNE:test_119qseen in 2 other reviews
sanity2@ldiskfs+DNE:test_398oseen in 18 other reviews
sanity2@ldiskfs+DNE:test_398sseen in 2 other reviews
sanity1@zfs:test_56xseen in 38 other reviews
sanity1@zfs:test_56xBseen in 5 other reviews
sanity1@zfs:test_56xaseen in 38 other reviews
sanity1@zfs:test_56xabseen in 2 other reviews
sanity1@zfs:test_56xcseen in 34 other reviews
sanity1@zfs:test_56ejseen in 5 other reviews
sanity2@zfs:test_119eseen in 14 other reviews
sanity2@zfs:test_119fseen in 13 other reviews
sanity2@zfs:test_119gseen in 13 other reviews
sanity2@zfs:test_119hseen in 13 other reviews
sanity2@zfs:test_119pseen in 2 other reviews
sanity2@zfs:test_119qseen in 2 other reviews
sanity2@zfs:test_398oseen in 18 other reviews
sanity2@zfs:test_398sseen in 2 other reviews
sanity-flr@ldiskfs+DNE:test_0gseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_0hseen in 33 other reviews
sanity-flr@ldiskfs+DNE:test_0jseen in 32 other reviews
sanity-flr@ldiskfs+DNE:test_36dseen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_37seen in 31 other reviews
sanity-flr@ldiskfs+DNE:test_38seen in 25 other reviews
sanity-flr@ldiskfs+DNE:test_44bseen in 3 other reviews
sanity-flr@ldiskfs+DNE:test_50aseen in 35 other reviews
sanity-flr@ldiskfs+DNE:test_50bseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_50dseen in 34 other reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 38 other reviews
sanity-flr@ldiskfs+DNE:test_61cseen in 29 other reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 70 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 30 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 28 other reviews
sanity-flr@zfs:test_0gseen in 32 other reviews
sanity-flr@zfs:test_0hseen in 34 other reviews
sanity-flr@zfs:test_0jseen in 33 other reviews
sanity-flr@zfs:test_36dseen in 31 other reviews
sanity-flr@zfs:test_37seen in 35 other reviews
sanity-flr@zfs:test_38seen in 31 other reviews
sanity-flr@zfs:test_44bseen in 2 other reviews
sanity-flr@zfs:test_61aseen in 39 other reviews
sanity-flr@zfs:test_61cseen in 32 other reviews
sanity-flr@zfs:test_70aseen in 59 other reviews
sanity-flr@zfs:test_200aseen in 30 other reviews
sanity-flr@zfs:test_200bseen in 32 other reviews
sanity-hsm@ldiskfs+DNE:test_607bseen in 3 other reviews
sanity-hsm@zfs:test_607bseen in 3 other reviews
sanityn@ldiskfs+DNE:test_16jseen in 27 other reviews
sanityn@zfs:test_16jseen in 30 other reviews
build #112974 FAILURE
patchsets:
+10 earlier PS1 09-24 PS2 09-25 PS3 09-26 PS4 09-26 PS5 10-05 PS6 10-05 PS7 10-20 PS8 10-22 PS9 10-22 PS10 12-26
PS11 02-27 PS12 10-28 PS13 11-03 PS14 04-29 PS15 05-01
owner Patrick Farrell · uploader Patrick Farrell · PS15 uploaded 475d ago · NEW · open in Gerrit ↗
commit message
LU-13814 llite: fix RDMA only check for DIO pages

We need to add the check for RDMA only pages and unaligned
DIO for DIO pages as we move to them.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I987fecac7874b933a1b558ef442c3ef17120740a
56872 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp from extent_finish +
build failure (#108803)
3 unique failures stalled 653d S +14 −14
653d
build failure (#108803)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 26 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 26 other reviews
runtests@zfs:test_1seen in 20 other reviews
build #108803 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp from extent_finish +

Remove otp usage in osc_extent_finish and
osc_flush_async_page.

Slow progress.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I9a3a0fe525c93ca264fd60b9597f8ae76ec53398
56871 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp from osc_queue_async_io
build failure (#108802)
3 unique failures stalled 653d S +18 −19
653d
build failure (#108802)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 25 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 26 other reviews
runtests@zfs:test_1seen in 19 other reviews
build #108802 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp from osc_queue_async_io

Remove otp usage in osc_queue_async_io

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I527228cc69b9a976c40cafc43e4ead322106df3f
56867 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp_page_off and brw_page2otp
build failure (#108798)
3 unique failures stalled 653d M +23 −37
653d
build failure (#108798)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 21 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 24 other reviews
runtests@zfs:test_1seen in 15 other reviews
build #108798 FAILURE
patchsets: PS1 11-03 PS2 11-03
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp_page_off and brw_page2otp

Remove simple functions to simplify otp->brw_page change

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Ie72724db96ae4e8ed7924952ca8652d426d7926b
56870 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp2osc
build failure (#108801)
3 unique failures stalled 653d S +10 −11
653d
build failure (#108801)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 23 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 24 other reviews
runtests@zfs:test_1seen in 17 other reviews
build #108801 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp2osc

Remove these simple functions to make transition to brw
page easier.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Icef7e9998ed7261c0a0d3963684915c6d7d2bc26
56868 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp_index and otp2osc_page
build failure (#108800)
3 unique failures stalled 653d S +6 −21
653d
build failure (#108800)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 24 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 24 other reviews
runtests@zfs:test_1seen in 18 other reviews
build #108800 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp_index and otp2osc_page

Remove these simple functions to make transition to brw
page easier.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I7ab38fe8e1797fdfc783f9437d35bd36e54942d8
56869 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp2cl_page
build failure (#108799)
3 unique failures stalled 653d S +8 −22
653d
build failure (#108799)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 22 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 24 other reviews
runtests@zfs:test_1seen in 16 other reviews
build #108799 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp2cl_page

Remove these simple functions to make transition to brw
page easier.

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Iad78799a010ee818c802326c2c40958de98daadd
56865 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp_count macro
build failure (#108797)
3 unique failures stalled 653d M +28 −22
653d
build failure (#108797)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 20 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 21 other reviews
runtests@zfs:test_1seen in 14 other reviews
build #108797 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp_count macro

Remove macro to simplify otp->brw_page change

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I17f41f7e49fb502d21c30727945b62532887bd68
56866 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp_obj_off macro
build failure (#108796)
3 unique failures stalled 653d M +28 −31
653d
build failure (#108796)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 19 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 21 other reviews
runtests@zfs:test_1seen in 13 other reviews
build #108796 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp_obj_off macro

Remove macro to simplify otp->brw_page change

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Id08e579da486c8d727d38f401d234ded0d66efa7
56864 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp_page and otp_flags macros
build failure (#108795)
3 unique failures stalled 653d S +17 −19
653d
build failure (#108795)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 21 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 21 other reviews
runtests@zfs:test_1seen in 15 other reviews
build #108795 FAILURE
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp_page and otp_flags macros

Remove macros to simplify otp->brw_page change

Test-Parameters: trivial
Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I500c1d37433a9b69eb1568caccf729a47d0a2d79
56860 master J ✗3B ✗T –R 0/2
LU-17885 osc: remove otp flags
build failure (#108794)
3 unique failures stalled 653d M +18 −34
653d
build failure (#108794)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 19 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 20 other reviews
runtests@zfs:test_1seen in 13 other reviews
build #108794 FAILURE
patchsets: PS1 11-03 PS2 11-03
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: remove otp flags

Remove usage of otp flags, move entirely in to BRW page.

And now OTP is just another name for a brw page.

The next patch is clear enough.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: Ic90118cbe622b8d777b5f162d0b8784892db1495
56859 master J ✗3B ✗T –R 0/2
LU-17885 osc: begin move to brw_page only
build failure (#108791)
3 unique failures stalled 653d M +29 −39
653d
build failure (#108791)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 21 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 21 other reviews
runtests@zfs:test_1seen in 15 other reviews
build #108791 FAILURE
patchsets: PS1 11-03 PS2 11-03
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 653d ago · NEW · open in Gerrit ↗
commit message
LU-17885 osc: begin move to brw_page only

The osc_transfer_page is now a thin wrapper around the BRW
page, so let's work on removing it entirely.

This patch pushes cp_type in to the brw page flags, and
preps the rest of the OTP flags in the BRW flags.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I045dc064a44ee098bcfc6c9b2dd4f627a03a32d8
50577 master J ✗6B ✓T ✗9R 0/2−
LU-17473 tests: add racing tests of aio
janitor: 6 test failures unique to this patch — sanity2@ldiskfs+DNE:test_119s, sanity2@ldiskfs+DNE:test_119t, sanity2@ldiskfs+DNE:test_119u +3 more
6 unique failures stalled 654d M +233 −0
654d
janitor: 6 test failures unique to this patch — sanity2@ldiskfs+DNE:test_119s, sanity2@ldiskfs+DNE:test_119t, sanity2@ldiskfs+DNE:test_119u +3 more
enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-dne-subtest-change, review-dne-zfs-part-1, review-dne-zfs-subtest-change, review-ldiskfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_119sNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_119tNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_119uNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_119sNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_119tNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_119uNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.3 / x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.9 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-subtest-change failed 3× RHEL 9.3 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.9 / x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-zfs-subtest-change failed 3× RHEL 8.9 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.3 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9 / x86_64, RHEL 9.3 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
10 optional test failure(s) — informational
build #108712 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Shaun Tancheff, Andreas Dilger
patchsets:
+55 earlier PS1 04-07 PS2 04-07 PS3 04-07 PS4 04-10 PS5 04-10 PS6 04-10 PS7 04-19 PS8 04-24 PS9 05-10 PS10 05-14 PS11 05-15 PS12 05-24 PS13 05-24 PS14 05-30 PS15 05-30 PS16 05-31 PS17 05-31 PS18 05-31 PS19 05-31 PS20 06-06 PS21 06-06 PS22 06-06 PS23 06-09 PS24 06-09 PS25 06-09 PS26 06-17 PS27 06-29 PS28 07-27 PS29 08-01 PS30 08-01 PS31 08-03 PS32 08-07 PS33 08-09 PS34 08-10 PS35 08-13 PS36 08-13 PS37 08-13 PS38 08-14 PS39 08-14 PS40 08-14 PS41 08-15 PS42 08-15 PS43 08-15 PS44 08-15 PS45 08-15 PS46 08-21 PS47 09-07 PS48 09-07 PS49 09-09 PS50 09-15 PS51 09-15 PS52 09-28 PS53 10-24 PS54 01-16 PS55 01-16
PS56 01-26 PS57 01-26 PS58 02-08 PS59 03-01 Andreas Dilger PS60 11-02
your previous vote: -1 on PS48 (2023-09-08 16:36) — now at PS60
owner Patrick Farrell · uploader Patrick Farrell · PS60 uploaded 655d ago · NEW · open in Gerrit ↗
commit message
LU-17473 tests: add racing tests of aio

This patch adds several racing tests for aio.  This has
been separated from the other patches in the unaligned DIO
series because the aio issue uncovered by these tests is
pre-existing and I want to separate solving it from the
unaligned DIO patches.

Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: I3571a9a620299137624318e503ab901470f97823
55057 master J ✗1B ✓T ✗15R 0/2
LU-17831 osc: batch discard for read locks
janitor: 1 test failure unique to this patch — replay-vbr@zfs:test_5b
1 unique failure stalled 832d M +49 −7
832d
janitor: 1 test failure unique to this patch — replay-vbr@zfs:test_5b
enforced failed: review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-part-7, review-dne-part-8, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-ldiskfs, review-zfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
replay-vbr@zfs:test_5bseen in 9 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.3/x86_64 ran 6 tests. 2 tests failed: sanity-pfl, sanity. session
review-dne-part-2 crashed RHEL 9.3/x86_64 ran 11 tests. 3 tests failed: sanity-sec, sanity-lfsck, replay-dual. %% THIS TEST SESSION CRASHED %% session
review-dne-part-3 RHEL 9.3/x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 crashed RHEL 9.3/x86_64 ran 11 tests. 5 tests failed: sanity-quota, sanity-hsm, sanity-flr, sanity-dom, replay-ost-single. %% THIS TE session
review-dne-part-5 RHEL 9.3/x86_64 ran 10 tests. 3 tests failed: sanityn, sanity-scrub, recovery-small. session
review-dne-part-6 RHEL 9.3/x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. session
review-dne-part-7 RHEL 9.3/x86_64 ran 4 tests. 1 tests failed: sanity-pcc. session
review-dne-part-8 crashed RHEL 9.3/x86_64 ran 4 tests. 1 tests failed: replay-dual. %% THIS TEST SESSION CRASHED %% session
review-dne-selinux-ssk-part-1 RHEL 8.9/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.9/x86_64 ran 9 tests. 3 tests failed: sanity-selinux, sanity-sec, recovery-small. session
review-ldiskfs RHEL 8.9/x86_64, SLES 15.5/x86_64 ran 7 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.3/x86_64 ran 7 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64 ran 7 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64, RHEL 9.3/x86_64 ran 7 tests. 1 tests failed: sanity. session
review-zfs crashed RHEL 8.9/x86_64 ran 16 tests. 5 tests failed: sanity-lsnapshot, replay-ost-single, replay-single, sanity-flr, sanity-quota. % session
3 optional test failure(s) — informational
build #104671 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 833d ago · NEW · open in Gerrit ↗
commit message
LU-17831 osc: batch discard for read locks

POC patch

Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: If22f7d535eef620bbf01c7d738d447e304ca7ad6
52778 master J ✓B ✓T ✗9R 0/2
LU-13802 tests: hybrid IO consistency test
enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-ldiskfs, review-ldiskfs-arm
hio stalled 845d S +48 −0
845d
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.9/x86_64, RHEL 9.3/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.9/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.2/x86_64, RHEL 9.3/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64, SLES 15.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.9/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #103740 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+13 earlier PS1 10-20 PS2 10-20 PS3 10-20 PS4 10-24 PS5 10-24 PS6 02-10 PS7 02-10 PS8 02-12 PS9 02-12 PS10 02-12 PS11 02-13 PS12 02-13 PS13 03-13
PS14 03-13 PS15 03-21 PS16 03-21 PS17 03-27 PS18 04-01
owner Patrick Farrell · uploader Patrick Farrell · PS18 uploaded 870d ago · NEW · open in Gerrit ↗
commit message
LU-13802 tests: hybrid IO consistency test

Hybrid IO is an IO path change, and we should make sure it
produces consistent data.

Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I926e7cf23c61148b86b9492ed07138ab9d09a103
52822 master J !B ✓T ✗10R 0/2
LU-13802 llite: add ZFS check for hybrid IO
enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-ldiskfs, review-ldiskfs-arm
hio stalled 845d M +104 −19
845d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.9/x86_64, RHEL 9.3/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.9/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.9/x86_64 ran 4 tests. 1 tests failed: sanity-sec. session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 2 tests failed: sanity-lnet, sanity. session
review-ldiskfs RHEL 8.9/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.2/x86_64, RHEL 9.3/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64, SLES 15.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.9/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #103741 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+9 earlier PS1 10-24 PS2 02-10 PS3 02-10 PS4 02-12 PS5 02-12 PS6 02-12 PS7 02-13 PS8 02-13 PS9 03-13
PS10 03-13 PS11 03-21 PS12 03-21 PS13 03-27 PS14 04-01
owner Patrick Farrell · uploader Patrick Farrell · PS14 uploaded 870d ago · NEW · open in Gerrit ↗
commit message
LU-13802 llite: add ZFS check for hybrid IO

Because by default ZFS only does one DIO operation per
commit interval and commit intervals are in seconds, ZFS
performance for DIO is extremely poor.  This means we
should basically never do hybrid IO switching when using
ZFS.

Implement this.

Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I633799cd080e4f8bbab758c972de592d7ff28725
53688 master J ✗3B ✗T –R 0/2
LU-17433 llite: move dio range locking to DIO
build failure (#103612)
3 unique failures stalled 846d S +33 −13
846d
build failure (#103612)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 12 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 12 other reviews
runtests@zfs:test_1seen in 5 other reviews
build #103612 FAILURE
no vote yet: Qian Yingjin
patchsets: PS1 01-16 PS2 01-16 PS3 02-27 PS4 03-28 PS5 03-28
owner Patrick Farrell · uploader Patrick Farrell · PS5 uploaded 874d ago · NEW · open in Gerrit ↗
commit message
LU-17433 llite: move dio range locking to DIO

For async DIO writes, we need to do the range unlocking
after the IO has completed, not before, otherwise we could
get write reordering.

So we move the unlocking to the cl_dio_aio_end.

Also rename lli_write_tree, because it's not just used for
writes.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I8ed0f9e41089f82260ec33e47637b785242240dc
54200 master J ✗3B ✗T –R 0/2
LU-17433 osc: add dlmlock handling to DIO
build failure (#103613)
3 unique failures stalled 846d S +15 −7
846d
build failure (#103613)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 12 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 12 other reviews
runtests@zfs:test_1seen in 5 other reviews
build #103613 FAILURE
no vote yet: Qian Yingjin
patchsets: PS1 02-27 PS2 03-28 PS3 03-28
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 874d ago · NEW · open in Gerrit ↗
commit message
LU-17433 osc: add dlmlock handling to DIO

In order to safely do parallel DIO with dlmlocks, we need
to take and put a reference on the dlmlock used for each
DIO.  With the new cl_dio_pages init and free code, this is
straightforward.

With this change, we can allow parallel DIO even when using
dlmlocks.

This will also allow async hybrid writes.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I27b2d57e90178e0b9bbfd3942eec02ec74d3f022
54202 master J ✗3B ✗T –R 0/2
LU-17433 llite: implement async hybrid writes
build failure (#103615)
3 unique failures stalled 846d M +36 −16
846d
build failure (#103615)
janitor: 3 test failures unique to this patch — runtests@ldiskfs+DNE:test_1, runtests-ssk@ldiskfs+SharedKey:test_1, runtests@zfs:test_1
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 12 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 12 other reviews
runtests@zfs:test_1seen in 5 other reviews
build #103615 FAILURE
no vote yet: Qian Yingjin, Andreas Dilger
patchsets: PS1 02-27 PS2 03-28 PS3 03-28
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 874d ago · NEW · open in Gerrit ↗
commit message
LU-17433 llite: implement async hybrid writes

This patch implements async hybrid writes.

This hugely boosts the performance of hybrid writes at
smaller sizes.  For example, on my local VM system, 2M
hybrid writes normally go at 230 MiB/s (roughly the
speed of storage), and buffered writes at 1.4 GiB/s.

With this patch, 2M hybrid writes go at ~6.8 GiB/s.

Note this does not include parallel data copies or page
pool usage, which are also in flight and should increase
this substantially.

This should cause us to re-evaluate when we do hybrid IO
vs regular buffered writes, since hybrid will now be faster
in all cases except for write sizes less than one page.
*However*, currently hybrid will not aggregate async writes,
so it will result in a stream of small RPCs to the server.
This is in fact something that can be resolved, but for
now this problem can be avoided by not changing the
switching threshold.

Note the current form is based on an incomplete version of
hybrid IO and not suitable for landing, but this is just a
minor thing which will be resolved when the main hybrid
patches are complete.

This patch series *does* depend on the DIO simplification
series, because of some changes to DIO tracking that code
makes.  This dependency could be removed at the cost of
duplicating a decent chunk of the DIO simplification series,
so I'd rather not.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I009bc37c92f391c0304b60fa207d220fa3172fa6
45472 master J ✗1B ✓T ✗9R 0/2−
LU-15033 llite: Strengthen miss checking
janitor: 1 test failure unique to this patch — sanity1@ldiskfs+DNE:test_56od
1 unique failure stalled 915d M +45 −21
915d
janitor: 1 test failure unique to this patch — sanity1@ldiskfs+DNE:test_56od
enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_56odNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #102218 SUCCESS · tests all Maloo sessions
patchsets:
+10 earlier PS1 11-05 PS2 11-06 PS3 11-07 PS4 11-07 PS5 11-08 PS6 11-09 PS7 11-09 PS8 12-10 PS9 12-15 PS10 02-07
PS11 03-07 PS12 03-07 PS13 03-08 PS14 06-27 PS15 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS15 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 llite: Strengthen miss checking

For most of our readahead tests, we can predict precisely
the expected number of misses.

Different read patterns require different numbers of misses
to detect, and behavior like whole file read can also
reduce the number of misses - but if we are trying to test
a specific readahead pattern, using a different one renders
the test invalid.  If we are trying to verify our ability
to handle a strided pattern but we instead read the whole
file, there will be fewer misses, but the test is useless.

This means as much as possible we should precisely specify
the number of misses in our tests, so we ensure they are
testing what we think they are testing.

With the various fixes in place to remove random misses and
generally tighten things up, this is now practical.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I7a800db1a6a8fdf91f714366e6fe8147b7269656
54068 master J ✗3B ✓T ✗2R 0/2−
LU-15033 llite: add strict discard checking
janitor: 3 test failures unique to this patch — sanity2@zfs:test_101ac, sanity2@zfs:test_101i, sanity2@zfs:test_101l
3 unique failures stalled 915d M +39 −11
915d
janitor: 3 test failures unique to this patch — sanity2@zfs:test_101ac, sanity2@zfs:test_101i, sanity2@zfs:test_101l
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_101acNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_101iseen in 3 other reviews
sanity2@zfs:test_101lseen in 3 other reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102219 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 llite: add strict discard checking

Now all the tests try to enforce reasonable bounds on
the number of discards.  This is part of the ongoing effort
to tightly characterize readahead in the individual tests,
so we know for sure they are testing the right thing.

Historically, many readahead tests have passed but have not
actually tested the intended readahead behavior, eg, strided
RA tests passing when the whole file is read in.  This helps
make those cases harder.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Iddc23d0228bdb813dda108455134a8afbe17785b
45718 master J –B ✓T ✗9R 0/2−
LU-15274 llite: Loose reverse readahead
enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-arm
stalled 915d L +268 −32
915d
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #102217 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin
patchsets:
+5 earlier PS1 12-02 PS2 12-13 PS3 12-15 PS4 02-04 PS5 03-04
PS6 03-07 PS7 03-07 PS8 03-07 PS9 06-27 PS10 02-15
your previous vote: -1 on PS4 (2022-02-09 21:48) — now at PS10
owner Patrick Farrell · uploader Patrick Farrell · PS10 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15274 llite: Loose reverse readahead

Some applications read files in reverse, we should
support this in readahead.

This adds the concept of "loose reverse readahead",
where we will match 'loose' reverse reads, and do
readahead for them in a similar manner to forward reads.

For sequential and 'loose' (semi-sequential), this makes
performance roughly the same for forward and reverse
readahead.

For one case, a 63 MiB backwards mmap read, it improved
performance by ~98% - Reducing read time from 226 seconds
to 5 seconds.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I2da196f441edcacd18d834958bd30413b1675f02
45452 master J ✗5B ✓T ✗2R 0/2−
LU-15194 llite: Fix page size readahead window
janitor: 5 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101aa, sanity2@ldiskfs+DNE:test_101i, sanity2@ldiskfs+DNE:test_101k +2 more
5 unique failures stalled 915d M +48 −2
915d
janitor: 5 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101aa, sanity2@ldiskfs+DNE:test_101i, sanity2@ldiskfs+DNE:test_101k +2 more
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_101aaNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_101iseen in 7 other reviews
sanity2@ldiskfs+DNE:test_101kNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_101lNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_101nNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102215 SUCCESS · tests all Maloo sessions
patchsets:
+11 earlier PS1 11-03 PS2 11-05 PS3 11-06 PS4 11-07 PS5 11-07 PS6 11-08 PS7 11-09 PS8 11-09 PS9 12-13 PS10 12-15 PS11 02-07
PS12 03-07 PS13 03-07 PS14 02-15 PS15 02-15 PS16 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS16 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15194 llite: Fix page size readahead window

The first page of a read does not use the readahead code,
so it doesn't learn the actual RPC size data from the OSC
layer.  But this is used to set the initial readahead
window size.

That means if the first read is a single page read and the
next read triggers readahead, the size of the readahead is
MAX_BRW_PAGES - so the readahead window is set to 64 MiB,
even if the RPC size is set to 1 MiB or 4 MiB!

It's tricky to get this information from the OSC layer
before starting readahead, so we just default the starting
RPC size to 1 MiB.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I65812d59f25135d769bf6c855de4f8631b458fc4
45473 master J !B ✓T ✗2R 0/2
LU-15033 llite: whole file readahead test
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
stalled 915d M +76 −0
915d
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102216 SUCCESS · tests all Maloo sessions
patchsets:
+8 earlier PS1 11-05 PS2 11-06 PS3 11-07 PS4 11-07 PS5 11-08 PS6 11-09 PS7 11-09 PS8 12-10
PS9 12-15 PS10 02-07 PS11 03-07 PS12 03-07 PS13 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS13 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 llite: whole file readahead test

There is no test for whole file readahead.  Add one.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ia4426682139753588d6536b6b1afa2e95c896c34
45234 master J ✗5B ✓T ✗11R 0/2−
LU-15100 llite: Add loose read pages tunables
janitor: 5 test failures unique to this patch — sanity2@zfs:test_101i, sanity2@zfs:test_101k, sanity2@zfs:test_101l +2 more
5 unique failures stalled 915d M +227 −8
915d
janitor: 5 test failures unique to this patch — sanity2@zfs:test_101i, sanity2@zfs:test_101k, sanity2@zfs:test_101l +2 more
enforced failed: review-dne-part-1, review-dne-part-3, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-dne-zfs-part-5, review-ldiskfs, review-ldiskfs-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_101iseen in 4 other reviews
sanity2@zfs:test_101kNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_101lNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_101nNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_123iseen in 4 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-part-3 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-zfs-part-5 RHEL 8.8/x86_64 ran 6 tests. 2 tests failed: sanityn, recovery-small. session
review-ldiskfs crashed RHEL 8.8/x86_64 ran 5 tests. 2 tests failed: sanity-lnet, sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #102212 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+28 earlier PS1 10-13 PS2 10-15 PS3 10-15 PS4 10-17 PS5 10-20 PS6 10-20 PS7 10-21 PS8 10-25 PS9 10-27 PS10 11-05 PS11 11-06 PS12 11-07 PS13 11-07 PS14 11-08 PS15 12-09 PS16 12-15 PS17 02-06 PS18 03-07 PS19 07-04 PS20 01-17 Patrick Farrell (personal) PS21 01-17 Patrick Farrell (personal) PS22 08-10 PS23 08-10 PS24 08-10 PS25 08-10 PS26 02-14 PS27 02-14 PS28 02-14
PS29 02-15 PS30 02-15 PS31 02-15 PS32 02-15 PS33 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS33 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15100 llite: Add loose read pages tunables

Add tunables for loose forward and reverse loose matching.

This allows tuning the number of pages which are considered
a valid match when doing sequential I/O, for purpose of
controlling the window.  If pages are in the "loose" range,
the window will still grow even if they were not actually
matched.

This lets readahead handle 'loose forward read' patterns,
where it jumps ahead a small(-ish) but random number of
pages.  These are not strided patterns - because the
jumps are random - and they are not 'simple' sequential,
but they are forward read patterns which benefit hugely
from doing readahead.

Because the time to read 1 MiB of data is only a few times
the time required to read 4K of data, it makes sense to be
aggressive.  We only need to hit a few pages per MiB to
gain performance with this behavior.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie31f71b4380c8c384107eb5db416be106f088d9f
45213 master J –B ✓T ✗2R 0/2−
LU-15033 tests: Miss counting for readahead
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
stalled 915d M +84 −27
915d
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102214 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+24 earlier PS1 10-12 PS2 10-15 PS3 10-15 PS4 10-15 PS5 10-17 PS6 10-20 PS7 10-20 PS8 10-21 PS9 11-05 PS10 11-06 PS11 11-07 PS12 11-08 PS13 12-09 PS14 02-06 PS15 03-07 PS16 01-17 Patrick Farrell (personal) PS17 01-17 Patrick Farrell (personal) PS18 08-10 PS19 08-10 PS20 08-10 PS21 08-10 PS22 02-14 PS23 02-14 PS24 02-14
PS25 02-15 PS26 02-15 PS27 02-15 PS28 02-15 PS29 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS29 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 tests: Miss counting for readahead

The miss counting for the readahead tests is much too lax
and includes a large fudge factor of +10 misses.  This is
unnecessary because these tests are deterministic and we
should be able to explain and count all of the misses seen.

This patch tightens the margins considerably on allowed
misses, which should help avoid problems creeping in in the
future.

There are a few unexplained misses here - those will need
to be debugged later, but we should get these tests in
first, then fix the remaining strange behavior.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ia876b7ed807fa1d101a8fd02bed4db7823d923dc
45233 master J –B ✓T ✗10R 0/2−
LU-15033 tests: Add rpc counting to readahead
enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-arm
stalled 915d M +112 −10
915d
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
3 optional test failure(s) — informational
build #102213 SUCCESS · tests all Maloo sessions
patchsets:
+12 earlier PS1 10-13 PS2 10-13 PS3 10-14 PS4 10-15 PS5 10-15 PS6 10-15 PS7 10-17 PS8 10-20 PS9 10-20 PS10 10-21 PS11 02-14 PS12 02-14
PS13 02-15 PS14 02-15 PS15 02-15 PS16 02-15 PS17 02-15
your previous vote: -1 on PS1 (2021-10-13 21:10) — now at PS17
owner Patrick Farrell · uploader Patrick Farrell · PS17 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 tests: Add rpc counting to readahead

One of the key goals of readahead is to generate large RPCs
regardless of how large the reads from userspace are.

We currently don't test this at all, which is not ideal.

Add RPC counting to the readahead tests where it applies.
Note this patch includes margin for the RPC count being off
due to various minor bugs.  Fixing these is left for later -
they have been present for a long time.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ic4b28c936bc0e2b42339f2b00219177f77b8d85f
45118 master J –B ✓T ✗2R 0/2−
LU-15033 tests: Add rpc stats to readahead tests
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
stalled 915d S +27 −2
915d
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102210 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+26 earlier PS1 10-02 PS2 10-02 PS3 10-03 PS4 10-11 PS5 10-15 PS6 10-15 PS7 10-15 PS8 10-17 PS9 10-20 PS10 10-21 PS11 11-05 PS12 11-06 PS13 11-07 PS14 11-08 PS15 12-09 PS16 02-06 PS17 02-06 PS18 03-07 PS19 01-17 Patrick Farrell (personal) PS20 08-10 PS21 08-10 PS22 08-10 PS23 08-10 PS24 02-14 PS25 02-14 PS26 02-14
PS27 02-15 PS28 02-15 PS29 02-15 PS30 02-15 PS31 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS31 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 tests: Add rpc stats to readahead tests

RPC generation behavior is a key component of readahead,
and the plan is to add tests of rpc generation to all the
readahead tests.

In the meantime, we can at least add output of rpc_stats
whenever we output read_ahead_stats to make the tests more
informative.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: If18ed6bb43a5afb2a7b0c9267f2f056cd33c66d7
45119 master J !B ✓T ✗2R 0/2
LU-15033 tests: Improve test 101a
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
stalled 915d M +69 −35
915d
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102211 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+29 earlier PS1 10-02 PS2 10-02 PS3 10-02 PS4 10-03 PS5 10-11 PS6 10-15 PS7 10-15 PS8 10-15 PS9 10-17 PS10 10-20 PS11 10-21 PS12 11-05 PS13 11-06 PS14 11-07 PS15 11-08 PS16 12-09 PS17 02-06 PS18 03-07 PS19 03-11 PS20 07-04 PS21 01-17 Patrick Farrell (personal) PS22 01-17 Patrick Farrell (personal) PS23 08-10 PS24 08-10 PS25 08-10 PS26 08-10 PS27 02-14 PS28 02-14 PS29 02-14
PS30 02-15 PS31 02-15 PS32 02-15 PS33 02-15 PS34 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS34 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 tests: Improve test 101a

Test 101a is very old and uses some odd methods to control
caching.  Remove those, and switch to a simple cache flush
to ensure data is read from disk.

Shrink the test size to make it more consistent (previously
it was hitting cache a lot, which made the RPC stats harder
to predict).

Also add RPC count checking - this will be added to the
other readahead tests as well.

Test-Parameters: trivial testlist=sanity env=ONLY=101a,ONLY_REPEAT=50
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I39b1ed23e4c080af9e3689d32ac60701c6c5a812
45117 master J –B ✓T ✗2R 0/2−
LU-15033 tests: Add ra after seek test
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
stalled 915d M +114 −0
915d
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102209 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+25 earlier PS1 10-02 PS2 10-02 PS3 10-03 PS4 10-05 PS5 10-15 PS6 10-15 PS7 10-15 PS8 10-17 PS9 10-20 PS10 10-21 PS11 11-05 PS12 11-06 PS13 11-07 PS14 11-08 PS15 12-09 PS16 02-06 PS17 03-07 PS18 01-17 Patrick Farrell (personal) PS19 08-10 PS20 08-10 PS21 08-10 PS22 08-10 PS23 02-14 PS24 02-14 PS25 02-14
PS26 02-15 PS27 02-15 PS28 02-15 PS29 02-15 PS30 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS30 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 tests: Add ra after seek test

Confirm read ahead can restart cleanly after seeking in a
file.  Do this by reading the back half and then the front
half of the file.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I30c0515c95af0c35fc38ed612f6409c15d55c3a8
45051 master J ✗1B ✓T ✗2R 0/2
LU-15033 tests: Stricter readahead tests
janitor: 1 test failure unique to this patch — sanity2@zfs:test_101i
1 unique failure stalled 915d XS +4 −3
915d
janitor: 1 test failure unique to this patch — sanity2@zfs:test_101i
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_101iseen in 5 other reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102208 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+24 earlier PS1 09-25 PS2 10-01 PS3 10-03 PS4 10-05 PS5 10-15 PS6 10-15 PS7 10-15 PS8 10-17 PS9 10-20 PS10 10-21 PS11 11-05 PS12 11-07 PS13 11-08 PS14 12-09 PS15 02-06 PS16 03-07 PS17 01-17 Patrick Farrell (personal) PS18 08-10 PS19 08-10 PS20 08-10 PS21 08-10 PS22 02-14 PS23 02-14 PS24 02-14
PS25 02-15 PS26 02-15 PS27 02-15 PS28 02-15 PS29 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS29 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 tests: Stricter readahead tests

A few small test tweaks to make particular readahead tests
stricter and more broad ranging or improve output. Didn't
have a clear home in other patches in the series.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ic8164f6cc2db09492574a247705bd55bc1f60989
46458 master J ✗6B ✓T ✗12R 0/2
LU-15516 llite: unify readahead logic
janitor: 6 test failures unique to this patch — sanity2@ldiskfs+DNE:test_63b, sanity2@ldiskfs+DNE:test_64a, sanity2@ldiskfs+DNE:test_64c +3 more
6 unique failures stalled 915d M +57 −34
915d
janitor: 6 test failures unique to this patch — sanity2@ldiskfs+DNE:test_63b, sanity2@ldiskfs+DNE:test_64a, sanity2@ldiskfs+DNE:test_64c +3 more
enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-4, review-dne-zfs-part-6, review-ldiskfs, review-ldiskfs-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_63bseen in 34 other reviews
sanity2@ldiskfs+DNE:test_64aseen in 34 other reviews
sanity2@ldiskfs+DNE:test_64cseen in 34 other reviews
sanity2@ldiskfs+DNE:test_64dseen in 78 other reviews
sanity2@ldiskfs+DNE:test_101iseen in 6 other reviews
sanity2@zfs:test_101iseen in 2 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-zfs-part-4 RHEL 8.8/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-zfs-part-6 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: replay-single. session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.5/x86_64 ran 5 tests. 2 tests failed: sanity-lnet, sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #102205 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+3 earlier PS1 02-04 PS2 02-04 PS3 02-04
PS4 02-04 PS5 02-04 PS6 02-06 PS7 02-06 PS8 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS8 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15516 llite: unify readahead logic

The mmap readahead logic is *almost* the same as regular
readahead logic, but for what appear to be historical or
accidental reasons, it is initialized differently and has
several special cases as a result.

There's no clear need for separate mmap and regular
readahead logic, and the existing differences are harmful,
as mmap read takes more misses than a regular read of the
same pattern.  But more importantly, having the special
case makes it much harder to write and test improvements
to the readahead code, since they must be written carefully
to hit both paths and then tested both ways as well.

There may be some application for separate tunings, but
none has been persuasively shown so far (and none are in
place currently).

Clean up and unify the logic.

We can't unify as much as we'd like, since mmap needs to do
ras_enter only after we've locked the page - because if we
can't lock the page, mmap doesn't proceed to do IO.  This
means we must wait to call ras_enter for mmap until we're
in the readpage code, unlike for regular file reads, which
call it at the llite layer.  This is OK for mmap because
mmap reads are a single page, but it's important for regular
reads to call ras_enter only once per read, not once per
page.

Note even without other changes this reduces the number of
misses taken in the simple mmap read test.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ic6c33a2714a256072ef15d56c40f2bd1e39a1e6f
46457 master J ✗4B ✓T ✗9R 0/2−
LU-15516 llite: Remove clustered read code
janitor: 4 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101f, sanity2@ldiskfs+DNE:test_101i, sanity2@zfs:test_101f +1 more
4 unique failures stalled 915d M +16 −192
915d
janitor: 4 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101f, sanity2@ldiskfs+DNE:test_101i, sanity2@zfs:test_101f +1 more
enforced failed: review-dne-part-1, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_101fNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_101iNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_101fseen in 1 other review
sanity2@zfs:test_101iNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.4/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, SLES 15.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #102189 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+1 earlier PS1 02-04
PS2 02-04 PS3 02-04 PS4 02-06 PS5 02-15 PS6 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS6 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15516 llite: Remove clustered read code

The clustered read code changes mmap readahead behavior so
it ignores patterns, and reads a set of pages around each
new read.  This works well if you have a random read
pattern and are going to use most of the file, but it's
bad if there is a pattern, which there almost always is.
The result is extremely harmful for basic patterns like
'read a whole file from beginning to end'.

It also appears that the described clustered behavior
(where a bunch of data is read semi-randomly in an area and
then there's a jump to a new area) is not real application
behavior, instead it was a stopgap for the inability to
support certain common database read patterns, like loose
forward and sequential or loose sequential reverse.

The clustered code, instead, breaks the ability to properly
handle simple patterns like sequential forward read in
mmap.  It also creates a large section of 'mmap only'
readahead logic, which makes it impossible for mmap reads
to benefit from most readahead improvements.

Having this separate logic path also makes testing and
verification of readahead much more difficult.

A 'read a cluster of pages during random read' feature is
a reasonable one and could be helpful in some scenarios.
Parts of this code can serve as a reference for that, but
the existing code should be removed.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I15b203bc0692098614b691344d474a226ba3df4a
54057 master J ✗2B ✓T ✗2R 0/2
LU-15069 llite: improve ras usage
janitor: 2 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101i, sanity-pcc@ldiskfs+DNE:test_7b
2 unique failures stalled 915d XS +3 −4
915d
janitor: 2 test failures unique to this patch — sanity2@ldiskfs+DNE:test_101i, sanity-pcc@ldiskfs+DNE:test_7b
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_101iseen in 5 other reviews
sanity-pcc@ldiskfs+DNE:test_7bseen in 10 other reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #102186 SUCCESS · tests all Maloo sessions
patchsets: PS1 02-15 PS2 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15069 llite: improve ras usage

The readahead state is file level and shared, the ria is a
per-IO version of that state.  Don't access the ras when the
ria is sufficient.  Also rename one function.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I4de4e093d7d8e690b49852f26e2f44ae4474671a
54058 master J ✗1B ✓T ✗2R 0/2
LU-15033 llite: rework end_idx handling
janitor: 1 test failure unique to this patch — sanity-pcc@ldiskfs+DNE:test_5
1 unique failure stalled 916d S +18 −17
916d
janitor: 1 test failure unique to this patch — sanity-pcc@ldiskfs+DNE:test_5
enforced failed: review-ldiskfs-dne, review-ldiskfs-dne-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-pcc@ldiskfs+DNE:test_5seen in 13 other reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm crashed RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
build #102187 SUCCESS · tests all Maloo sessions
patchsets: PS1 02-15 PS2 02-15
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-15033 llite: rework end_idx handling

There is a separate ra_end_idx argument passed to
ll_read_ahead_pages, which captures the last page read and
is then compared to the contents of ra_io_arg, which is also
passed to ll_read_ahead_pages.  This results in comparisons
like:

if (ria->ria_end_idx == ra_end_idx)

which are a little tricky to understand.

Instead, we put this in ra_io_arg and name it
ria_last_read_idx.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I774e69c6a6334d2f56a4bc0c85ed00a5f2757e35
50681 master J ✗1B ✓T ✗4R 2/2
LU-16741 ptlrpc: remove unnecessary asserts
janitor: 1 test failure unique to this patch — sanity-sec@zfs:test_21
1 unique failure stalled 1083d 1 unresolved XS +0 −2
1083d
janitor: 1 test failure unique to this patch — sanity-sec@zfs:test_21
enforced failed: review-dne-part-6, review-dne-selinux-ssk-part-2, review-dne-zfs-part-2, review-ldiskfs
1 thread(s) waiting on others
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-sec@zfs:test_21NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-6 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: replay-single. session
review-dne-selinux-ssk-part-2 RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity-selinux. session
review-dne-zfs-part-2 crashed RHEL 8.8/x86_64 ran 9 tests. 1 tests failed: replay-dual. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity-lnet. session
2 optional test failure(s) — informational
build #97496 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2023-09-01 01:33 · Timothy Day +1 2023-09-01 14:43
no vote yet: Qian Yingjin
patchsets:
+6 earlier PS1 04-18 PS2 04-18 PS3 04-18 PS4 04-18 PS5 04-18 PS6 04-18
PS7 04-18 PS8 04-22 PS9 08-31 PS10 08-31 PS11 08-31
threads: 0 need your reply · 1 waiting on others · 0 own notes · 0 bot
owner Patrick Farrell · uploader Patrick Farrell · PS11 uploaded 1084d ago · NEW · open in Gerrit ↗
commit message
LU-16741 ptlrpc: remove unnecessary asserts

ptlrpc_free_committed is at no risk of being called with
either a null import or the import lock unlocked.  These
don't have a significant cost, but they're not adding much
either.

Removed 'trivial' from this patch to ensure the LU-16741
refactoring series gets at least one full run.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I90d3ddae2cfbb9c748e3ba004982bca3ef465667
50680 master J ✗1B ✓T ✗1R 2/2
LU-16741 ptlrpc: rename ptlrpc_free_request
janitor: 1 test failure unique to this patch — sanity-pcc@ldiskfs+DNE:test_18
1 unique failure stalled 1083d S +6 −6
1083d
janitor: 1 test failure unique to this patch — sanity-pcc@ldiskfs+DNE:test_18
enforced failed: review-ldiskfs-dne
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-pcc@ldiskfs+DNE:test_18seen in 3 other reviews
failed enforced testplatformdetail
review-ldiskfs-dne failed 2× RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #97493 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2023-09-01 01:25 · Timothy Day +1 2023-09-01 14:46
no vote yet: Qian Yingjin
patchsets:
+5 earlier PS1 04-18 PS2 04-18 PS3 04-18 PS4 04-18 PS5 04-18
PS6 04-18 PS7 04-18 PS8 04-22 PS9 08-31 PS10 08-31
owner Patrick Farrell · uploader Patrick Farrell · PS10 uploaded 1084d ago · NEW · open in Gerrit ↗
commit message
LU-16741 ptlrpc: rename ptlrpc_free_request

ptlrpc_free_request doesn't free requests, it commits them.
Rename it accordingly.

One nag: there is one call to rq_commit_cb() outside this
function, in after_reply().  It is not clear to me how/why
that call is different, so I am leaving it untouched.  But
ideally we would only call rq_commit_cb() from this
function.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I52e81076a1d4e55fb83f9d4d6c86df64393004b0
45317 master J ✗1B ✓T ✗9R 0/2−
LU-15155 llite: Make readahead request locks
janitor: 1 test failure unique to this patch — sanity2@zfs:test_101ab
1 unique failure stalled 1104d L +263 −60
1104d
janitor: 1 test failure unique to this patch — sanity2@zfs:test_101ab
enforced failed: review-dne-part-4, review-dne-part-5, review-dne-zfs-part-1, review-dne-zfs-part-4, review-dne-zfs-part-5, review-ldiskfs, review-ldiskfs-arm, review-zfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_101abNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-4 RHEL 8.8/x86_64 ran 11 tests. 1 tests failed: sanity-flr. session
review-dne-part-5 RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanityn. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-zfs-part-4 RHEL 8.8/x86_64 ran 11 tests. 1 tests failed: sanity-flr. session
review-dne-zfs-part-5 RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanityn. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.7/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-zfs RHEL 8.8/x86_64 ran 10 tests. 1 tests failed: sanity-flr. session
3 optional test failure(s) — informational
build #96850 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+18 earlier PS1 10-20 PS2 10-21 PS3 10-23 PS4 10-24 PS5 11-03 PS6 11-03 PS7 11-05 PS8 11-06 PS9 11-07 PS10 11-07 PS11 11-08 PS12 11-09 PS13 12-09 PS14 12-15 PS15 02-07 PS16 03-07 PS17 07-04 PS18 01-17 Patrick Farrell (personal)
PS19 01-17 Patrick Farrell (personal) PS20 08-10 PS21 08-10 PS22 08-10 PS23 08-10
owner Patrick Farrell · uploader Patrick Farrell · PS23 uploaded 1104d ago · NEW · open in Gerrit ↗
commit message
LU-15155 llite: Make readahead request locks

Currently, readahead will not request an LDLM lock if it
encounters a region without one. This causes it to take
misses and can confuse the readahead state as well.

Not requesting locks for readahead is an artifact of the
idea that readahead is an optional optimization, but it's
almost as important as full reads/writes from userspace,
and we should request locks for it.

This will help cut down misses when starting to read a new
file, which is particularly helpful in tests, where total
I/O is small and the extra misses make it hard to predict
behavior.

However, to give better behavior under conflicting
workloads, we make the lock requests from readahead
nonblocking.  This means it will get a lock if there is no
conflicting lock, but otherwise will not.  We also limit it
to one lock request per stripe per readahead invocation,
since otherwise it would ask for every page.

The benefit to requesting locks can be seen in the test
changes - miss counts are reduced because stripe count no
longer factors in, and we can reenable async readahead
because it no longer fails due to this (leading to
unpredictable numbers of misses).

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie62a282245d036308ab0c6f8392af1098a74befc
45449 master J ✗2B ✓T ✗4R 0/2
LU-15178 llite: Clarify async vs nowait
janitor: 2 test failures unique to this patch — sanity2@zfs:test_101ab, sanity2@zfs:test_101n
2 unique failures stalled 1104d L +245 −101
1104d
janitor: 2 test failures unique to this patch — sanity2@zfs:test_101ab, sanity2@zfs:test_101n
enforced failed: review-dne-part-1, review-dne-zfs-part-1, review-ldiskfs, review-ldiskfs-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_101abseen in 2 other reviews
sanity2@zfs:test_101nseen in 1 other review
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.7/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
1 optional test failure(s) — informational
build #96849 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin
patchsets:
+12 earlier PS1 11-03 PS2 11-05 PS3 11-06 PS4 11-07 PS5 11-07 PS6 11-08 PS7 12-09 PS8 12-15 PS9 02-07 PS10 03-07 PS11 07-04 PS12 01-17 Patrick Farrell (personal)
PS13 01-17 Patrick Farrell (personal) PS14 08-10 PS15 08-10 PS16 08-10 PS17 08-10
owner Patrick Farrell · uploader Patrick Farrell · PS17 uploaded 1104d ago · NEW · open in Gerrit ↗
commit message
LU-15178 llite: Clarify async vs nowait

The existing code mixes the concepts of 'async' lock
requests and 'nowait' (nonblocking) lock requests in to one
term: 'speculative' lock requests.

This prevents us from creating synchronous
nonblocking/nowait lock requests, for no good reason.  This
patch clarifies the code, separating these concepts and
allowing synchronous non-blocking lock requests.

This is important because it allows readahead to make
'optional' lock requests, where it will wait for the
request, but it does not want to cancel other locks.

In essence, readahead would like to have the lock for
immediate use so it can complete the readahead request,
but it would prefer not to cancel other locks.  Thus,
synchronous non-blocking lock requests.  This is
implemented for readahead in another patch in this series.

It also renames the badly named LDLM_FL_SPECULATIVE flag,
because this flag actually implements 'NOWAIT' behavior.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I0cbd44fe07e0c0206ba56eaef62590b19ba082eb
50645 master J ✗12B ✓T ✗12R 0/2
LU-16741 ptlrpc: defer & parallelize free_committed
janitor: 12 test failures unique to this patch — sanity2@ldiskfs+DNE:test_124c, sanity2@ldiskfs+DNE:test_124d, sanity2@ldiskfs+DNE:test_134a +9 more
12 unique failures stalled 1214d 9 unresolved M +74 −23
1214d
janitor: 12 test failures unique to this patch — sanity2@ldiskfs+DNE:test_124c, sanity2@ldiskfs+DNE:test_124d, sanity2@ldiskfs+DNE:test_134a +9 more
enforced failed: review-dne-part-2, review-dne-part-4, review-dne-part-6, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-3, review-dne-zfs-part-4, review-dne-zfs-part-5, review-dne-zfs-part-6, review-ldiskfs-arm, review-ldiskfs-ubuntu, review-zfs
1 unresolved thread(s) await your reply — last from Andreas Dilger
1 thread(s) waiting on others
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_124cNEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
sanity2@ldiskfs+DNE:test_124dNEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
sanity2@ldiskfs+DNE:test_134aNEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
sanity2@ldiskfs+DNE:test_812aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_812bNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_816NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@zfs:test_398aseen in 3 other reviews
sanity2@zfs:test_812aseen in 1 other review
sanity2@zfs:test_812bseen in 1 other review
sanity2@zfs:test_816seen in 1 other review
sanityn@zfs:test_109NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@zfs:test_113NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-2 RHEL 8.7/x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-part-4 RHEL 8.7/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-part-6 RHEL 8.7/x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-dne-selinux-ssk-part-2 RHEL 8.7/x86_64 ran 5 tests. 2 tests failed: sanity-selinux, sanity-sec. session
review-dne-zfs-part-1 crashed RHEL 8.7/x86_64 ran 4 tests. 2 tests failed: sanity-pfl, sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-3 crashed RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: conf-sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 RHEL 8.7/x86_64 ran 9 tests. 3 tests failed: sanity-quota, sanity-hsm, sanity-flr. session
review-dne-zfs-part-5 crashed RHEL 8.7/x86_64 ran 8 tests. 2 tests failed: sanityn, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-6 crashed RHEL 8.7/x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-arm RHEL 8.7/aarch64, RHEL 8.7/x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity-lnet. session
review-ldiskfs-ubuntu RHEL 8.7/x86_64, Ubuntu 20.04/x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
review-zfs RHEL 8.7/x86_64 ran 10 tests. 1 tests failed: replay-single. session
3 optional test failure(s) — informational
build #94227 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger, Alex Zhuravlev, Oleg Drokin
patchsets:
+13 earlier PS1 04-15 PS2 04-17 PS3 04-17 PS4 04-17 PS5 04-17 PS6 04-17 PS7 04-17 PS8 04-17 PS9 04-18 PS10 04-18 PS11 04-18 PS12 04-18 PS13 04-18
PS14 04-18 PS15 04-18 PS16 04-18 PS17 04-19 PS18 04-22
your previous vote: -1 on PS16 (2023-04-19 03:25) — now at PS18
threads: 1 need your reply · 1 waiting on others · 7 own notes · 0 bot
note PS1 2023-04-17 14:38 Patrick Farrell client.c:1599 — RE: rq_commit_cb and imp_lock
Patrick Farrell PS1 · 2023-04-17 14:38
RE: rq_commit_cb and imp_lock

This snippet of code strongly suggests no.  (And this looks to me like it gets called regularly and isn't some weird stub or corner case, so it seemed solid evidence.)

I actually considered doing this for the rq_commit_cb in the free_committed code, but you can't easily do so because you're walking the lists on the import.  But more to the point, since that could be worked around, I'm skeptical dropping and taking the lock for *every* rq_commit_cb() in free_committed is a good idea.  (If the rq_commit_cbs were the large majority of the work, dropping the lock and re-attacking the list in free_committed might make sense, but I don't think they are.  It seems more an invitation to thrashing the lock and the memory for the lists between many CPUs.)
note PS3 2023-04-17 15:17 Patrick Farrell client.c:1641 — I may want to reflect on the code organization here - this seems a bit confusing. Let's see if it's correct first and then I'll try to thin
Patrick Farrell PS3 · 2023-04-17 15:17
I may want to reflect on the code organization here - this seems a bit confusing.  Let's see if it's correct first and then I'll try to think about that.
note PS5 2023-04-17 19:57 Patrick Farrell client.c:2635 — I'm guessing we're sometimes missing calling this section of code (And maybe not calling this whole function), so we're still referencing th
Patrick Farrell PS5 · 2023-04-17 19:57
I'm guessing we're sometimes missing calling this section of code (And maybe not calling this whole function), so we're still referencing the import, since I've seen both OSC and OFD modules getting stuck.
note PS5 2023-04-17 21:07 Patrick Farrell client.c:2749 — stale comment, need to remove
Patrick Farrell PS5 · 2023-04-17 21:07
stale comment, need to remove
note PS5 2023-04-17 21:07 Patrick Farrell client.c:2751 — Will probably just undo this to show I'm not changing this area...
Patrick Farrell PS5 · 2023-04-17 21:07
Will probably just undo this to show I'm not changing this area...
reply PS8 2023-04-18 20:23 Andreas Dilger client.c:2991 — I _think_ that open-but-committed requests are still kept in this list in order to ensure the open is replayed before any later requests tha
Andreas Dilger PS8 · 2023-04-18 02:53
(defect?) one thing that concerned me about *only* allowing the "now > start + 3" exit condition is that if the replay list was very long and filled with unfreeable RPCs (a million file opens?) then it seems possible the thread could loop through requests for a few seconds and not find anything, then exit with no RPCs to free.  Then the next thread enters this code and does the same thing, since it restarts the scanning at the beginning of the list.

So the exit condition (before this change) was:
- accumulate at least 128 RPC and have been scanning > 3s
- or walk the whole list (until reqs with transno > last_committed are found) without finding 128 freeable RPCs

That way, each call here cleans up at least 128 RPCs (if there are that many), or hopefully finishes list walking much sooner.  That amortizes the list walking over more RPCs.

The main question is how much of the list walking does not produce "useful work"?  With the reduction in lock contention, this could always reduce the number of entries per call.

I also appreciate that if other CPUs are stuck on a spinlock then they are also burning cycles unproductively, so in theory as long as each pass made *some* forward progress (a handful of RPCs) then it would be OK to exit and leave it to the next lock waiter.
Patrick Farrell PS8 · 2023-04-18 19:45
Hmm, so I think the big threat here is if we have an *extremely long* but unfreeable list (except for maybe a few at the far end which we don't reach), we could loop forever as we hand the problem off to a new thread that retraces our steps.  Or at least, that is the problem taken to an extreme, where we get no work done so we make no progress.

But isn't it the case that the worst case scenario is we essentially end up hung until the *next* commit comes through and that huge pile of RPCs is now freeable?  Because they have to be freeable some time.

I'm trying to decide how plausible it is as well - If we have, say, 10 million RPCs on the list (being generous) and, we say we've got 1 second, we have 100 nanoseconds (300 nanoseconds per for 3 seconds) for each RPC (to do the list walk + checks).  Given that a cold DRAM access can be on the order of 90 ns (thanks, Google), yeah, that's not crazy.  So the amounts of time are plausible.

But I think we still have the backstop of "the next commit arrives and they become freeable", don't we?  So the worst case is that we could get stuck looping (handing from thread to thread without real forward progress) until the next commit arrives.  So I think this is OK.  Does that wash?  Have I missed/misunderstood something?
Andreas Dilger PS8 · 2023-04-18 20:23
I _think_ that open-but-committed requests are still kept in this list in order to ensure the open is replayed before any later requests that may unlink the file without preserving the refcount.

That said, I've long wanted to divorce open-committed requests from RPC replay so that they don't clog up the replay queue and also so that we don't need to keep exact copies of RPCs in memory for hours/days/weeks, since that complicates ever changing the RPC format over an upgrade.

This allows a few different improvements to be implemented:
- LU-5703 "Quiesce client mountpoints from the server"
- LU-3290 "disallow ptlrpc RPCs with old client XIDs"
- LU-15250 "RPC Replay Signature"

and also simplifies the RPC handling code, since we don't need to preserve the close RPC replay after the open RPC has committed.
note PS9 2023-04-18 16:10 Patrick Farrell client.c:1635 — Style: Don't need braces here...
Patrick Farrell PS9 · 2023-04-18 16:10
Style: Don't need braces here...
note PS17 2023-04-19 17:29 Patrick Farrell client.c:2875 — Note this was wrong in the previous patchset, but wasn't affecting behavior.
Patrick Farrell PS17 · 2023-04-19 17:29
Note this was wrong in the previous patchset, but wasn't affecting behavior.
owner Patrick Farrell · uploader Patrick Farrell · PS18 uploaded 1215d ago · NEW · open in Gerrit ↗
commit message
LU-16741 ptlrpc: defer & parallelize free_committed

ptlrpc_free_committed can be extremely time consuming
when there are many async requests outstanding, such as
with small async DIO as potentially created by LU-13805,
or in other unusual circumstances.

Most of the work (in terms of time consumed) in
ptlrpc_free_committed can be deferred and moved out from
under the imp_lock.  Additionally, if there is a process
waiting to do the ptlrpc_free_committed work, the current
thread can grab a 'batch' of requests to process, then drop
the import lock and allow the waiting thread to grab the
next batch.

This splits the work across waiting threads.  In cases
where the lock is highly contended, it has the effect of
having each thread do one 'batch' of work, but mostly in
parallel.

This has the effect of parallelizing this work and speeds
it up enormously when there are many threads (the most
important case, as they can generate a lot of work).

If there are only a small number of threads working on
the import, the load can be split unevenly - Consider
the case of two threads.  The first to arrive defers one
batch of requests, notices the second thread is waiting,
and leaves all the remaining requests for that thread.
This is uneven, but doesn't really matter for a few
reasons:
1. In the 'small number of threads' case, there isn't
much work to do anyway, so it's not very impactful if it
is unevenly distributed.
2. If it really takes a long time, the first thread will
arrive again as a 'waiter', and will pick up work.

A good example is this IO500 ior-hard-write test with async
DIO; this is a bit of an extreme example, and this also
helps IO500 hard write without async DIO, but that hits
other limitations so it is harder to see the benefit.

mpirun -n 80 ior -k -e -o $file -t 47008 -b 47008 -s 11990 -w -a POSIX --posix.odirect

Performance without the patch:
2018.19 MiB/s
Improves to:
4800 MiB/s with this patch
(This was done with fake_io to reduce server side limits
and better show the contention.)

And the time spent in the imp spinlock drops from 40-50%
of all client CPU time to ~0% (imp_lock spinning no longer
shows up in the perf traces).

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I5e9b8d556770dc4a33dce0ceb50f745201328c5e
50695 master J !B ✓T ✗24R 0/2
LU-16741 ptlrpc: check logic in osp_request_commit_cb
enforced failed: custom-101, custom-102, custom-103, custom-104, review-dne-part-1, review-dne-part-2, review-dne-part-3, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-part-7, review-dne-selinux-ssk-part-1, review-dne-selinux-ssk-part-2, review-dne-zfs-part-1, review-dne-zfs-part-2, review-dne-zfs-part-3, review-dne-zfs-part-4, review-dne-zfs-part-5, review-dne-zfs-part-6, review-dne-zfs-part-7, review-ldiskfs, review-ldiskfs-arm, review-ldiskfs-ubuntu, review-zfs
stalled 1217d S +9 −1
1217d
janitor run: 9 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
custom-101 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-102 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-103 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-104 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
review-dne-part-1 crashed RHEL 8.7/x86_64 ran 6 tests. 2 tests failed: sanity-pfl, sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-2 crashed RHEL 8.7/x86_64 ran 13 tests. 4 tests failed: sanity-sec, sanity-lfsck, runtests, replay-dual. %% THIS TEST SESSION CRASHED % session
review-dne-part-3 crashed RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: conf-sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-4 crashed RHEL 8.7/x86_64 ran 11 tests. 2 tests failed: sanity-quota, sanity-flr. %% THIS TEST SESSION CRASHED %% session
review-dne-part-5 crashed RHEL 8.7/x86_64 ran 10 tests. 3 tests failed: sanityn, sanity-scrub, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-part-6 crashed RHEL 8.7/x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. %% THIS TEST SESSION CRASHED %% session
review-dne-part-7 crashed RHEL 8.7/x86_64 ran 4 tests. 1 tests failed: sanity-pcc. %% THIS TEST SESSION CRASHED %% session
review-dne-selinux-ssk-part-1 crashed RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-selinux-ssk-part-2 crashed RHEL 8.7/x86_64 ran 7 tests. 2 tests failed: sanity-selinux, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-1 crashed RHEL 8.7/x86_64 ran 6 tests. 2 tests failed: sanity-pfl, sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-2 crashed RHEL 8.7/x86_64 ran 13 tests. 4 tests failed: sanity-sec, sanity-lfsck, runtests, replay-dual. %% THIS TEST SESSION CRASHED % session
review-dne-zfs-part-3 crashed RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: conf-sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 RHEL 8.7/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-zfs-part-5 crashed RHEL 8.7/x86_64 ran 10 tests. 3 tests failed: sanityn, sanity-scrub, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-6 crashed RHEL 8.7/x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-7 crashed RHEL 8.7/x86_64 ran 4 tests. 1 tests failed: sanity-pcc. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs RHEL 8.7/x86_64 ran 5 tests. 1 tests failed: sanity-lnet. session
review-ldiskfs-arm crashed RHEL 8.7/aarch64, RHEL 8.7/x86_64 ran 8 tests. 2 tests failed: sanity-sec, sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-ubuntu RHEL 8.7/x86_64, Ubuntu 20.04/x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
review-zfs crashed RHEL 8.7/x86_64 ran 12 tests. 2 tests failed: replay-single, sanity-flr. %% THIS TEST SESSION CRASHED %% session
3 optional test failure(s) — informational
build #94132 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1218d ago · NEW · open in Gerrit ↗
commit message
LU-16741 ptlrpc: check logic in osp_request_commit_cb

osp_request_commit_cb code states that rq_commit_cb can be
called on uncommitted requests.  That seems wrong, in both
the specific sense of "I doubt we do that" and the sense
that "we should not do that".

Note: This is NOT for landing; this is just exploratory.

Test-Parameters: testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I09a20286bb3fde9a77396cebfce0028fd996bfa1
50694 master J !B ✓T ✗4R 0/2
LU-16741 ptlrpc: add 'locked' to rq_commit_cb
enforced failed: custom-101, custom-102, custom-103, custom-104
stalled 1217d S +17 −9
1217d
janitor run: 7 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
custom-101 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-102 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-103 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-104 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
build #94131 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1218d ago · NEW · open in Gerrit ↗
commit message
LU-16741 ptlrpc: add 'locked' to rq_commit_cb

osp_request_commit_cb is unique among rq_commit_cbs in
requiring the import lock be held.  Add a parameter so we
know when we need to take the lock in that callback.

Note: This is NOT for landing; if this works it will be
integrated in to the parent change.

Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6c1b681eafeb2f805b41dc5654ab2e2c6e020f73
50693 master J !B ✓T ✗4R 0/2
LU-16741 tests: Test locking around commit_cb
enforced failed: custom-101, custom-102, custom-103, custom-104
stalled 1217d XS +6 −1
1217d
janitor run: 8 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
custom-101 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-102 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-103 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-104 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
build #94130 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1218d ago · NEW · open in Gerrit ↗
commit message
LU-16741 tests: Test locking around commit_cb

Seeing if taking imp_lock() around commit_cb when doing the
deferred work avoids the crash.

Just for learning purposes - it's possible one of the commit
callbacks has a hidden dependence on the import lock.

Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie098251bb3ec78325bc813e7dd6946d503582894
50692 master J ✗4B ✓T ✗5R 0/2
LU-16741 tests: Test to confirm replay-dual hits
janitor: 4 test failures unique to this patch — sanity2@zfs:test_398a, sanity2@zfs:test_812a, sanity2@zfs:test_812b +1 more
4 unique failures stalled 1217d XS +2 −0
1217d
janitor: 4 test failures unique to this patch — sanity2@zfs:test_398a, sanity2@zfs:test_812a, sanity2@zfs:test_812b +1 more
enforced failed: custom-101, custom-102, custom-103, custom-104, review-ldiskfs-dne-arm
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_398aseen in 3 other reviews
sanity2@zfs:test_812aseen in 1 other review
sanity2@zfs:test_812bseen in 1 other review
sanity2@zfs:test_816seen in 1 other review
failed enforced testplatformdetail
custom-101 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-102 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-103 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-104 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
review-ldiskfs-dne-arm RHEL 8.7/aarch64, RHEL 8.7/x86_64 ran 5 tests. 2 tests failed: sanity-lnet, sanity. session
build #94129 SUCCESS · tests all Maloo sessions
patchsets: PS1 04-19 PS2 04-19
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 1218d ago · NEW · open in Gerrit ↗
commit message
LU-16741 tests: Test to confirm replay-dual hits

This is testing LU-16741 with no changes to confirm the
specified replay-dual testing hits the bug reliably.

Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ibc1a46df653cb9ce98b99ee3e5aef7705bfca111
50691 master J !B ✓T ✗5R 0/2
LU-16741 tests: Test locking around deferred work
enforced failed: custom-101, custom-102, custom-103, custom-104, review-ldiskfs-dne-arm
stalled 1217d XS +2 −0
1217d
janitor run: 8 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
custom-101 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-102 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-103 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
custom-104 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: replay-dual. session
review-ldiskfs-dne-arm RHEL 8.7/aarch64, RHEL 8.7/x86_64 ran 5 tests. 2 tests failed: sanity-lnet, sanity. session
build #94128 SUCCESS · tests all Maloo sessions
patchsets: PS1 04-19 PS2 04-19
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 1218d ago · NEW · open in Gerrit ↗
commit message
LU-16741 tests: Test locking around deferred work

Testing to see if hold imp_lock() here avoids the crash.
Just for learning purposes - this is NOT a proposed change
since it would remove all benefit from the patch.

Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Test-Parameters: trivial testlist=replay-dual env=ONLY=26,ONLY_REPEAT=10
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I0fdc1191a6e39f85715b5a1ae676dc916e70c8aa

Review feedback — your turn

(6)
65219 master J !B ✓T ↻R 1/2
LU-12669 llite: make AIO reads on EC file synchronous
2 unresolved thread(s) await your reply — last from Marc Vef
pt_ecro 2 unresolved S +37 −11
1h
2 unresolved thread(s) await your reply — last from Marc Vef
review-ldiskfs-ubuntu failed — auto-retest in flight (often self-heals)
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-ubuntu retesting RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity-lnet. session
build #129691 SUCCESS · tests all Maloo sessions
reviews: Marc Vef +1 2026-08-19 20:04
no vote yet: Zhenyu Xu
patchsets:
+25 earlier PS1 04-10 PS2 04-10 PS3 04-10 PS4 04-10 PS5 04-10 PS6 04-15 PS7 04-15 PS8 04-25 PS9 04-29 PS10 04-29 PS11 04-29 PS12 04-29 PS13 05-05 PS14 05-05 PS15 05-05 PS16 05-06 Ronnie Sahlberg PS17 05-20 Marc Vef PS18 06-04 Ronnie Sahlberg PS19 07-13 Marc Vef PS20 07-13 Marc Vef PS21 07-13 Marc Vef PS22 07-15 Marc Vef PS23 07-26 Marc Vef PS24 07-26 Marc Vef PS25 08-17 Marc Vef
PS26 08-17 Marc Vef PS27 08-17 Marc Vef PS28 08-17 Marc Vef PS29 08-17 Marc Vef PS30 08-19 Maximilian Dilger
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS28 2026-08-18 16:11 Marc Vef COMMIT_MSG:32 — Andreas, yes, correct. This is essentially making AIO synchronous for all reads on EC files because we can't tell at submission time if we n
Andreas Dilger PS28 · 2026-08-17 15:45
That seems like a pretty big hammer, basically breaking AIO completely for EC files, rather than just the recovery path?  Or is the comment wrong and this is triggered only for EC recovery when `-EIOCBQUEUED` is returned?

Would it be better to push **all** EC recovery to a workqueue instead of keeping it directly in the IO path, then it can fire the AIO completion when the reconstruction is complete, and synchronous readers would wait on the completion?
Marc Vef PS28 · 2026-08-18 16:11
Andreas, yes, correct. This is essentially making AIO synchronous for all reads on EC files because we can't tell at submission time if we need reconstruction. So, this patch is just a stopgap to allow AIO to work for degraded reads, albeit with collateral damage.

I'd agree that a workqueue is the better long-term approach, however, I'm not familiar enough with the code path at the minute here to gauge the effort required. So, I'd keep this patch as a short-term fix for AIO for degraded reads, and open a ticket so we address this properly with a workqueue.

Do you agree? If yes, I open the ticket
reply PS30 2026-08-19 20:04 Marc Vef file.c:2219 — on refresh
Gerrit AI review for Lustre PS30 · 2026-08-19 15:12
(minor) aio_ec_sync deliberately survives the goto restart at the end of the function, and it has to. cda_no_aio_complete and cda_creator_free stay set on the cl_dio_aio across restarts, so a later pass that ends with anything other than -EIOCBQUEUED (cl_io_rw_init() failing, or cl_io_loop() returning a hard error) still needs both !is_aio || aio_ec_sync tests to be true.

If it were cleared at restart, __cl_sync_io_note() would skip the free because creator_free is 1, and the creator branch would skip it too, leaking the cl_dio_aio and its cda_obj reference.

This isn't a bug as written, but the coupling between a stack bool and two flags on a heap struct isn't obvious. Could the comment above say the flag is intentionally sticky, so it doesn't get reset in a later cleanup?
Marc Vef PS30 · 2026-08-19 20:04
on refresh
tags: pt_ecro
owner Patrick Farrell · uploader Maximilian Dilger · PS30 uploaded 19h ago · NEW · open in Gerrit ↗
commit message
LU-12669 llite: make AIO reads on EC file synchronous

For sync DIO, EC recovery on read failure runs inline in
ll_file_io_generic after cl_sync_io_wait_recycle.  AIO has
the same recovery requirement but cannot run recovery from
the sub-DIO completion path -- ll_file_io_generic returns
-EIOCBQUEUED to the VFS before the BRW completion fires, so
the syscall context recovery needs (the lu_env, the user's
iov_iter, the range lock) is gone by the time the read error
is known.

Rather than building a workqueue-based async recovery path,
make AIO reads on EC files behave as sync DIO: after
cl_io_loop, if an AIO read on an EC layout (io->ci_cross_ec,
set by lov_io_mirror_init during cl_io_rw_init) got
-EIOCBQUEUED, set cda_no_aio_complete and cda_creator_free
to disarm the async ki_complete path, then drop into the
same wait + restart code sync DIO uses.  The VFS calls
ki_complete itself when we return.

The flag flip is race-free because the submission ref on
cda_sync is still held -- end_io cannot fire until we drop
it in cl_sync_io_wait_recycle.

This disables async semantics for every AIO read on an EC
file, not only those that need recovery -- we cannot tell at
submission time whether reconstruction will be needed, so the
sync conversion fires unconditionally on -EIOCBQUEUED for an
EC layout.  As a side effect, the range_lock taken by
ll_file_io_generic is now held until all sub-DIOs have
drained, instead of being dropped while they are still in
flight.

Test-Parameters: testlist=sanity-ec
Test-Parameters: testlist=sanity-ec fstype=zfs
Assisted-by: Opus:4.8 llm_code_and_review_tools
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Marc Vef <mvef@whamcloud.com>
Change-Id: I394a3610e33b29ead8f5adb52dfa21db6b721944
64359 master J ✗1B ✓T ✓R 0/2
LU-19536 osc: remove dead DIO handling from sync path
2 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
LU-19536-dio-fixes 2 unresolved M +23 −52
6h
2 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
CI green — no vote yet from Qian Yingjin, Marc Vef, Andreas Dilger, Vitaliy Kuznetsov
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_63cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
build #128593 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Marc Vef, Andreas Dilger, Vitaliy Kuznetsov
patchsets:
+6 earlier PS1 03-04 PS2 03-04 PS3 03-04 PS4 03-04 PS5 03-04 PS6 03-04
PS7 07-29 Vitaliy Kuznetsov PS8 07-29 Vitaliy Kuznetsov PS9 07-30 Vitaliy Kuznetsov PS10 08-03 Vitaliy Kuznetsov PS11 08-03 Vitaliy Kuznetsov
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS11 2026-08-04 00:25 Gerrit AI review for Lustre lov_io.c:1661 — (suggestion) This is the last DIO assumption left in lov_io_submit(), and the patch's own premise says it can no longer hold: every page tha
Gerrit AI review for Lustre PS11 · 2026-08-04 00:25
(suggestion) This is the last DIO assumption left in lov_io_submit(), and the patch's own premise says it can no longer hold: every page that reaches here now comes from a cl_page_list, and the only CPT_TRANSIENT pages in the tree are built by ll_direct_rw_pages() into a cl_dio_pages, which goes to lov_dio_submit() instead. So an empty page arriving here would be CPT_CACHEABLE and this would LBUG.

In practice the branch looks unreachable too - lov_page_init_empty() does SetPageUptodate(), and all four submit paths (ll_readpage(), ll_read_ahead_page(), ll_prepare_partial_page(), ll_io_zero_page()) skip uptodate pages before queueing. If so the whole block is dead and could go with the rest of the DIO leftovers.

The comment is stale either way: cl_page_prep() here was removed by 169f076ae0 ("LU-13814 clio: remove cl_page_prep for transients").
reply PS11 2026-08-04 00:25 Gerrit AI review for Lustre osc_cache.c:3044 — (minor) Not a bug, but with `dio` dropped the only remaining value in this message is `ext->oe_srvlock`, and the enclosing condition is `dlm
Gerrit AI review for Lustre PS11 · 2026-08-04 00:25
(minor) Not a bug, but with `dio` dropped the only remaining value in this message is `ext->oe_srvlock`, and the enclosing condition is `dlmlock == NULL && !ext->oe_srvlock` - so it always prints `srvlock: 0`. If the patch is refreshed, either drop that field or print something that varies, e.g. `oe_rw`.
owner Patrick Farrell · uploader Vitaliy Kuznetsov · PS11 uploaded 16d ago · NEW · open in Gerrit ↗
commit message
LU-19536 osc: remove dead DIO handling from sync path

Since LU-13814 routed DIO through cio_dio_submit() and cl_dio_pages,
transient DIO pages no longer reach lov_io_submit(), osc_io_submit(),
or osc_queue_sync_pages(). The DIO-specific branches and setup left in
the ordinary page-list path are therefore dead.

Remove the stale DIO handling from the LOV and OSC submit paths,
including OBD_BRW_NOCACHE setup, the oe_dio assignment, and the
sync_io anchor setup. The ordinary LOV path now always groups pages
by stripe, while osc_io_submit() always prepares its pages.
OBD_BRW_NOCACHE is set only by osc_dio_submit() before it calls
osc_queue_dio_pages().

Since oe_dio is always false in the sync path, simplify extent
priority handling and omit oe_dio from the NOLCK diagnostic.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Vitaliy Kuznetsov <vkuznetsov@ddn.com>
Change-Id: I63711a7f3bc3699680e1c09d3349291ccebb75ec
64127 master J !B ✓T ✓R 1/2
LU-19900 lov: fix DIO with O_APPEND stripe routing
9 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
9 unresolved M +62 −15
22d
9 unresolved thread(s) await your reply — last from Gerrit AI review for Lustre
no vote yet from Qian Yingjin, Andreas Dilger, Zhenyu Xu, Timothy Day
janitor run: 3 failing config(s), none unique to this patch — janitor results
build #127719 SUCCESS · tests all Maloo sessions
reviews: Marc Vef +1 2026-07-17 08:28
no vote yet: Qian Yingjin, Andreas Dilger, Zhenyu Xu, Timothy Day
patchsets: PS1 02-19 PS2 02-19 PS3 02-20 PS4 06-02 Marc Vef PS5 07-17 Marc Vef
threads: 9 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre COMMIT_MSG:33 — This paragraph describes a change that does not seem to be in the diff. lustre/lov/lov_page.c isn't touched, and lov_page_init_composite()
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
This paragraph describes a change that does not seem to be in the diff.  lustre/lov/lov_page.c isn't touched, and lov_page_init_composite() has no append exception either before or after this commit:

    stripe_cached = lio->lis_cached_entry != LIS_CACHE_ENTRY_NONE &&
                    page->cp_type == CPT_TRANSIENT;

Was this paragraph left over from an earlier version of the patch?
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre COMMIT_MSG:36 — This fixes wrong-stripe routing and a wrong file size, so a Fixes: tag would help decide which maintenance branches need it. The "DIO is al
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
This fixes wrong-stripe routing and a wrong file size, so a Fixes: tag would help decide which maintenance branches need it.  The "DIO is already split by stripe" assumption that this patch repairs was introduced by:

    Fixes: d31647c017a3 ("LU-13799 lov: Improve DIO submit")

That commit made lov_io_submit() splice every DIO page onto the stripe of the first page, and 14db1faa0fbe ("LU-13799 lov: Cache stripe offset calculation") then extended the same assumption to the per-page stripe cache.  The assumption never held for the append path.
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre lov_io.c:1237 — The clamp to the component extent lives inside this branch, so nothing bounds the batch when the component at `start` has a single stripe.
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
The clamp to the component extent lives inside this branch, so nothing bounds the batch when the component at `start` has a single stripe.  For a layout like `-E 1M -c 1 -E -1 -c 4`, a 4MB DIO append from offset 0 gets no split at all and the batch crosses the component boundary; lov_page_init_composite() then hits

    if (!lov_io_layout_at_confirm(lio, entry, offset))
            return -ENODATA;

for the pages past 1M and the write fails.

The non-append path below clamps unconditionally - it starts at MAX_LFS_FILESIZE and applies min(next, lse->lsme_extent.e_end) outside the stripe_count test.  Should this do the same, so the commit message's "matching what the non-append path already does" actually holds?
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre lov_io.c:1245 — lio->lis_io_endpos is an absolute file offset set once in lov_io_init():
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
lio->lis_io_endpos is an absolute file offset set once in lov_io_init():

    lio->lis_io_endpos = crw_pos + crw_bytes;

For append that crw_pos is only the estimate taken in ll_file_io_generic(); the offset the write actually lands at is chosen later by vvp_io_write_start() from i_size_read().  After the first iteration `start` tracks that real position, so if the file grew in the meantime `start` can run past lis_io_endpos.

Two consequences: the loop stops once next reaches lis_io_endpos even though bytes remain in the iov_iter (short write from an O_APPEND write(), where before the patch the whole count went out in one iteration), and on the next line `next - start` goes negative into the size_t crw_bytes.

Should the append path clamp against the number of bytes still outstanding rather than an absolute endpos, and guard next >= start?
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre lov_io.c:1246 — Setting ci_continue here turns a single append iteration into several, and cl_io_loop() drops the lock between them:
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
Setting ci_continue here turns a single append iteration into several, and cl_io_loop() drops the lock between them:

    cl_io_lock() -> cl_io_start() -> cl_io_end() -> cl_io_unlock()

vvp_io_write_lock() takes [0, wr_append_lockpos] PW for append precisely so the whole write lands atomically at EOF, and vvp_io_write_start() re-reads i_size_read() under that lock on every iteration.  With the split, another client can revoke the lock and append between our iterations, so a single 4MB O_APPEND write() can end up with a foreign client's data interleaved in the middle of it.

Is there a way to keep the append as one locked iteration and instead bound the cl_dio_pages batch itself (in ll_direct_IO()/cl_dio_pages_init()) at the stripe boundary?
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre lov_io.c:1699 — This contradicts the assertion 14 lines above, which says the opposite about the same queue:
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
This contradicts the assertion 14 lines above, which says the opposite about the same queue:

    /* it could only be mirror read to get here therefore
     * the pages will be transient. */
    LASSERT(page->cp_type == CPT_TRANSIENT);

If transient pages genuinely never reach lov_io_submit(), that earlier LASSERT can never be satisfied and would LBUG the client on any buffered read that lands on an uninstantiated component.  Worth resolving one way or the other while this function is being touched.
reply PS3 2026-06-15 08:33 Marc Vef sanity.sh:31007 — Andreas, out of interest, do you have some more info on this as to why?
Andreas Dilger PS3 · 2026-05-08 07:25
I read that `drop_caches` is not considered reliable.  It might be better to use `cancel_lru_locks osc`.
Marc Vef PS3 · 2026-06-15 08:33
Andreas, out of interest, do you have some more info on this as to why?
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre sanity.sh:31807 — There is no OST count precondition, so on a single-OST setup `-c 2` silently yields one stripe and the test passes without exercising anythi
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
There is no OST count precondition, so on a single-OST setup `-c 2` silently yields one stripe and the test passes without exercising anything.  Consider:

    (( OSTCOUNT >= 2 )) || skip_env "needs at least 2 OSTs"

Also, the file is empty here, so the append starts at offset 0 and is already stripe aligned.  Appending to a file that is not a multiple of the stripe size (say seed it with 512KB first) is the case where the split has to get the first partial stripe right.
reply PS5 2026-07-28 11:26 Gerrit AI review for Lustre sanity.sh:31821 — Both md5sums read the same OST data - the first one populates the page cache from the OSTs after the DIO write - so this compares the file a
Gerrit AI review for Lustre PS5 · 2026-07-28 11:26
Both md5sums read the same OST data - the first one populates the page cache from the OSTs after the DIO write - so this compares the file against itself rather than against what was written.  Writing from a temp file (or `dd`ing a known pattern) and comparing that checksum would actually catch mis-routed data; right now only the size check can fail.

On a related note, the earlier suggestion on this hunk to use `cancel_lru_locks osc` instead of drop_caches doesn't appear to have been picked up in the current revision.
owner Patrick Farrell · uploader Marc Vef · PS5 uploaded 33d ago · NEW · open in Gerrit ↗
commit message
LU-19900 lov: fix DIO with O_APPEND stripe routing

When a file is opened with O_APPEND and written via
direct IO, all data is incorrectly routed to stripe 0
instead of being distributed across stripes.

The root cause is that lov_io_rw_iter_init() does not
split append writes at stripe boundaries.  Each DIO
iteration processes a cl_dio_pages batch, which
lov_dio_pages_init_composite() assigns to a single
stripe.  Without splitting, the entire write goes to
one stripe, causing incorrect file sizes (e.g. 7MB
instead of 4MB for a 4MB write to a 2-stripe file)
and data corruption.

Fix by adding stripe boundary splitting to the append
path of lov_io_rw_iter_init(), matching what the
non-append path already does.  Each iteration now
covers at most one stripe_size worth of data, so
lov_dio_pages_init_composite() correctly assigns each
batch to a single stripe.

Also add an LASSERT in lov_io_submit() confirming
that DIO pages (CPT_TRANSIENT) never reach that path
- they use lov_dio_submit() instead.

Also revert the append exception for the DIO stripe
cache in lov_page_init_composite() since it is no
longer needed now that iterations are single-stripe.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I66304a6692eaab9c68a03159e51cf3d27c465a83
63981 master J ✗1B ✓T ✓R 2/2−
LU-19487 osc: fix shrinker loop in osc_lru_list_shrink
Oleg Drokin voted -1
stalled 123d 6 unresolved S +9 −5
123d
Oleg Drokin voted -1
6 unresolved thread(s) await your reply — last from Andreas Dilger
no vote yet from Qian Yingjin
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
sanity1@zfs:test_56abseen in 5 other reviews
build #123341 SUCCESS · tests all Maloo sessions
reviews: Marc Vef +1 2026-04-03 01:02 · Andreas Dilger +1 2026-04-03 01:02 · Oleg Drokin -1 2026-04-18 05:20
no vote yet: Qian Yingjin
patchsets:
+3 earlier PS1 02-12 PS2 02-12 PS3 02-17
PS4 02-17 PS5 02-18 PS6 02-26 PS7 02-28 PS8 04-03
threads: 6 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS5 2026-02-26 06:14 Andreas Dilger COMMIT_MSG:34 — I guess the intent is that the patch passed 5x as many iterations as without the patch, so it is improving the situation to some extent.
Alex Zhuravlev PS5 · 2026-02-26 05:54
this 88 of 500 sounds strange to me.. is it still failing?
Andreas Dilger PS5 · 2026-02-26 06:14
I guess the intent is that the patch passed 5x as many iterations as without the patch, so it is improving the situation to some extent.
reply PS8 2026-04-18 05:20 Oleg Drokin COMMIT_MSG:9 — if this was the real problem introducing commit, it should be Fixes: header below.
Oleg Drokin PS8 · 2026-04-18 05:20
if this was the real problem introducing commit, it should be Fixes: header below.
reply PS8 2026-04-18 05:20 Oleg Drokin patchset comment — The pieces of this patch don't add up.
Oleg Drokin PS8 · 2026-04-18 05:20
The pieces of this patch don't add up.

While I understand it improves the situation, now that that was demonstrated, it's time for a real human to look into why and make a patch that actually makes sense.
reply PS8 2026-04-18 05:20 Oleg Drokin osc_page.c:785 — is this the actual weight bearing "fix" of this patch?
Oleg Drokin PS8 · 2026-04-18 05:20
is this the actual weight bearing "fix" of this patch?
reply PS8 2026-04-18 05:20 Oleg Drokin osc_page.c:691 — this comment seems wrong.
Oleg Drokin PS8 · 2026-04-18 05:20
this comment seems wrong.
We can never get here via unevict-clear (osc_unevict_cache_shrink call I guess?) because it sets reason to SK_REASON_UNEVICT_LRU, but that case is already handled above.
That leaves a call for normal reclaim from osc_lru_reclaim?
reply PS8 2026-04-18 05:20 Oleg Drokin osc_page.c:695 — I am not sure how this statement makes any sense?
Oleg Drokin PS8 · 2026-04-18 05:20
I am not sure how this statement makes any sense?
owner Patrick Farrell · uploader Patrick Farrell · PS8 uploaded 138d ago · NEW · open in Gerrit ↗
commit message
LU-19487 osc: fix shrinker loop in osc_lru_list_shrink

Commit 109e32dc23 ("LU-19223 osc: stop after scanning")
changed the scan-limit tracking in osc_lru_list_shrink()
from a countdown to a count-up, and added a
--pages_scanned adjustment in the cl_object-switch path
to avoid counting object-switch iterations as scans.

When LRU pages belong to many different cl_objects, the
decrement causes pages_scanned to stagnate near zero,
making the loop run far longer than max_pages_to_scan
allows.  The kernel's do_shrink_slab then re-calls the
shrinker because nr_scanned stays low, creating a
CPU-bound infinite loop that hangs the system.

Remove the --pages_scanned adjustment.  The cl_object
switch does real work (dropping the spinlock, calling
cl_io_init) and should count toward the scan limit.

For forced scans (unevict-clear, cache-limit reduction,
etc.), increase the scan budget to target<<1 without
capping at lru_in_list so that object-switch overhead
does not prevent the shrinker from reaching its target.

Reproduced on a single-node test setup: sanityn test_16g
hung at iteration 17 of 100 without the fix (system
required hard reboot), passed 88 of 500 iterations
cleanly with the fix applied.

Generated with Claude Code + Tools

Test-Parameters: testlist=sanityn env=ONLY=16g,ONLY_REPEAT=10
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I7c007a1c021067e0b166b00045223ad8a927b5aa
65029 master J !B ✓T ✓R 1/2−
LU-20069 osc: pass page index explicitly for DIO encrypt
Sebastien Buisson voted -1
stalled 135d 1 unresolved S +8 −7
135d
Sebastien Buisson voted -1
1 unresolved thread(s) await your reply — last from Sebastien Buisson
no vote yet from Shaun Tancheff, Jian Yu
janitor run: 3 failing config(s), none unique to this patch — janitor results
6 optional test failure(s) — informational
build #123332 SUCCESS · tests all Maloo sessions
reviews: Sebastien Buisson -1 2026-04-03 07:41 · Andreas Dilger +1 2026-04-03 06:29
no vote yet: Shaun Tancheff, Jian Yu
patchsets: PS1 04-01 PS2 04-02 PS3 04-02
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-04-02 13:36 Sebastien Buisson folio.h:245 — This is pretty similar to `ll_filemap_get_folios`, but I guess with all the #define involved it is not easy to factorize. Maybe introduce `l
Sebastien Buisson PS1 · 2026-04-02 13:36
This is pretty similar to `ll_filemap_get_folios`, but I guess with all the #define involved it is not easy to factorize. Maybe introduce `ll_split_folio` to do the split loop (and which would be a no-op in case folio_order is not defined).
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 139d ago · NEW · open in Gerrit ↗
commit message
LU-20069 osc: pass page index explicitly for DIO encrypt

DIO encrypted file corruption during migration. The encrypt
path in osc_brw_prep_request() writes cp_page_index into
page_folio(page)->index, then osc_encrypt_pagecache_blocks()
reads it back via folio->index + page offset. For DIO pages
that are part of compound pages (order > 0), the page offset
within the folio is added to the index, producing a wrong
AES-XTS tweak. The decrypt path correctly uses cp_page_index
directly.

Compound pages can appear for DIO allocations on any kernel
-- reproduced on RHEL 9.6 and SLES 15.6.

Fix: pass cp_page_index explicitly to
osc_encrypt_pagecache_blocks() for DIO, mirroring the
decrypt path. Eliminates the fragile round-trip through
folio->index that breaks for compound pages.

Generated with Claude Code + Tools

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Iba44faefa61a7da6377e9d906b0453ef4ded5d13
50234 master J !B ✓T …R 0/2−
LU-16624 tests: Add log scan
Andreas Dilger voted -1
stalled 380d XS +9 −0
380d
Andreas Dilger voted -1
build OK — testing in progress (typically 6–14h)
janitor run: 1 failing config(s), none unique to this patch — janitor results
4 optional test failure(s) — informational
build #92909 SUCCESS · tests all Maloo sessions · test queue
reviews: Andreas Dilger -1 2023-03-10 04:50
patchsets: PS1 03-08 PS2 03-08
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 1259d ago · NEW · open in Gerrit ↗
commit message
LU-16624 tests: Add log scan

Add a dmesg log scan as a final test to catch warnings that
may have occured in the logs.

Let's see how this works and get some feedback, then I'll
look at adding it to other test sets.

Test-parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I1b1e967b515a737c54702a7048429db79746d632

In CI

(1)
57357 master J –B ✓T –R 0/2
LU-11962 mdt: lazy as strict som
build OK — testing in progress (typically 6–14h)
stalled 387d XS +4 −2
387d
build #111564 SUCCESS
no vote yet: Sohei Koyama
patchsets: PS1 12-10 PS2 12-10 PS3 12-10 PS4 03-05 Sohei Koyama
owner Patrick Farrell · uploader Sohei Koyama · PS4 uploaded 532d ago · NEW · open in Gerrit ↗
commit message
LU-11962 mdt: lazy as strict som

Tiny test for lazy-as-strict SOM.

Test-Parameters: forbuildonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Sohei Koyama <skoyama@ddn.com>
Change-Id: I3ce247c7d255512c979fbb5c5286e56a4c218c45

Needs reviewers

(10)
62580 master J !B ✓T ✓R 0/2
LU-15367 llite: Add iotrace debug logs for delete operations
CI green — no vote yet from Qian Yingjin, Xiao Yang, Sebastien Buisson, Andreas Dilger
S +19 −6
3d
janitor run: 5 failing config(s), none unique to this patch — janitor results
no vote yet: Qian Yingjin, Xiao Yang, Sebastien Buisson, Andreas Dilger, Li Dongyang, Timothy Day
patchsets:
+8 earlier PS1 11-18 PS2 11-18 PS3 11-18 PS4 11-18 PS5 11-18 PS6 11-18 PS7 11-18 PS8 04-16 Xiao Yang
PS9 04-18 Xiao Yang PS10 08-13 Xiao Yang PS11 08-14 Xiao Yang PS12 08-14 Xiao Yang PS13 08-15 Xiao Yang
owner Patrick Farrell · uploader Xiao Yang · PS13 uploaded 4d ago · NEW · open in Gerrit ↗
commit message
LU-15367 llite: Add iotrace debug logs for delete operations

Add iotrace debug logs to track delete operations in
ll_unlink()/ll_rmdir().

Also drop the dead dchild->d_inode NULL check in ll_rmdir():
ll_rmdir() is only reachable as .rmdir, and the VFS rejects
negative dentries before calling ->rmdir.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Xiao Yang <xyang@ddn.com>
Change-Id: I30ef291a63d23ed1051f288b955ef6a81eb073de
62581 master J !B ✓T ✓R 0/2
LU-15367 llite: Add iotrace debug logs for link operations
CI green — no vote yet from Qian Yingjin, Xiao Yang, Sebastien Buisson, Andreas Dilger
S +20 −7
3d
janitor run: 5 failing config(s), none unique to this patch — janitor results
no vote yet: Qian Yingjin, Xiao Yang, Sebastien Buisson, Andreas Dilger, Li Dongyang, Timothy Day
patchsets:
+8 earlier PS1 11-18 PS2 11-18 PS3 11-18 PS4 11-18 PS5 11-18 PS6 11-18 PS7 11-18 PS8 04-16 Xiao Yang
PS9 04-18 Xiao Yang PS10 08-13 Xiao Yang PS11 08-14 Xiao Yang PS12 08-14 Xiao Yang PS13 08-15 Xiao Yang
owner Patrick Farrell · uploader Xiao Yang · PS13 uploaded 4d ago · NEW · open in Gerrit ↗
commit message
LU-15367 llite: Add iotrace debug logs for link operations

Add iotrace debug logs to track link operations in
ll_link()/ll_symlink().

A long symlink target may overflow the debug page and get
printed to the console unthrottled, so cap the target in
the traces.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Xiao Yang <xyang@ddn.com>
Change-Id: Ifc252381b81472510b2fa523dc7d482cb989bc76
62582 master J ✗1B ✓T ✓R 0/2
LU-15367 llite: Add iotrace debug logs for rename operations
CI green — no vote yet from Qian Yingjin, Xiao Yang, Sebastien Buisson, Andreas Dilger
S +16 −5
3d
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
replay-single1@ldiskfs+DNE:test_80cseen in 6 other reviews
no vote yet: Qian Yingjin, Xiao Yang, Sebastien Buisson, Andreas Dilger, Li Dongyang, Timothy Day
patchsets:
+9 earlier PS1 11-18 PS2 11-18 PS3 11-18 PS4 11-18 PS5 11-18 PS6 11-18 PS7 11-18 PS8 11-18 PS9 04-16 Xiao Yang
PS10 04-18 Xiao Yang PS11 08-13 Xiao Yang PS12 08-14 Xiao Yang PS13 08-14 Xiao Yang PS14 08-15 Xiao Yang
owner Patrick Farrell · uploader Xiao Yang · PS14 uploaded 4d ago · NEW · open in Gerrit ↗
commit message
LU-15367 llite: Add iotrace debug logs for rename operations

Add iotrace debug logs to track rename operations in ll_rename().

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Xiao Yang <xyang@ddn.com>
Change-Id: I54ce741aafa802384cfe81979adea851c55e13f3
62577 master J !B ✓T ✓R 0/2
LU-15367 llite: Add iotrace debug logs for lock operations
CI green — no vote yet from Qian Yingjin, Xiao Yang, Sebastien Buisson, Andreas Dilger
S +11 −2
5d
janitor run: 5 failing config(s), none unique to this patch — janitor results
build #129222 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Xiao Yang, Sebastien Buisson, Andreas Dilger, Li Dongyang, Timothy Day
patchsets:
+6 earlier PS1 11-17 PS2 11-18 PS3 11-18 PS4 11-18 PS5 11-18 PS6 11-18
PS7 11-18 PS8 04-15 Xiao Yang PS9 04-16 Xiao Yang PS10 04-18 Xiao Yang PS11 08-13 Xiao Yang
your previous vote: -1 on PS1 (2025-11-17 23:17) — now at PS11
owner Patrick Farrell · uploader Xiao Yang · PS11 uploaded 6d ago · NEW · open in Gerrit ↗
commit message
LU-15367 llite: Add iotrace debug logs for lock operations

Add iotrace debug logs to track lock operations in ll_file_flock().

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Xiao Yang <xyang@ddn.com>
Change-Id: I110d4051df9e534410809a79353520c2e91e7491
64270 master J !B ✓T ✓R 0/2
LU-19939 llite: reorder tiny write before PCC/hybrid
CI green — no vote yet from Andreas Dilger
stalled 169d S +29 −20
169d
janitor run: 4 failing config(s), none unique to this patch — janitor results
5 optional test failure(s) — informational
build #122030 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets: PS1 02-28 PS2 02-28 PS3 03-02
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 170d ago · NEW · open in Gerrit ↗
commit message
LU-19939 llite: reorder tiny write before PCC/hybrid

Move the tiny write attempt before PCC and hybrid
DIO checks in do_file_write_iter.  When a tiny write
succeeds (page already dirty in cache), the function
returns immediately without touching PCC, hybrid
switch, or the CLIO path.

Replace ktime_get() with ktime_get_coarse() (same
approach as companion read patch LU-19344) to avoid
the expensive hardware clocksource read.  On KVM
guests, pvclock_clocksource_read was the #1 CPU
consumer at 9.16% in the tiny write profile.
Virtualization is not a niche scenario - all major
cloud providers run KVM or similar hypervisors.

ktime_get_coarse() reads a cached jiffies-granularity
timestamp (~1-4ms resolution), reducing clock overhead
from 9.16% to 0.54% of CPU.  The coarse granularity
is sufficient for the aggregate min/max/sum/count
stats - keeping stats on all I/O paths is important
for observability, so we pay the remaining stats cost
rather than skipping collection on fast paths.

perf profile with ktime_get_coarse (KVM, pvclock):
  pvclock_clocksource_read: 0.02% (from other callers)
  ktime_get_coarse_ts64:    0.54%
  (was: pvclock 7.32% + 1.84% = 9.16%)

Benchmark (8-byte sequential writes, 2M iterations):
  Before (ktime_get):       ~1,970k writes/sec
  After (ktime_get_coarse): ~2,179k writes/sec (+11%)

Generated with Claude Code + Tools

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ib73b36a9c588bb6ac1a78f77b49bef160af4ee76
63163 master J –B ✓T ✓R 0/2
LU-0000 doc: man page cleanups
CI green, no reviews yet — add reviewers
stalled 238d M +83 −67
238d
build #120001 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 238d ago · NEW · open in Gerrit ↗
commit message
LU-0000 doc: man page cleanups

This is a large collection of minor man
page cleanups, covering missing options,
incorrectly specified APIs, and many
more minor issues.

This code was generated by Augment.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I9a3269b30945e2821819ef8e03998d856a27a5ed
52182 master J !B ✓T ✓R 0/2
LU-13814 osc: simplify osc_dio_page_submit
CI green — no vote yet from Qian Yingjin, Marc Vef, Andreas Dilger, Zhenyu Xu
stalled 263d S +10 −14
263d
janitor run: 3 failing config(s), none unique to this patch — janitor results
2 optional test failure(s) — informational
build #119105 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Marc Vef, Andreas Dilger, Zhenyu Xu
patchsets:
+32 earlier PS1 08-30 PS2 08-30 PS3 08-30 PS4 08-31 PS5 09-05 PS6 09-09 PS7 09-09 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-10 PS15 09-12 PS16 09-14 PS17 09-15 PS18 09-24 PS19 09-25 PS20 09-26 PS21 09-26 PS22 10-05 PS23 10-05 PS24 10-20 PS25 10-22 PS26 10-22 PS27 02-27 PS28 10-28 PS29 11-03 PS30 04-28 PS31 05-01 PS32 07-04
PS33 07-14 PS34 11-06 PS35 11-09 PS36 11-16 PS37 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS37 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: simplify osc_dio_page_submit

Remove more code from osc_dio_page_submit, with the goal of
eliminating it entirely.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Id408aad01c2e81a126dd04807819aed9d29fca6b
52167 master J !B ✓T ✓R 0/2
LU-13814 osc: add osc_dio_completion
CI green — no vote yet from Qian Yingjin, Marc Vef, Andreas Dilger, Zhenyu Xu
stalled 263d M +49 −32
263d
janitor run: 3 failing config(s), none unique to this patch — janitor results
2 optional test failure(s) — informational
build #119044 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Marc Vef, Andreas Dilger, Zhenyu Xu
patchsets:
+31 earlier PS1 08-29 PS2 08-30 PS3 08-30 PS4 08-30 PS5 08-31 PS6 09-05 PS7 09-09 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-12 PS15 09-14 PS16 09-15 PS17 09-24 PS18 09-25 PS19 09-26 PS20 09-26 PS21 10-05 PS22 10-05 PS23 10-20 PS24 10-22 PS25 10-22 PS26 02-27 PS27 10-28 PS28 11-03 PS29 04-28 PS30 05-01 PS31 07-04
PS32 07-14 PS33 11-06 PS34 11-09 PS35 11-16 PS36 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS36 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: add osc_dio_completion

Specialize osc_completion to add the osc_dio_completion
version.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I4d202165ee6c4f50338b6a9381aa476b969d3593
52166 master J ✓B ✓T ✓R 0/2
LU-13814 osc: add osc_dio_page_submit
CI green — no vote yet from Qian Yingjin, Marc Vef, Andreas Dilger, Zhenyu Xu
stalled 265d M +42 −16
265d
failed enforced testplatformdetail
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-part-8 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: replay-dual. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-lnet. session
review-dne-zfs-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 8 tests. 1 tests failed: sanity. session
review-zfs RHEL 8.10 / x86_64 ran 10 tests. 1 tests failed: replay-single. session
8 optional test failure(s) — informational
build #119017 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Marc Vef, Andreas Dilger, Zhenyu Xu
patchsets:
+31 earlier PS1 08-29 PS2 08-30 PS3 08-30 PS4 08-30 PS5 08-31 PS6 09-05 PS7 09-09 PS8 09-10 PS9 09-10 PS10 09-10 PS11 09-10 PS12 09-10 PS13 09-10 PS14 09-12 PS15 09-14 PS16 09-15 PS17 09-24 PS18 09-25 PS19 09-26 PS20 09-26 PS21 10-05 PS22 10-05 PS23 10-20 PS24 10-22 PS25 10-22 PS26 02-27 PS27 10-28 PS28 11-03 PS29 04-28 PS30 04-28 PS31 05-01
PS32 07-04 PS33 07-14 PS34 11-06 PS35 11-09 PS36 11-16
owner Patrick Farrell · uploader Patrick Farrell · PS36 uploaded 276d ago · NEW · open in Gerrit ↗
commit message
LU-13814 osc: add osc_dio_page_submit

This patch adds the osc_dio_page_submit and specializes
osc_page_submit to take only BIO pages.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I048bbcd25ffee28fbbd8fee26017796b5e3586bd
60537 master J !B ✓T ✓R 0/2
LU-0000 lov: initial client support
CI green, no reviews yet — add reviewers
stalled 378d M +95 −12
378d
janitor run: 3 failing config(s), none unique to this patch — janitor results
3 optional test failure(s) — informational
build #115547 SUCCESS · tests all Maloo sessions
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 379d ago · NEW · open in Gerrit ↗
commit message
LU-0000 lov: initial client support

Initial client support for EC layouts.

A step towards allowing actually creating
EC layouts.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I0e2a5d59df04ba6f7053d889cb5f204048edf8d7

Waiting on reviewers

(2)
62579 master J ✗1B ✓T ✓R 1/2
LU-15367 llite: Add iotrace debug logs for allocate operations
no vote yet from Xiao Yang, Sebastien Buisson, Andreas Dilger, Li Dongyang
S +9 −2
5d
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
sanity-lfsck@ldiskfs+DNE:test_18cseen in 7 other reviews
build #129223 SUCCESS · tests all Maloo sessions
reviews: Qian Yingjin +1 2026-08-13 06:46
no vote yet: Xiao Yang, Sebastien Buisson, Andreas Dilger, Li Dongyang, Timothy Day
patchsets:
+6 earlier PS1 11-18 PS2 11-18 PS3 11-18 PS4 11-18 PS5 11-18 PS6 11-18
PS7 11-18 PS8 04-15 Xiao Yang PS9 04-16 Xiao Yang PS10 04-18 Xiao Yang PS11 08-13 Xiao Yang
owner Patrick Farrell · uploader Xiao Yang · PS11 uploaded 6d ago · NEW · open in Gerrit ↗
commit message
LU-15367 llite: Add iotrace debug logs for allocate operations

Add iotrace debug logs to track allocate operations in ll_fallocate().

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Xiao Yang <xyang@ddn.com>
Change-Id: Ib983223f5b3aac3c6c31aa317f93bff44a87beb6
50678 master J ✓B –T –R 1/2
LU-16741 ptlrpc: refactor __ptlrpc_req_put
stalled 1083d S +9 −20
1083d
reviews: Timothy Day +1 2023-09-01 14:45
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+6 earlier PS1 04-18 PS2 04-18 PS3 04-18 PS4 04-18 PS5 04-18 PS6 04-18
PS7 04-18 PS8 04-22 PS9 08-31 PS10 08-31 PS11 09-01 Andreas Dilger
owner Patrick Farrell · uploader Andreas Dilger · PS11 uploaded 1083d ago · NEW · open in Gerrit ↗
commit message
LU-16741 ptlrpc: refactor __ptlrpc_req_put

Remove ptlrpc_req_put_with_imp_lock, since it's used inconsistently.

Change parameter 'locked' from int to bool.

Return value is never used; make it void.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie33dd6e3b6153a7ec80a05dbc5dc275ae4024360

Ready to land

(8)
54051 master J !B ✓T ✓R 2/2
LU-15069 llite: remove skip_index
all green — ready to land (not in master-next yet)
5 unresolved S +10 −26
6d
all green — ready to land (not in master-next yet)
5 reviewer comment(s) to address if a respin is needed — last from Oleg Drokin
janitor run: 2 failing config(s), none unique to this patch — janitor results
5 optional test failure(s) — informational
build #119151 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2026-04-25 08:49 · Timothy Day +1 2026-07-28 05:08
no vote yet: Qian Yingjin, Marc Vef, Shaun Tancheff, Sebastien Buisson, Li Dongyang
patchsets:
+1 earlier PS1 02-15
PS2 02-15 PS3 02-15 PS4 02-15 PS5 11-23 PS6 12-03
threads: 5 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS6 2026-08-09 22:24 Oleg Drokin COMMIT_MSG:25 — no Fixes: line for the patch that introduced this?
Oleg Drokin PS6 · 2026-08-09 22:24
no Fixes: line for the patch that introduced this?
reply PS6 2026-08-09 22:24 Oleg Drokin patchset comment — this patch was pushed 8 month ago and not refreshed since.
Oleg Drokin PS6 · 2026-08-09 22:24
this patch was pushed 8 month ago and not refreshed since.

that means no ai review (this is a note to myself to run it before pushing)
reply PS6 2026-08-12 05:13 Oleg Drokin rw.c:781 — this... sounds somewhat unintentional?
Gerrit AI review for Lustre PS6 · 2026-08-12 05:04
(defect) This drops the `if (skip_index)` condition but keeps its body, so the assignment two lines above is now dead - it is always overwritten. Removing skip_index should mean the code behaves as it did when skip_index was 0, i.e. the window end stays anchored at ras_window_start_idx:

    if (ras->ras_window_pages > 0)
        end_idx = ras->ras_window_start_idx + ras->ras_window_pages - 1;
    end_idx = *start_idx + ras->ras_window_pages - 1;   /* was skip_index only */

As written the RA window end is now anchored at ras_next_readahead_idx for every read, not just the mmap range case, which is a behaviour change the commit message describes as a simplification. Is that intended? If so it deserves a sentence in the message and the dead lines above should go.

The `ras->ras_window_pages > 0` guard also disappears with it. When the window is zero the new expression underflows to `*start_idx - 1`, and with `*start_idx == 0` that wraps to ULONG_MAX; the EOF clamp below then turns it into `[0, eof_index]`, i.e. a whole-file readahead window, where the old code fell through to the `end_idx == 0` RA_STAT_ZERO_WINDOW return. ras_detect_read_pattern() reaches that state - the stride-invalidation path sets `ras_window_pages = 0; ras_next_readahead_idx = index;` with index 0, and the mmap hit path in ras_update() sets `ras_window_pages = 0` without touching ras_next_readahead_idx.
Oleg Drokin PS6 · 2026-08-12 05:13
this... sounds somewhat unintentional?

I guess forcing whole file readahead would do wonders to tests that expect great readhead, but what about actual workloads? do we have any actual tests?
reply PS5 2025-11-25 05:30 Andreas Dilger sanity.sh:13083 — (style) prefer `((...))` for numeric comparisons
Andreas Dilger PS5 · 2025-11-25 05:30
(style) prefer `((...))` for numeric comparisons
reply PS6 2026-08-12 05:04 Gerrit AI review for Lustre sanity.sh:13083 — (style) this isn't a bug, but the numeric comparison was asked to move to `(( ... ))` on an earlier patchset and the line is still using `[
Gerrit AI review for Lustre PS6 · 2026-08-12 05:04
(style) this isn't a bug, but the numeric comparison was asked to move to `(( ... ))` on an earlier patchset and the line is still using `[ ... -eq ... ]`:

    (( miss == 2 )) || error "expected misses 2 but got $miss"
owner Patrick Farrell · uploader Patrick Farrell · PS6 uploaded 259d ago · NEW · open in Gerrit ↗
commit message
LU-15069 llite: remove skip_index

Skip_index seems to have been a confused attempt to change
mmap readahead behavior, but basically just turns off a
number of readahead optimizations in a weird way and
sometimes causes us not to read a page for - as far as I
can tell - no reason.  This causes misses in normal read
patterns.

It also skips the minimum page reservation logic, again for
no reason I can see - mmap reads should use the same logic
here as everything else.

Remove it entirely to simplify the code a little.

This also reduces the number of misses we take in a simple
readahead test, which is a nice indication of how this code
is affecting readahead.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ia953c8a8cb6dc175255ac316b4b3f02d78effae9
52668 master J !B ✓T ✓R 4/2
LU-13805 llite: udio and encryption
all green — ready to land (not in master-next yet)
S +28 −10
82d
janitor run: 1 failing config(s), none unique to this patch — janitor results
5 optional test failure(s) — informational
build #117334 SUCCESS · tests all Maloo sessions
reviews: Qian Yingjin +1 2025-10-18 02:37 · Shaun Tancheff +1 2026-01-28 06:34 · Sebastien Buisson +1 2026-05-29 12:08 · Andreas Dilger +1 2025-10-15 23:38
no vote yet: Alexey Lyashkov
patchsets:
+7 earlier PS1 10-12 PS2 10-24 PS3 01-16 PS4 02-08 PS5 03-01 Andreas Dilger PS6 06-07 PS7 06-07
PS8 06-07 PS9 06-07 PS10 06-07 PS11 09-26 PS12 10-10
owner Patrick Farrell · uploader Patrick Farrell · PS12 uploaded 313d ago · NEW · open in Gerrit ↗
commit message
LU-13805 llite: udio and encryption

Encryption requires the client always send complete pages,
which unaligned DIO does not do.  So when encryption is
enabled, and we would get a partial page from UDIO, we fall
back to buffered IO.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ic81f0338d26c86321e5ffd74ef6ed6c8ddb5cdc6
55423 master J ✗1B ✓T ✓R 2/2
LU-17478 clio: rename ll_* dio functions
all green — ready to land (not in master-next yet)
stalled 379d 1 unresolved M +30 −29
379d
all green — ready to land (not in master-next yet)
1 thread(s) waiting on others
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
sanity2@zfs:test_104cseen in 19 other reviews
build #105473 SUCCESS · tests all Maloo sessions
reviews: Shaun Tancheff +1 2024-06-14 02:13 · Timothy Day +1 2024-06-13 21:52
no vote yet: Andreas Dilger
patchsets: PS1 06-13 PS2 06-13 PS3 06-13 PS4 06-13
your previous vote: -1 on PS3 (2024-06-13 21:45) — now at PS4
threads: 0 need your reply · 1 waiting on others · 0 own notes · 0 bot
owner Patrick Farrell · uploader Patrick Farrell · PS4 uploaded 797d ago · NEW · open in Gerrit ↗
commit message
LU-17478 clio: rename ll_* dio functions

In the code reorganizations for the IO path rewrite
(parallel DIO, UDIO, Hybrid) these functions all moved from
being ll_* functions to being cl_* functions, declared and
implemented in the cl layer.

Rename them accordingly.

OCI-bug-id: LFS-288
Test-Parameters: trivial
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I867f7db1d9cede573f7dd840b80641544d8575b7
57404 master J –B ✓T ✓R 2/2
LU-18541 doc: Update man page see also
all green — ready to land (not in master-next yet)
stalled 379d M +54 −4
379d
build #109635 SUCCESS · tests all Maloo sessions
reviews: Richard Henwood +1 2024-12-16 13:46 · Andreas Dilger +1 2024-12-15 10:27
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 615d ago · NEW · open in Gerrit ↗
commit message
LU-18541 doc: Update man page see also

Update man page see also for lfs.1 and lctl.8.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I42b07b19ab6f821537a61c9f7fc8e663b455e91a
50037 master J ✗1B ✓T ✓R 2/2
LU-16567 ldlm: Add l_ast_data to debugging
all green — ready to land (not in master-next yet)
stalled 380d 2 unresolved M +32 −20
380d
all green — ready to land (not in master-next yet)
2 reviewer comment(s) to address if a respin is needed — last from Timothy Day
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
sanity-quota@ldiskfs+DNE:test_1bseen in 11 other reviews
build #111637 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2025-03-11 20:29 · Timothy Day +1 2025-03-10 16:55
patchsets:
+5 earlier PS1 02-17 PS2 02-21 PS3 02-21 PS4 02-21 PS5 02-24 Andreas Dilger
PS6 06-13 PS7 06-13 PS8 08-10 Andreas Dilger PS9 08-10 Andreas Dilger PS10 03-10 Timothy Day
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS10 2025-03-10 16:55 Timothy Day COMMIT_MSG:2 — I had to manually change the email in the Author line for Gerrit to accept the patch.
Timothy Day PS10 · 2025-03-10 16:55
I had to manually change the email in the Author line for Gerrit to accept the patch.
reply PS7 2024-08-10 15:42 Andreas Dilger osc_request.c:2955 — I think what Oleg is trying to point out is that it would be more useful to print the current l_ast_data and data, since the previous l_ast_
Oleg Drokin PS7 · 2024-06-25 02:39
this seems at least somewhat redundant?
Either it is set and then the original data is NULL (or data and original data are equal) or it is not set and then they differ of course.

Also we used to have an assertion at least in llite for when you try to set the ast data that's already set to something else, did not we?
Andreas Dilger PS7 · 2024-08-10 15:42
I think what Oleg is trying to point out is that it would be more useful to print the current l_ast_data and data, since the previous l_ast_data is not interesting (either NULL if set=1, or equal to current l_ast_data).
owner Patrick Farrell · uploader Timothy Day · PS10 uploaded 527d ago · NEW · open in Gerrit ↗
commit message
LU-16567 ldlm: Add l_ast_data to debugging

Knowing the value of l_ast_data, if it's set, and if it
has changed is useful for debugging some issues.

Add it to the lock debug output.

Also add debug in OSC where l_ast_data is changed.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I60290d03f024d8e990ff9cffe326225753c8a37e
51162 master J !B ✓T ✓R 3/2
LU-16858 build: remove flock config option
all green — ready to land (not in master-next yet)
stalled 380d S +0 −19
380d
janitor run: 1 failing config(s), none unique to this patch — janitor results
build #95180 SUCCESS · tests all Maloo sessions
reviews: James Simmons +1 2023-05-31 19:43 · Sebastien Buisson +1 2023-05-31 08:46 · Andreas Dilger +1 2023-05-30 21:34
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1177d ago · NEW · open in Gerrit ↗
commit message
LU-16858 build: remove flock config option

flock'ing can be turned on and off at mount time, so a
configure option to change the default behavior is rather
odd and is not actually used.  So let's remove it.

Note despite the slightly confusing phrasing in the code,
flock is *on* by default and this lets you change the
mount time default to off.  So this patch is not changing
the 'normal' runtime flock behavior.

test-parameters: trivial

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: If2706506135264f501c6cbc6243ed449f9792605
51163 master J !B ✓T ✓R 3/2
LU-16858 build: Remove checksum config option
all green — ready to land (not in master-next yet)
stalled 380d S +0 −21
380d
janitor run: 2 failing config(s), none unique to this patch — janitor results
build #95181 SUCCESS · tests all Maloo sessions
reviews: James Simmons +1 2023-05-31 19:43 · Sebastien Buisson +1 2023-05-31 08:47 · Andreas Dilger +1 2023-05-30 21:33
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1177d ago · NEW · open in Gerrit ↗
commit message
LU-16858 build: Remove checksum config option

Lustre is never built without checksum support and it can
be disabled at runtime if needed.  Remove the config
option.

Unlike some of the config removals, this one required
almost no changes, so I've marked it trivial.

test-parameters: trivial

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I04ea24a8a8ae1d41e70113438b8a7abaa6826231
50679 master J !B ✓T ✓R 2/2
LU-16741 ptlrpc: rename __ functions
all green — ready to land (not in master-next yet)
stalled 1083d S +11 −9
1083d
janitor run: 2 failing config(s), none unique to this patch — janitor results
build #97495 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2023-09-01 01:22 · Timothy Day +1 2023-09-01 14:47
no vote yet: Qian Yingjin
patchsets:
+5 earlier PS1 04-18 PS2 04-18 PS3 04-18 PS4 04-18 PS5 04-18
PS6 04-18 PS7 04-18 PS8 04-22 PS9 08-31 PS10 08-31
owner Patrick Farrell · uploader Patrick Farrell · PS10 uploaded 1084d ago · NEW · open in Gerrit ↗
commit message
LU-16741 ptlrpc: rename __ functions

Some functions are named with __ but aren't the internal
implementation of something else; rename them accordingly.

Use ptlrpc_request_free in ptlrpc_req_fini().

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I790aa71fc87bf218930091c5c8c618d987ab1401

Parked (WIP / self-blocked)

(11)
54201 master J ✗3B ✗T –R 0/2−
LU-17433 llite: make hybrid writes locked
parked by your own -1
3 unique failures XS +3 −0
254d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 12 other reviews
runtests-ssk@ldiskfs+SharedKey:test_1seen in 12 other reviews
runtests@zfs:test_1seen in 5 other reviews
build #103614 FAILURE
reviews: Patrick Farrell -1 2025-12-08 18:50
no vote yet: Qian Yingjin
patchsets: PS1 02-27 PS2 03-28 PS3 03-28
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 874d ago · NEW · open in Gerrit ↗
commit message
LU-17433 llite: make hybrid writes locked

Hybrid IO writes should default to locked, so they can be
async.  Once we have the dlmlock contention checking for
hybrid, we can switch them OFF this mode when appropriate.

Test-Parameters: forjanitoronly
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I12fd403eaf54dfecb98b8867aff1e0c46e266b5e
53689 master J !B ✗T –R 0/2−
LU-17433 clio: add and put ref on dlmlock for sdio
parked by your own -1
S +17 −3
254d
janitor run: 3 failing config(s), none unique to this patch — janitor results
build #101433 FAILURE
reviews: Patrick Farrell -1 2025-12-08 18:52
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 945d ago · NEW · open in Gerrit ↗
commit message
LU-17433 clio: add and put ref on dlmlock for sdio

Add the add and putref on the dlmlock associated with an
SDIO.  The problem here is you haven't figured out how to
get that lock yet, which is a little tricky.

You also haven't considered when or how to force hybrid
over to being locked.  Realistically, hybrid write should
start locked and only go lockless if there's contention.

Test-Parameters: ignore
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ie330d072d45f4222691a0150a1c7ab3664a03c81
51350 master J !B ✓T ✗24R 0/2−
LU-12782 osc: Do not touch object attrs for every page
parked by your own -1
1 unresolved S +14 −3
274d
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-1 crashed RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-2 crashed RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-pfl. %% THIS TEST SESSION CRASHED %% session
review-dne-part-2 crashed RHEL 9.5 / x86_64 ran 13 tests. 1 tests failed: runtests. %% THIS TEST SESSION CRASHED %% session
review-dne-part-3 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-3 crashed RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-4 crashed RHEL 8.10 / x86_64 ran 17 tests. 5 tests failed: sanity-quota, sanity-hsm, sanity-flr, sanity-dom, replay-ost-single. %% THIS TE session
review-dne-part-4 crashed RHEL 9.5 / x86_64 ran 15 tests. 4 tests failed: sanity-quota, sanity-hsm, sanity-dom, replay-ost-single. %% THIS TEST SESSION C session
review-dne-part-5 crashed RHEL 8.10 / x86_64 ran 7 tests. 2 tests failed: sanityn, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-part-5 crashed RHEL 9.5 / x86_64 ran 7 tests. 2 tests failed: sanityn, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-part-6 crashed RHEL 8.10 / x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. %% THIS TEST SESSION CRASHED %% session
review-dne-part-6 crashed RHEL 9.5 / x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. %% THIS TEST SESSION CRASHED %% session
review-dne-part-7 crashed RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: sanity-pcc. %% THIS TEST SESSION CRASHED %% session
review-dne-part-8 crashed RHEL 8.10 / x86_64 ran 4 tests. 1 tests failed: replay-dual. %% THIS TEST SESSION CRASHED %% session
review-dne-selinux-ssk-part-1 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-selinux-ssk-part-2 crashed RHEL 8.10 / x86_64 ran 9 tests. 3 tests failed: sanity-selinux, sanity-sec, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-1 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-2 crashed RHEL 8.10 / x86_64 ran 13 tests. 1 tests failed: replay-dual. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 crashed RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-hsm. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-5 crashed RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-6 crashed RHEL 8.10 / x86_64 ran 6 tests. 1 tests failed: replay-single. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-7 crashed RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-scrub. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 8 tests. 1 tests failed: sanity. session
review-zfs crashed RHEL 8.10 / x86_64 ran 10 tests. 1 tests failed: replay-single. %% THIS TEST SESSION CRASHED %% session
5 optional test failure(s) — informational
build #118690 SUCCESS · tests all Maloo sessions
reviews: Patrick Farrell -1 2025-11-17 23:15
no vote yet: Qian Yingjin, Shaun Tancheff
patchsets:
+2 earlier PS1 06-18 PS2 06-18
PS3 06-18 PS4 06-18 PS5 06-18 PS6 06-18 PS7 11-17
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS7 2025-11-17 23:14 Andreas Dilger osc_io.c:403 — (style) single space between variable type and name
Andreas Dilger PS7 · 2025-11-17 23:14
(style) single space between variable type and name
owner Patrick Farrell · uploader Patrick Farrell · PS7 uploaded 275d ago · NEW · open in Gerrit ↗
commit message
LU-12782 osc: Do not touch object attrs for every page

osc_io_commit_async is currently updating the object
attributes for every page it handles, but this is
extremely wasteful - the attributes being updated are size
and mtime, both of which are linked to the IO and not to
the specific page.

Just do it for the last page in each osc IO.

I'm sticking this patch under LU-12782 temporarily, if it
works OK in early testing I will create a new LU for it.

Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ida150b9b2a1087de787bd7d18dcddfec3401b900
60684 master J !B ✓T ✓R 0/2−
LU-19255 utils: fix write round up in mirror ops
parked by your own -1
M +171 −10
278d
janitor run: 1 failing config(s), none unique to this patch — janitor results
2 optional test failure(s) — informational
build #115720 SUCCESS · tests all Maloo sessions
reviews: Patrick Farrell -1 2025-08-12 22:42
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 371d ago · NEW · open in Gerrit ↗
commit message
LU-19255 utils: fix write round up in mirror ops

The mirror functions:
lfs_mirror_write
llapi_mirror_copy
llapi_mirror_copy_many
llapi_mirror_resync_many_params

all rounded up the write size to page size, which causes
them to write empty bytes at the end of files which are not
page aligned.

Add sanity tests to validate mirror copy operations.

Tests by Augment Agent.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I63dcff1434b09b42d569a23b692fc58481781fbf
45143 master J ✗1B ✓T ✗4R 1/2−
LU-15069 llite: Tie readahead proc values
parked by your own -1
1 unique failure S +21 −13
300d
janitor flagged test failures unique to this patch
unique failing testhistory
runtests-ssk@ldiskfs+SharedKey:test_1NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-zfs-part-4 CentOS 8.3/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-zfs-part-5 crashed CentOS 8.3/x86_64 ran 8 tests. 1 tests failed: recovery-small. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-arm CentOS 8.3/aarch64, CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-zfs CentOS 8.3/x86_64 ran 8 tests. 1 tests failed: replay-single. session
build #23401 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +2 2021-10-07 03:42 · Patrick Farrell -1 2021-10-07 04:19
patchsets: PS1 10-06 PS2 10-06 PS3 10-06
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1778d ago · NEW · open in Gerrit ↗
commit message
LU-15069 llite: Tie readahead proc values

The readahead proc values have a hierarchy of limitations,
where some cannot be increased until others have.  Change
the code to do this automatically rather than force users
to figure it out.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Iad8f8e2ad5e9a8e69db0f5c3511c8f14c18507b2
44526 master J –B ✓T ✗3R 0/2−
LU-14917 llite: Switch mmap readahead logic
parked by your own -1
M +228 −11
380d
failed enforced testplatformdetail
review-dne-part-3 CentOS 8.3/x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 failed 2× RHEL 8.3/x86_64 ran 1 tests. 1 tests failed: node-provisioning. %% NODE-PROVISIONING AND/OR LUSTRE-INIT FAILED MULTIPLE TIMES session
review-dne-part-4 failed 2× CentOS 8.3/x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
build #86016 SUCCESS · tests all Maloo sessions
reviews: Patrick Farrell -1 2023-02-23 19:02
no vote yet: Qian Yingjin, Andreas Dilger, Zhenyu Xu
patchsets:
+19 earlier PS3 08-09 PS4 08-13 Peter Jones PS5 09-16 Andreas Dilger PS6 09-16 Andreas Dilger PS7 10-13 PS8 10-13 PS9 10-13 PS10 10-14 PS11 10-15 PS12 10-15 PS13 10-15 PS14 10-17 PS15 10-20 PS16 10-20 PS17 10-21 PS18 11-05 PS19 11-06 PS20 11-07 PS21 11-07
PS22 11-08 PS23 12-09 PS24 01-26 PS25 02-01 PS26 02-02
owner Patrick Farrell · uploader Patrick Farrell · PS26 uploaded 1659d ago · NEW · open in Gerrit ↗
commit message
LU-14917 llite: Switch mmap readahead logic

The mmap readahead logic has shown to be badly suited for
certain workloads (kdb).  Experimentation showed that for
these workloads, the standard readahead algorithm works
better.

This patch allows switching the readahead algorithm for
mmap to the 'standard' readahead algorithm.

The added tunable is:
mmap_read_ahead_logic in llite
(lctl get_param llite.*.mmap_read_ahead_logic)

It defaults to '1', which is the special mmap readahead
logic.

Setting it to 0 switches mmap readahead to use the standard
readahead logic.

This patch also fixes the existing mmap readahead test,
which was not running.

Note the results for the existing test are better with the
standard readahead logic, ie, with mmap readahead logic
disabled.  This suggests we should default to non-mmap
readahead logic.

However, the mmap readahead logic was carefully tuned for
certain workloads, and this would be a large change.  So,
this question is deferred until we can do a larger look at
readahead behavior.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ib34297f1dd0498356b21580224f4b954bb10cb14
50357 master J !B ✓T ✗3R 0/2−
LU-16653 llite: Add aio to rw stats
parked by your own -1
M +71 −39
380d
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-2 RHEL 8.6/x86_64 ran 9 tests. 1 tests failed: replay-dual. session
review-dne-selinux-ssk-part-2 CentOS 8.5/x86_64 ran 5 tests. 1 tests failed: recovery-small. session
review-zfs CentOS 8.5/x86_64 ran 10 tests. 1 tests failed: replay-single. session
2 optional test failure(s) — informational
build #93157 SUCCESS · tests all Maloo sessions
reviews: Patrick Farrell -1 2023-03-21 20:05
patchsets: PS1 03-21 PS2 03-21
owner Patrick Farrell · uploader Patrick Farrell · PS2 uploaded 1247d ago · NEW · open in Gerrit ↗
commit message
LU-16653 llite: Add aio to rw stats

The read/write stats in proc miss IO done via AIO, because
we don't record them when completing an aio.

Add them.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Icaf32ab90f3be2c38fa1dcd6ed4c1fdd168d8482
50547 master J ✗1B ✓T ✗8R 1/2−
LU-16714 utils: Improve DIO/BIO choice in migrate
parked by your own -1
1 unique failure 1 unresolved M +180 −50
380d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_413bNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-2 RHEL 8.7/x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-selinux-ssk-part-2 RHEL 8.7/x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 RHEL 8.7/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.7/x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-5 crashed RHEL 8.7/x86_64 ran 6 tests. 1 tests failed: sanityn. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-arm RHEL 8.7/aarch64, RHEL 8.7/x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
review-ldiskfs-ubuntu RHEL 8.7/x86_64, Ubuntu 20.04/x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
review-zfs RHEL 8.7/x86_64 ran 8 tests. 1 tests failed: sanity-quota. session
3 optional test failure(s) — informational
build #94299 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2023-04-24 20:11 · Patrick Farrell -1 2023-04-26 19:26
no vote yet: Nathan Rutman
patchsets:
+4 earlier PS1 04-05 PS2 04-05 PS3 04-05 PS4 04-05
PS5 04-05 PS6 04-06 PS7 04-06 PS8 04-24 PS9 04-24
threads: 0 need your reply · 0 waiting on others · 1 own notes · 0 bot
note PS1 2023-04-05 21:05 Patrick Farrell lfs.c:3661 — Except I didn't put this one in order, so I'll do that.
Patrick Farrell PS1 · 2023-04-05 21:05
Except I didn't put this one in order, so I'll do that.
owner Patrick Farrell · uploader Patrick Farrell · PS9 uploaded 1213d ago · NEW · open in Gerrit ↗
commit message
LU-16714 utils: Improve DIO/BIO choice in migrate

We default to direct IO in migrate_copy_data, but this is
harmful for performance on small sizes (Roughly < 32 MiB).
Switch to BIO for these sizes, and make this tunable,
because the correct cutover size between DIO and BIO can
differ substantially from system to system.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I90db1f097d13f75cc4a89fd186e2ed824e70c0c6
58978 master J !B ✗T –R 0/2−
LU-13371 api: add llapi_getdirstripe function
parked by your own -1
M +230 −7
387d
janitor run: build failed — no tests ran — janitor results
build #112925 FAILURE
reviews: Patrick Farrell -1 2025-04-29 20:01
no vote yet: Andreas Dilger
patchsets: PS1 04-25 PS2 04-25 PS3 04-27
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 479d ago · NEW · open in Gerrit ↗
commit message
LU-13371 api: add llapi_getdirstripe function

Add a new llapi_getdirstripe() function to the Lustre API to
retrieve directory striping information. This function is
similar to llapi_file_get_stripe() but specifically for
directory striping information.

This function will make it easier for applications to
retrieve directory striping information without having to
directly use the LL_IOC_LMV_GETSTRIPE ioctl.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I41da7e83c6d67bc182d008524d08a9088405cc05
44653 master J ✗2B ✓T ✗2R 0/2−
LU-14919 osd-ldiskfs: Fix fake i/o page unlocking
parked by your own -1
2 unique failures S +24 −5
387d
janitor flagged test failures unique to this patch
unique failing testhistory
sanity-pcc@ldiskfs+DNE:test_1bseen in 2 other reviews
sanity-scrub@ldiskfs:test_17bseen in 1 other review
failed enforced testplatformdetail
review-dne-part-5 CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanityn. session
review-dne-zfs-part-5 CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanityn. session
build #22422 SUCCESS · tests all Maloo sessions
reviews: Patrick Farrell -1 2021-08-12 22:05
no vote yet: Shuichi Ihara, Andreas Dilger, Alex Zhuravlev
owner Patrick Farrell · uploader Patrick Farrell · PS1 uploaded 1833d ago · NEW · open in Gerrit ↗
commit message
LU-14919 osd-ldiskfs: Fix fake i/o page unlocking

The fake i/o code incorrectly unlocks pages used for direct
i/o.  This causes an assert when unloading & freeing the
pages.

Add direct i/o tests to the existing fake_rw tests.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ia456905c1819705b447d3957eaa17c46cccbae6a
52777 master J !B ✓T ✗0R 0/2−
LU-13802 llite: hybrid IO HDD thresholds
parked by your own -1
hio M +142 −26
845d
janitor run: 2 failing config(s), none unique to this patch — janitor results
1 optional test failure(s) — informational
build #103851 SUCCESS · tests all Maloo sessions
reviews: Patrick Farrell -1 2024-04-04 20:46
no vote yet: Shaun Tancheff, Andreas Dilger
patchsets:
+15 earlier PS1 10-20 PS2 10-20 PS3 10-20 PS4 10-24 PS5 10-24 PS6 01-16 PS7 01-16 PS8 02-10 PS9 02-12 PS10 02-12 PS11 02-12 PS12 02-13 PS13 02-13 PS14 03-13 PS15 03-13
PS16 03-21 PS17 03-21 PS18 03-27 PS19 04-01 PS20 04-04
owner Patrick Farrell · uploader Patrick Farrell · PS20 uploaded 867d ago · NEW · open in Gerrit ↗
commit message
LU-13802 llite: hybrid IO HDD thresholds

Sync time is a huge factor in DIO performance, so this
means the cutover point for hybrid IO is very different.

Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I11e74536117ce3fa0c5e297640b1a074f4517074

Carrying — uploaded by me, owned by others

5 open

Failed / broken

(4)
53518 master J ✗22B ✓T ✗5R 0/2−
LU-17240 tests: add parallel format/mount/unmount support
carrying Timothy Day · needs rebase — checkpatch: cannot be cherry-picked
22 unique failures stalled 141d 6 unresolved L +233 −63
141d
needs rebase — checkpatch: cannot be cherry-picked
janitor: 22 test failures unique to this patch — conf-sanity2@ldiskfs+DNE:test_73c, conf-sanity2@ldiskfs+DNE:test_73e, conf-sanity2@ldiskfs+DNE:test_74 +19 more
enforced failed: review-dne-part-2, review-dne-part-3, review-dne-part-4
6 unresolved thread(s) await your reply — last from Andreas Dilger
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity2@ldiskfs+DNE:test_73cseen in 8 other reviews
conf-sanity2@ldiskfs+DNE:test_73eseen in 8 other reviews
conf-sanity2@ldiskfs+DNE:test_74seen in 12 other reviews
conf-sanity2@ldiskfs+DNE:test_75seen in 9 other reviews
conf-sanity3@ldiskfs+DNE:test_87seen in 7 other reviews
conf-sanity3@ldiskfs+DNE:test_88seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_89seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_90aseen in 12 other reviews
conf-sanity3@ldiskfs+DNE:test_90bseen in 15 other reviews
conf-sanity3@ldiskfs+DNE:test_90cseen in 21 other reviews
conf-sanity3@ldiskfs+DNE:test_90dseen in 24 other reviews
conf-sanity3@ldiskfs+DNE:test_91seen in 29 other reviews
conf-sanity3@ldiskfs+DNE:test_98seen in 34 other reviews
conf-sanity3@ldiskfs+DNE:test_99seen in 8 other reviews
conf-sanity3@ldiskfs+DNE:test_120seen in 13 other reviews
conf-sanity4@ldiskfs+DNE:test_161seen in 5 other reviews
sanity-quota@ldiskfs+DNE:test_91seen in 1 other review
sanity-quota@ldiskfs+DNE:test_92seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_93seen in 5 other reviews
sanity-quota@ldiskfs+DNE:test_94seen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_95aseen in 4 other reviews
sanity-quota@ldiskfs+DNE:test_95bseen in 4 other reviews
failed enforced testplatformdetail
review-dne-part-2 crashed RHEL 8.10 / x86_64 ran 13 tests. 1 tests failed: sanity-lfsck. %% THIS TEST SESSION CRASHED %% session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-part-4 RHEL 9.5 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
2 optional test failure(s) — informational
build #120087 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger, Alex Zhuravlev
patchsets:
+10 earlier PS1 12-20 PS2 01-04 Andreas Dilger PS3 01-04 Andreas Dilger PS4 01-04 Andreas Dilger PS5 10-11 PS6 10-11 PS7 10-22 Andreas Dilger PS8 10-25 PS9 05-19 Alex Zhuravlev PS10 11-24 Patrick Farrell
PS11 12-15 Patrick Farrell PS12 12-29 Patrick Farrell PS13 01-01 Patrick Farrell PS14 01-01 Patrick Farrell PS15 01-01 Patrick Farrell
threads: 6 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS9 2025-07-31 20:10 Andreas Dilger COMMIT_MSG:15 — Should this set PARALLEL_MKFS='mdt ost mgt' or are we just trying to get the old behavior to work at this point?
Andreas Dilger PS9 · 2025-07-31 20:10
Should this set PARALLEL_MKFS='mdt ost mgt' or are we just trying to get the old behavior to work at this point?
reply PS9 2025-07-31 20:10 Andreas Dilger COMMIT_MSG:16 — This should add "fortestonly" until it is passing testing, so it doesn't run a score of other test sessions.
Andreas Dilger PS9 · 2025-07-31 20:10
This should add "fortestonly" until it is passing testing, so it doesn't run a score of other test sessions.
reply PS9 2025-07-31 19:57 Andreas Dilger patchset comment — It looks like the problem being hit by conf-sanity.sh is that lustre-initialization has already formatted mounted the MDTs and OSTs, but the
Andreas Dilger PS9 · 2025-07-31 19:57
It looks like the problem being hit by conf-sanity.sh is that lustre-initialization has already formatted mounted the MDTs and OSTs, but then it tries to format them again:

    mkfs.lustre --mgs --fsname=lustre --mdt --index=0 --param=sys.timeout=20 --param=mdt.identity_upcall=/usr/sbin/l_getidentity --backfstype=ldiskfs --device-size=200000 --mkfsoptions=\"-b 4096 -E lazy_itable_init\" --reformat /dev/vg_Role_MDS/mdt1
    mkfs.lustre FATAL: Unable to build fs /dev/vg_Role_MDS/mdt1 (256)

   Permanent disk data:
    Target:     lustre:MDT0000
    Index:      0
    Lustre FS:  lustre
    Mount type: ldiskfs
    Flags:      0x65
              (MDT MGS first_time update )
    Persistent mount opts: user_xattr,errors=remount-ro
    Parameters: sys.timeout=20 mdt.identity_upcall=/usr/sbin/l_getidentity

   device size = 1888MB
    formatting backing filesystem ldiskfs on /dev/vg_Role_MDS/mdt1
	target name   lustre:MDT0000
	kilobytes     200000
	options       -b 4096  -I 1024 -i 2560 -q -O uninit_bg,^extents,dirdata,dir_nlink,quota,project,huge_file,ea_inode,large_dir,^fast_commit,flex_bg -E lazy_itable_init,lazy_journal_init,packed_meta_blocks -F
mkfs_cmd = mke2fs -j -b 4096 -L lustre:MDT0000 -b 4096  -I 1024 -i 2560 -q -O
    /dev/vg_Role_MDS/mdt1 is apparently in use by the system; will not make a filesystem here!

Possibly there is new state in test-framework.sh to track the parallel formatting, but this is lost between lustre-initialization and the instance of test-framework.sh that is starting up?
reply PS9 2025-07-31 20:10 Andreas Dilger test-framework.sh:2695 — At this point in the conf-sanity.sh "reformat_and_config->formatall->stop mds1" chain, this is called and does not detect the MDT as mounted
Andreas Dilger PS9 · 2025-07-31 20:10
At this point in the conf-sanity.sh "reformat_and_config->formatall->stop mds1" chain, this is called and does not detect the MDT as mounted:

    CMD: trevis-130vm6 [ -e "/dev/vg_Role_MDS/mdt1" ]
    CMD: trevis-130vm6 grep -c /mnt/lustre-mds1' ' /proc/mounts || true
    CMD: trevis-130vm6 lsmod | grep lnet > /dev/null && lctl dl | grep ' ST ' || true

so something is going wrong during this stage and some debugging should be added here.  It would probably be the same to debug locally by running "llmount.sh" and then run "conf-sanity.sh" afterward.
reply PS12 2025-12-29 03:55 Andreas Dilger test-framework.sh:5364 — (style) prefer `[[...]]` for bash
Andreas Dilger PS12 · 2025-12-29 03:55
(style) prefer `[[...]]` for bash
reply PS12 2025-12-29 03:55 Andreas Dilger test-framework.sh:5680 — (style) it would be better to declare this before usage in `stopall()` above
Andreas Dilger PS12 · 2025-12-29 03:55
(style) it would be better to declare this before usage in `stopall()` above
owner Timothy Day · uploader Patrick Farrell · PS15 uploaded 230d ago · NEW · open in Gerrit ↗
commit message
LU-17240 tests: add parallel format/mount/unmount support

Add support for parallel format, mount, and unmount operations
in the test framework. These operations are controlled by a
hierarchy of variables that allow fine-grained control over
which operations run in parallel, which target types are
parallelized, and whether different target types can overlap.

Variable hierarchy:
- PARALLEL_OPS: Master switch controlling all operations
- PARALLEL_FORMAT, PARALLEL_MOUNT, PARALLEL_UMOUNT: Enable
  parallelism for specific operations (default to PARALLEL_OPS)
- PARALLEL_FORMAT_TARGETS, PARALLEL_MOUNT_TARGETS,
  PARALLEL_UMOUNT_TARGETS: Space-separated list of target types
  to parallelize within each operation (e.g., "mdt ost")
- PARALLEL_FORMAT_TYPES, PARALLEL_MOUNT_TYPES,
  PARALLEL_UMOUNT_TYPES: Whether to overlap different target
  types during operations (inter-type parallelism)

Implementation:
- New helper function parallel_enabled_for(operation, target_type)
  checks if parallelism is enabled for a specific combination
- Updated formatall(), mountmds(), mountoss(), stopall(),
  unmountoss() to support parallel execution with proper wait
  barriers between target types when overlap is disabled
- MGS excluded from parallel operations since there's only
  ever one MGS target

All parallel operations are disabled by default (PARALLEL_OPS=0)
for backward compatibility. Future patches will enable these
features gradually after validation.

Test results show significant performance improvements when enabled:
- Parallel format with type overlap: 19% faster than baseline
- Parallel mount within types: 7% faster
- Parallel unmount within types: 21% faster

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I51af959a4f20644d9bd5166c1c1c8ebcfbef69f3
33710 master J ✓B ✓T ✗1R 0/2
LU-11532 tests: Improve cancel_lru_locks debug
carrying Patrick Farrell · enforced failed: review-dne-zfs-part-3
stalled 380d XS +1 −0
380d
failed enforced testplatformdetail
review-dne-zfs-part-3 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
2 optional test failure(s) — informational
build #97498 SUCCESS · tests all Maloo sessions
no vote yet: James Nunez, Patrick Farrell, Andreas Dilger, Oleg Drokin, Elena
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 1084d ago · NEW · open in Gerrit ↗
commit message
LU-11532 tests: Improve cancel_lru_locks debug

Cancel_lru_locks is almost always (always?) used to drop
all locks in a namespace, not just the unused ones.

A very common test failure is when a lock is not cleared
because it is unexpectedly still in use.  Improve the
cancel_lru_locks function to report this case.

A quick scan of the test-framework suggests nothing is
relying on having null output from this function, so this
should be safe even  if some tests are expecting some locks
to be in use (and so remain after this call).

This should improve debugability of failures like LU-11532.

Signed-off-by: Patrick Farrell <paf@cray.com>
Change-Id: Idbb62b9a8881c19ae135bdb1cb22f366d236b43b
36229 master J !B ✗T –R 0/2
LU-12782 llite: Convert attr lock to rwlock
carrying Patrick Farrell · build failure (#95693)
stalled 380d L +146 −109
380d
janitor run: 1 failing config(s), none unique to this patch — janitor results
build #95693 FAILURE
no vote yet: Wang Shilong, James Simmons, Qian Yingjin, Andreas Dilger, Li Dongyang, Shilong Wang
patchsets: PS5 06-18 PS6 06-18 PS7 06-18
owner Patrick Farrell · uploader Patrick Farrell · PS7 uploaded 1158d ago · NEW · open in Gerrit ↗
commit message
LU-12782 llite: Convert attr lock to rwlock

Under some shared file workloads, the cl_object_attr_lock
ends up 'hot'.  Because it is a spinlock which is often
used only for reading, it can easily be converted to an
rwlock.

This should show up in some shared file workloads, notably
shared file reading.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I50d6f04f31eeea3ab5af58a1b6b56c1d4cfc7093
38151 master J ✗21B ✓T ✗15R 0/2
LU-13419 osc: Improve speed of enter_cache_try
carrying Patrick Farrell (personal) · janitor: 21 test failures unique to this patch — sanity1@ldiskfs+DNE:test_39j, sanity2@ldiskfs+DNE:test_64f, sanity2@ldiskfs+DNE:test_133c +18 more
21 unique failures stalled 380d M +31 −23
380d
janitor: 21 test failures unique to this patch — sanity1@ldiskfs+DNE:test_39j, sanity2@ldiskfs+DNE:test_64f, sanity2@ldiskfs+DNE:test_133c +18 more
enforced failed: review-dne-part-1, review-dne-part-4, review-dne-part-5, review-dne-part-6, review-dne-selinux-ssk-part-1, review-dne-zfs-part-1, review-dne-zfs-part-4, review-dne-zfs-part-5, review-dne-zfs-part-6, review-dne-zfs-part-7, review-ldiskfs, review-zfs
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity1@ldiskfs+DNE:test_39jNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_64fseen in 37 other reviews
sanity2@ldiskfs+DNE:test_133cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity2@ldiskfs+DNE:test_398gseen in 13 other reviews
sanity1@zfs:test_42eNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@zfs:test_45seen in 4 other reviews
sanity-benchmark@ldiskfs+DNE:test_fsxseen in 17 other reviews
sanity-benchmark@ldiskfs+DNE:test_fsx_partial_punchseen in 8 other reviews
sanity-dom@ldiskfs+DNE:test_fsxseen in 7 other reviews
sanity-dom@zfs:test_fsxseen in 7 other reviews
sanity-dom@zfs:test_42eNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-dom@zfs:test_4NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@ldiskfs+DNE:test_70aseen in 63 other reviews
sanity-flr@zfs:test_70aseen in 53 other reviews
sanity-hsm@zfs:test_3NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@ldiskfs+DNE:test_16kNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@ldiskfs+DNE:test_18seen in 1 other review
sanityn@zfs:test_16aseen in 3 other reviews
sanityn@zfs:test_16bseen in 3 other reviews
sanityn@zfs:test_16kNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@zfs:test_18seen in 1 other review
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.3 / x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-part-4 RHEL 9.3 / x86_64 ran 9 tests. 2 tests failed: sanity-flr, sanity-dom. session
review-dne-part-5 RHEL 9.3 / x86_64 ran 6 tests. 2 tests failed: sanityn, lustre-rsync-test. session
review-dne-part-6 RHEL 9.3 / x86_64 ran 6 tests. 1 tests failed: replay-single. session
review-dne-selinux-ssk-part-1 RHEL 8.9 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 crashed RHEL 8.9 / x86_64 ran 6 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 RHEL 8.9 / x86_64 ran 9 tests. 1 tests failed: sanity-dom. session
review-dne-zfs-part-5 RHEL 8.9 / x86_64 ran 6 tests. 2 tests failed: sanityn, lustre-rsync-test. session
review-dne-zfs-part-6 RHEL 8.9 / x86_64 ran 6 tests. 1 tests failed: replay-single. session
review-dne-zfs-part-7 RHEL 8.9 / x86_64 ran 4 tests. 1 tests failed: sanity-pcc. session
review-ldiskfs RHEL 9.3 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9 / x86_64, RHEL 9.3 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-zfs RHEL 8.9 / x86_64 ran 10 tests. 2 tests failed: replay-single, sanity-flr. session
18 optional test failure(s) — informational
build #108929 SUCCESS · tests all Maloo sessions
no vote yet: Wang Shilong, Qian Yingjin, Shuichi Ihara, Neil Brown, Li Dongyang, James Simmons, Andreas Dilger
owner Patrick Farrell (personal) · uploader Patrick Farrell · PS11 uploaded 646d ago · NEW · open in Gerrit ↗
commit message
LU-13419 osc: Improve speed of enter_cache_try

When doing writes to many files, one bottleneck on a client
currently seems to be the grant code, specifically
spinning in the lock around:
osc_enter_cache_try

The contention is *just* on osc_enter_cache_try, so there's
no obvious way to refactor the lock, etc.  Instead, we can
look at where time is going in the function.

Two things that stand out:
obd_dirty_pages is an atomic, and expensive:
In my perf tracing, the add_return to this is 50% of the
time in this function.

This can be replaced with a percpu_counter.

These benchmark #s are with the earlier version of the
patch, which mistakenly replaced the atomic with a bare
unsigned long.  I'm not currently able to benchmark the
percpu_counter, but it should be similar.

mpirun -np 36 $IOR -o $LUSTRE -w -t 1M -b 2G -i 1 -F

That's 36 processes on one client, writing to separate
files.

Before patch:
5942 MiB/s
After patch:
14950 MiB/s

Looking in perf, the change is huge:
I go from spending 60% of the time in osc_enter_cache_try
to around 30%, but that's while moving 2.3x the amount of
data per second.

Signed-off-by: Patrick Farrell <paf0187@gmail.com>
Change-Id: If5a69b906c6b56786e6a06dccc723781591419e8

Review feedback — your turn

(1)
35758 master J !B ✓T ✓R 0/2−
LU-12645 tests: Add read ahead tests
carrying Patrick Farrell · Andreas Dilger voted -1
stalled 267d 2 unresolved L +351 −119
267d
Andreas Dilger voted -1
2 unresolved thread(s) await your reply — last from Andreas Dilger
no vote yet from Qian Yingjin, Li Xi
janitor run: 2 failing config(s), none unique to this patch — janitor results
build #102223 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2025-11-25 02:32
no vote yet: Qian Yingjin, Li Xi
patchsets:
+40 earlier PS16 09-24 PS17 09-24 PS18 09-25 PS19 09-25 PS20 10-01 PS21 10-03 PS22 10-05 PS23 10-05 PS24 10-15 PS25 10-15 PS26 10-15 PS27 10-17 PS28 10-20 PS29 10-21 PS30 11-05 PS31 11-07 PS32 11-08 PS33 12-09 PS34 02-06 PS35 03-07 PS36 01-17 Patrick Farrell (personal) PS37 04-12 Andreas Dilger PS38 04-12 Andreas Dilger PS39 08-10 PS40 08-10 PS41 08-10 PS42 08-10 PS43 08-11 PS44 08-11 PS45 08-11 PS46 08-11 PS47 08-16 PS48 02-14 PS49 02-14 PS50 02-14 PS51 02-14 PS52 02-14 PS53 02-15 PS54 02-15 PS55 02-15
PS56 02-15 PS57 02-15 PS58 02-15 PS59 02-15 PS60 02-15
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS60 2025-11-25 02:32 Andreas Dilger multiop.c:86 — It would be even more useful if `i` was "number of iterations for the next command"?
Andreas Dilger PS60 · 2025-11-25 02:32
It would be even more useful if `i` was "number of iterations for the next command"?
reply PS60 2025-11-25 02:32 Andreas Dilger multiop.c:88 — The `J` option has already been used by madvise(HUGEPAGE), and 'j' is used by this patch, though `j` = "jump" would probably make more sense
Andreas Dilger PS60 · 2025-11-25 02:32
The `J` option has already been used by madvise(HUGEPAGE), and 'j' is used by this patch, though `j` = "jump" would probably make more sense and flock can use something else, maybe `I`?.

It would be good to get this patch landed, since a number of test cases appear to be using the
owner Patrick Farrell · uploader Patrick Farrell · PS60 uploaded 916d ago · NEW · open in Gerrit ↗
commit message
LU-12645 tests: Add read ahead tests

The existing readahead tests are too lenient, not checking
misses at all.  They also do not cover enough cases, and
use a complex special purpose utility, which takes in to
account stripe size, etc.  This is overly complex and not
really correct - strided read patterns don't have to have
any relation to stripe size.

Instead, we can just modify multiop to support writing or
reading a certain number of times, optionally jumping
between each operation.  This allows describing any
possible strided pattern with just four arguments -
iterations, size, jump, and starting offset.  (It's also
possible to use this for backwards reads.)

This patch uses multiop to add a short but strict & varied
set of tests for sequential and strided readahead.  It
also simplifies/replaces many of the existing readahead
tests, which did odd things like disable the cache on the
server, which is irrelevant to client side readahead.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Change-Id: I774585a17deac8c0f3b25ddbe047617177f3caf3

In CI

(0)
nothing here right now

Needs reviewers

(0)
nothing here right now

Waiting on reviewers

(0)
nothing here right now

Ready to land

(0)
nothing here right now

Parked (WIP / self-blocked)

(0)
nothing here right now
100 open

Re-review needed — new patchset since your vote

(10)
57860 master J –B ✓T …R 0/2
LU-18664 target: set proper kthread state
reviewing James Simmons · PS1→PS20 since your +1
rocky8 janitor9x S +23 −11
4h
build #129734 SUCCESS · tests all Maloo sessions · test queue
no vote yet: Shaun Tancheff, Neil Brown, Andreas Dilger, Alex Zhuravlev, Oleg Drokin, Timothy Day
patchsets:
+15 earlier PS1 01-22 PS2 02-22 Andreas Dilger PS3 02-22 PS4 05-02 PS5 08-21 Andreas Dilger PS6 08-21 Andreas Dilger PS7 08-21 Andreas Dilger PS8 09-09 Andreas Dilger PS9 05-29 Shaun Tancheff PS10 05-30 Shaun Tancheff PS11 06-04 Shaun Tancheff PS12 06-04 Shaun Tancheff PS13 06-07 Shaun Tancheff PS14 06-08 Shaun Tancheff PS15 06-20 Andreas Dilger
PS16 07-19 PS17 08-10 Shaun Tancheff PS18 08-10 Shaun Tancheff PS19 08-19 PS20 08-19
your previous vote: +1 on PS1 (2025-01-22 19:35) — now at PS20
tags: janitor9x
owner James Simmons · uploader James Simmons · PS20 uploaded 6h ago · NEW · open in Gerrit ↗
commit message
LU-18664 target: set proper kthread state

The function distribute_txn_commit_batchid_update() reports a
__might_sleep() issue due to distribute_txn_commit_thread()
potentially calling it while in an idle state.

Get the current state before distribute_txn_commit_batchid_update(),
switch to TASK_RUNNING, and restore the state [likely TASK_IDLE]
to avoid skipping the subsequent schedule() and allowing other
threads to proceed.

In the case where distribute_txn_commit_batchid_update() failed
it will retry when the kernel scheduler runs the thread again. To
ensure the task is rescheduled use an increasing timeout, max at 30s.

Test-Parameters: testlist=sanity env=ONLY=60g,ONLY_MINUTES=30
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: If9ae5ac47ec4eb24f87bc2a6bf78d3134136be6f
46384 master J !B ✓T ✓R 1/2
LU-15248 tests: don't let racer leak fs users that hang the run
reviewing Oleg Drokin · PS4→PS14 since your +1
testfix S +26 −16
22h
janitor run: 1 failing config(s), none unique to this patch — janitor results
build #129189 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2026-08-14 05:16
no vote yet: Andriy Skulysh, Alex Zhuravlev, Timothy Day
patchsets:
+9 earlier PS1 01-30 PS2 01-31 PS3 09-15 Andreas Dilger PS4 09-15 Andreas Dilger PS5 07-18 PS6 07-18 PS7 07-20 PS8 07-21 PS9 07-21
PS10 07-23 PS11 07-26 PS12 07-30 Andreas Dilger PS13 08-13 Andreas Dilger PS14 08-13 Andreas Dilger
your previous vote: +1 on PS4 (2023-09-15 04:01) — now at PS14
tags: testfix
owner Oleg Drokin · uploader Andreas Dilger · PS14 uploaded 6d ago · NEW · open in Gerrit ↗
commit message
LU-15248 tests: don't let racer leak fs users that hang the run

racer can time out with the client drained but the harness stuck.
The racer.sh wrapper blocks in "wait $rpids", the tee/sed/grep
logging pipeline sits in pipe_wait, and no racer worker is running.
Two janitor crashdumps show the cause -- an orphaned process
(a copied binary that file_exec.sh exec'd, e.g. "8"/"14", reparented
to init) still holding the racer output pipe open, so the pipeline
never sees EOF and the enclosing "wait" never returns.

file_exec.sh copies /bin/sleep to $DIR/$file and executes it.
Because racer's other tasks concurrently overwrite those same names,
the copy is often corrupt and can hang or spin instead of exiting;
and racer_cleanup's "killall $P.sh" kills the script but not the
foreground process it exec'd, which is orphaned holding the pipe.

Bound the exec'd copy with "timeout -s KILL 5" so it cannot outlive
the worker and hold the pipe/fs open. As a backstop for any other
straggler that keeps the mount busy (e.g. before unmount), also
sweep leftover fs users with "fuser -k -m -M" over the racer dirs.

Test-Parameters: trivial
Test-Parameters: optional testlist=racer
Signed-off-by: Oleg Drokin <green@whamcloud.com>
Assisted-by: ClaudeCode:Opus-4.8 llm_code_and_review_tools
Change-Id: I0fde591d306bc0026382c931a7441f182c73aaea
58229 master J !B ✓T ✗2R 0/2
LU-18746 flr: allow merge stale mirror
reviewing Zhenyu Xu · PS5→PS18 since your -1 — your objection was dropped
9 unresolved M +150 −50
6d
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity-lnet. session
review-zfs RHEL 8.10 / x86_64 ran 8 tests. 1 tests failed: sanity-quota. session
7 optional test failure(s) — informational
build #129178 SUCCESS · tests all Maloo sessions
no vote yet: Ronnie Sahlberg, Qian Yingjin, Andreas Dilger, Robert Read
patchsets:
+13 earlier PS1 02-26 PS2 02-27 PS3 02-28 PS4 03-03 PS5 03-03 PS6 03-04 PS7 03-25 PS8 03-31 PS9 04-17 PS10 05-05 Andreas Dilger PS11 07-08 PS12 08-01 PS13 08-26
PS14 09-11 PS15 10-29 PS16 04-08 Andreas Dilger PS17 06-01 PS18 08-12
your previous vote: -1 on PS5 (2025-03-03 21:51) — now at PS18
threads: 9 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre COMMIT_MSG:12 — A few hunks aren't covered by the description, so it's hard to tell which are intentional:
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
A few hunks aren't covered by the description, so it's hard to tell which are intentional:

- obd.h reorders op_code/op_xvalid/op_bias/op_cli_flags (a packing cleanup, unrelated to stale merges);
- obd.h converts `bool op_new_layout` into a bitfield, which touches a field this feature never uses;
- llite/file.c changes the LL_IOC_LEASE unlock error paths from `rc` to `rc2` and folds it in at the end.

That last one is a real user-visible fix, not a cleanup: today `GOTO(out_lease_close, rc = -EINVAL)` (and -EFAULT/-EBADF/-EPERM/-ENOMEM) is immediately overwritten by `rc = ll_lease_close_intent()`, so LL_LEASE_RESYNC_DONE / LAYOUT_MERGE / LAYOUT_SPLIT return the lease type instead of the error. Would it be better as its own patch with

    Fixes: f172b116885 ("LU-10092 llite: Add persistent cache on client")

so it can be reviewed and backported on its own?
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre COMMIT_MSG:13 — This adds a new on-wire field (cd_merge_flags) and a new client-set flag value, so a Test-Parameters: line requesting interop coverage would
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
This adds a new on-wire field (cd_merge_flags) and a new client-set flag value, so a Test-Parameters: line requesting interop coverage would be useful here, e.g. an older serverversion and an older clientversion run.
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre file.c:4415 — LL_LEASE_ALLOW_STALE is a modifier bit but the switch still matches lil_flags exactly, so every future combination has to be enumerated as i
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
LL_LEASE_ALLOW_STALE is a modifier bit but the switch still matches lil_flags exactly, so every future combination has to be enumerated as its own case. Anything unenumerated (LL_LEASE_LAYOUT_SPLIT | LL_LEASE_ALLOW_STALE, or the bit on its own) falls into `default:` and quietly releases the lease with bias = 0, returning the lease type as if it had worked.

Would `switch (ioc->lil_flags & ~LL_LEASE_ALLOW_STALE)` plus a check that the modifier is only accepted for MERGE read better?
reply PS5 2025-03-04 00:30 Zhenyu Xu lmv_intent.c:306 — I'm not sure whether coverity would complain about the transform bitwise from/to boolean value kinda of warning, so I made this change.
Patrick Farrell PS5 · 2025-03-03 21:51
All of these bool -> 1 are unnecessary and in files not otherwise touched - let's leave them out?
Zhenyu Xu PS5 · 2025-03-04 00:30
I'm not sure whether coverity would complain about the transform bitwise from/to boolean value kinda of warning, so I made this change.
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre lod_object.c:3548 — This isn't a bug that I can trigger today, but now that merge can mark every component of the new mirror stale, should this pass LVF_ALL_STA
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
This isn't a bug that I can trigger today, but now that merge can mark every component of the new mirror stale, should this pass LVF_ALL_STALE like lod_declare_layout_split() does at the equivalent point? That's the flag that turns on the "can not set all stale mirrors" check in lod_parse_striping(), and merge is currently the one stale-producing path that skips it.
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre mdc_lib.c:549 — There doesn't seem to be any negotiation for this. An MDT that predates the patch never looks at cd_merge_flags - mdt_close_handle_layouts()
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
There doesn't seem to be any negotiation for this. An MDT that predates the patch never looks at cd_merge_flags - mdt_close_handle_layouts() just calls mo_xattr_set(..., LU_XATTR_MERGE) - so a new client asking for a stale merge against an older server gets the mirror merged with no LCME_FL_STALE set, and rc = 0 back.

The result is a mirror that was never written being advertised as up to date, which reads can then be served from. Should this be gated on a new OBD_CONNECT2_* flag, with the client either failing with -EOPNOTSUPP or falling back to the sync path when the server doesn't advertise it?
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre mdd_object.c:1775 — The declare above passes LU_XATTR_MERGE_STALE, but the execute phase here still passes plain LU_XATTR_MERGE. It works only because lod_decla
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
The declare above passes LU_XATTR_MERGE_STALE, but the execute phase here still passes plain LU_XATTR_MERGE. It works only because lod_declare_layout_merge() builds the merged layout at declare time, and because LU_XATTR_MERGE_STALE would actually break the execute path - lod_xattr_set() has

    if (!(fl & LU_XATTR_MERGE))
            LASSERT(equi(...));

which would fire for an existing file if MERGE_STALE were passed instead.

Would it be safer to define LU_XATTR_MERGE_STALE as an extra bit used together with LU_XATTR_MERGE rather than in place of it? Then every existing `fl & LU_XATTR_MERGE` test (lod_object.c) and `fl == LU_XATTR_MERGE` test (mdd_xattr_set()) stays correct, and declare/execute can use the same value.
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre lfs.c:2391 — This is the only caller of mirror_extend_layout() and it hardcodes sync=true, so the `if (sync)` branch is always taken and `data->lil_flags
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
This is the only caller of mirror_extend_layout() and it hardcodes sync=true, so the `if (sync)` branch is always taken and `data->lil_flags |= LL_LEASE_ALLOW_STALE` is never executed. Grepping the tree, LL_LEASE_ALLOW_STALE is only referenced here and in ll_file_unlock_lease().

So as it stands `lfs mirror extend` can't create a stale mirror and the entire mdc/mdt/mdd/lod path added by this patch is unreachable from any shipped tool. Is the intent to add an `lfs mirror extend` option (plus the matching Documentation/man8/lfs-mirror-extend.8 text) in this patch, or is that coming in a follow-on?
reply PS18 2026-08-13 07:36 Gerrit AI review for Lustre wirecheck.c:3956 — check_close_data() is called inside the CHECK_COND_START(CONFIG_LUSTRE_FS_SERVER) block, so the generated assertions in both wiretest.c copi
Gerrit AI review for Lustre PS18 · 2026-08-13 07:36
check_close_data() is called inside the CHECK_COND_START(CONFIG_LUSTRE_FS_SERVER) block, so the generated assertions in both wiretest.c copies end up under `#ifdef CONFIG_LUSTRE_FS_SERVER`.

struct close_data is packed by the client in mdc_close_intent_pack(), so a client-only build never verifies the layout of a struct it puts on the wire. The other client-visible structs (check_swap_layout(), check_hsm_*()) are called outside that block - should this one be too?
owner Zhenyu Xu · uploader Zhenyu Xu · PS18 uploaded 7d ago · NEW · open in Gerrit ↗
commit message
LU-18746 flr: allow merge stale mirror

This patch makes it possible to merge a stale mirror to an existing
file, so that we can append several mirrors w/o writing data to
those mirrors first, and after we've finished the merge we'd do the
mirror resync later.

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: I0d730566ea9b238aeac5d2e27e77c719a1c73308
59350 master J !B ✓T ✗1R 0/1−
LU-19037 osc: initialize osc_object::oo_tree
reviewing Zhenyu Xu · PS7→PS9 since your -1 — your objection was dropped
1 unresolved XS +1 −0
12d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-5 failed 2× RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
1 optional test failure(s) — informational
build #114129 SUCCESS · tests all Maloo sessions
reviews: Timothy Day -1 2026-08-07 15:40
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+4 earlier PS1 05-21 PS2 05-22 PS3 05-22 PS4 05-22
PS5 05-27 PS6 05-27 PS7 06-03 PS8 06-06 PS9 06-10
your previous vote: -1 on PS7 (2025-06-05 19:47) — now at PS9
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS6 2025-06-03 09:22 Zhenyu Xu osc_page.c:264 — yes, I agree that it's strange to find an osc_page didn't successfully deleted from the radix tree, I'm just working on a workaround here as
Patrick Farrell PS6 · 2025-05-28 20:41
I'm sort of confused about the logic here - why do we have to replace it?  What does that do?

And how can this page already be in the radix tree?  I guess it's not "this" page, it's just another page at the same index.

So this seems like it might be a race with removal in cl_page_delete/osc_page_delete?  If it is, then how do we avoid the other thread removing *this* page from the tree, since it's done by index?

It looks to me like vvp_page_delete() makes the page inaccessible in the page cache(?) by resetting the private pointer, but I'm not 100% sure.  Then osc_page_delete() is called after.

I guess my point is I'm not sure this is solving rather than hiding the problem.  I guess perhaps if the page is in the process of being removed (which is why we're getting a new page), we can just do that removal ourselves first?  Is that the logic here?  I guess that seems sound, but what about the deleting thread possibly removing this page?
Qian Yingjin PS6 · 2025-05-29 03:13
I think we must investigate why the page is already in the tree?
Zhenyu Xu PS6 · 2025-06-03 09:22
yes, I agree that it's strange to find an osc_page didn't successfully deleted from the radix tree, I'm just working on a workaround here as the customer find out certain version kernel does not have this issue while some does, so I'd guess that certain version kernel has some bug in the radix tree implementation.
owner Zhenyu Xu · uploader Zhenyu Xu · PS9 uploaded 435d ago · NEW · backport · open in Gerrit ↗
commit message
LU-19037 osc: initialize osc_object::oo_tree

Initialize the radix tree of osc_object::oo_tree.

Lustre-change: https://review.whamcloud.com/59340
Lustre-commit: 1f4d2013929bd61f775e6c98a4122fe143b4242b

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: I77a19cb08ccc52f4eb3457cd3367884b84624054
62863 master J !B ✓T ✓R 1/2−
LU-11509 misc: add script lfru-performance.sh
reviewing kg.xu · PS4→PS13 since your -1 — your objection was dropped
stalled 111d 3 unresolved L +237 −21
111d
janitor run: 4 failing config(s), none unique to this patch — janitor results
4 optional test failure(s) — informational
build #122012 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2026-03-04 00:41
no vote yet: Timothy Day
patchsets:
+8 earlier PS1 12-03 PS2 12-04 PS3 12-05 PS4 12-08 PS5 12-09 PS6 12-09 PS7 12-10 PS8 02-15
PS9 02-21 PS10 02-24 PS11 02-25 PS12 02-28 PS13 03-02
your previous vote: -1 on PS4 (2025-12-08 16:38) — now at PS13
threads: 3 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS13 2026-03-04 00:41 Andreas Dilger COMMIT_MSG:35 — This should actually run the test script to see that it is working:
Andreas Dilger PS13 · 2026-03-04 00:41
This should actually run the test script to see that it is working:
```
Test-Parameters: testlist=lfru-performance
```
I've submitted a manual test session via the `Test Results` page to see if it works.

https://testing.whamcloud.com/test_sessions/related?jobs=lustre-reviews&builds=122012#redirect

Ideally this testing could be run regularly via one of the test scripts (e.g. performance-sanity.sh or sanity-benchmark.sh) to monitor performance over time.  Putting it in a separate test script means that the test framework needs to be modified to run this.
reply PS13 2026-03-06 05:51 kg.xu patchset comment — Ping
kg.xu PS13 · 2026-03-06 05:51
Ping
reply PS13 2026-03-04 00:41 Andreas Dilger ldlm_cache_policy.c:176 — (style) It is better if comments do not contain the actual values in the constants, since that makes it more likely the comments become inco
Andreas Dilger PS13 · 2026-03-04 00:41
(style) It is better if comments do not contain the actual values in the constants, since that makes it more likely the comments become incorrect over time.
owner kg.xu · uploader kg.xu · PS13 uploaded 170d ago · NEW · open in Gerrit ↗
commit message
LU-11509 misc: add script lfru-performance.sh

LFRU was introduced to provide scan-resistant, which was validated in
sanity-test-124g. Furthermore, it ensures that high-priority locks
are more likely to remain in the cache, improving overall system
stability and performance under mixed workloads.

1. A new benchmark test, `lfru-performance.sh`, is introduced to
compare LFRU against LRU. This test simulates a workload where both
hot and cold files are accessed with a 50:50 ratio, involving 800 hot
files and 16,000 cold files, and fixed sized cache size.

The LFRU algorithm reduced the number of lock-RPCs (measured by
`ldlm-enqueue` calls) by ~8% compared to the LRU policy.

| Test Run | LFRU Enqueues | LRU Enqueues | Improvement |
| 1        | 160075        | 174250       | 8%          |
| 2        | 159372        | 175925       | 9%          |
| 3        | 159488        | 174533       | 8%          |
| 4        | 159712        | 175481       | 8%          |
| 5        | 159986        | 174493       | 8%          |

The benchmark results showed that LFRU outperforms LRU in this
mixed-access scenario.

2. Update ldlm_lfru_priv_too_many() so that the eviction
trigger for priv_lock is now primarily based on its ratio to
total_lock_counts. The use of LDLM_DEFAULT_LRU_SIZE is removed.

Signed-off-by: Keguang Xu <squalfof@gmail.com>
Change-Id: I60903947180fb8c2b4e1a74e94cb2c5bb387d9d5
55918 master J ✗1B ✓T …R 0/2
LU-17993 debug: to reveal page count issue
reviewing Zhenyu Xu · PS2→PS22 since your -1 — your objection was dropped
1 unique failure stalled 379d 8 unresolved M +79 −3
379d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_398cseen in 1 other review
build #107556 SUCCESS · tests all Maloo sessions · test queue
no vote yet: Qian Yingjin, Shaun Tancheff, Hongchao Zhang
patchsets:
+17 earlier PS1 08-02 PS2 08-05 PS3 08-07 PS4 08-08 PS5 08-29 Hongchao Zhang PS6 08-30 Hongchao Zhang PS7 08-30 Hongchao Zhang PS8 09-01 Hongchao Zhang PS9 09-02 Hongchao Zhang PS10 09-03 Hongchao Zhang PS11 09-03 Hongchao Zhang PS12 09-04 Hongchao Zhang PS13 09-04 Hongchao Zhang PS14 09-05 Hongchao Zhang PS15 09-05 Hongchao Zhang PS16 09-05 Hongchao Zhang PS17 09-09 Hongchao Zhang
PS18 09-09 Hongchao Zhang PS19 09-10 Hongchao Zhang PS20 09-10 Hongchao Zhang PS21 09-11 Hongchao Zhang PS22 09-12 Hongchao Zhang
your previous vote: -1 on PS2 (2024-08-05 21:20) — now at PS22
threads: 7 need your reply · 1 waiting on others · 0 own notes · 0 bot
reply PS2 2024-08-05 23:05 Oleg Drokin COMMIT_MSG:12 — since it looks like this patch will get refreshed eventually, please also fix this typo -> divide.
Oleg Drokin PS2 · 2024-08-05 23:05
since it looks like this patch will get refreshed eventually, please also fix this typo -> divide.
reply PS1 2024-08-03 06:05 Shaun Tancheff file.c:2184 — truncate
Shaun Tancheff PS1 · 2024-08-03 06:05
truncate
reply PS1 2024-08-05 04:51 Zhenyu Xu rw26.c:387 — I have a doubt here, if the start of the 1st page is not page aligned, since @to most of time is PAGE_SIZE, so at each loop, the page is alw
Zhenyu Xu PS1 · 2024-08-05 04:51
I have a doubt here, if the start of the 1st page is not page aligned, since @to most of time is PAGE_SIZE, so at each loop, the page is always not page aligned as well, is it a glitch here?

Should @to be like this:
       if (from != 0)
              to = min(PAGE_SIZE - from, from + size);
       else
              to = min(PAGE, from + size);
and except the 1st/last page, all pages in the middle should always be aligned full page.
reply PS2 2024-08-27 06:27 Shaun Tancheff rw26.c:386 — No changes here, code is correct as is.
Shaun Tancheff PS2 · 2024-08-27 06:27
No changes here, code is correct as is.
reply PS1 2024-08-05 04:51 Zhenyu Xu cl_io.c:1383 — from here we can see that the end of the 1st page is page aligned.
Zhenyu Xu PS1 · 2024-08-05 04:51
from here we can see that the end of the 1st page is page aligned.
reply PS1 2024-08-05 04:51 Zhenyu Xu cl_io.c:1387 — and the end of the last page could be page unaligned.
Zhenyu Xu PS1 · 2024-08-05 04:51
and the end of the last page could be page unaligned.
reply PS1 2024-08-03 07:16 Andreas Dilger sanity.sh:14393 — More importantly, for older servers the unaligned DIO should be handled gracefully in some manner, since applications running on newer clien
Shaun Tancheff PS1 · 2024-08-03 06:05
Can we do:

unaligned_dio || skip "Need unaligned dio support"

Instead of server version check?
Andreas Dilger PS1 · 2024-08-03 07:16
More importantly, for older servers the unaligned DIO should be handled gracefully in some manner, since applications running on newer clients will try this and we shouldn't allow them to crash the servers. Just skipping the test doesn't solve the interop problem.

One option for UDIO is to expose the DIO alignment via statx, as XFS does. That will allow userspace applications to know what the DIO alignment requirements are, and applications that don't follow them can return EIO or other error directly (as they did befoer UDIO existed, instead of trying to emulate their way through the issues.
owner Zhenyu Xu · uploader Hongchao Zhang · PS22 uploaded 706d ago · NEW · open in Gerrit ↗
commit message
LU-17993 debug: to reveal page count issue

as title

Test-Parameters: fortestonly
Test-Parameters: testlist=sanity env=ONLY=119h,ONLY_REPEAT=500 clientdistro=el8.8 serverdistro=el8.8
Signed-off-by: Hongchao Zhang <hongchao@whamcloud.com>
Change-Id: Ia502400fb20603c369c34a3fb397a472cc3403c3
47820 master J ✗6B ✓T ✗9R 0/2−
LU-15979 llite: restore S_NOSEC in ll_update_inode()
reviewing Vladimir Saveliev · PS3→PS6 since your -1 — your objection was dropped
6 unique failures stalled 380d M +54 −8
380d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
lustre-rsync-test@ldiskfs+DNE:test_2cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
lustre-rsync-test@zfs:test_2cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@ldiskfs+DNE:test_70NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@zfs:test_70NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-sec@ldiskfs+DNE:test_51NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-sec@zfs:test_51NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-2 RHEL 8.6/x86_64 ran 7 tests. 2 tests failed: sanity-sec, sanity-lfsck. session
review-dne-part-4 RHEL 8.6/x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-selinux-ssk-part-2 CentOS 8.5/x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 CentOS 8.5/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 CentOS 8.5/x86_64 ran 7 tests. 2 tests failed: sanity-sec, sanity-lfsck. session
review-dne-zfs-part-4 CentOS 8.5/x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-ldiskfs-arm RHEL 8.6/aarch64, RHEL 8.6/x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
review-ldiskfs-ubuntu CentOS 8.5/x86_64, Ubuntu 20.04/x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
review-zfs CentOS 8.5/x86_64 ran 8 tests. 2 tests failed: sanity-flr, sanity-quota. session
2 optional test failure(s) — informational
build #91858 SUCCESS · tests all Maloo sessions
reviews: Vladimir Saveliev -1 2023-01-25 14:55
no vote yet: James Simmons, Qian Yingjin, Andreas Dilger
patchsets:
+1 earlier PS1 06-28
PS2 07-04 PS3 07-06 PS4 07-26 PS5 01-11 PS6 01-24
your previous vote: -1 on PS3 (2022-07-06 22:59) — now at PS6
owner Vladimir Saveliev · uploader Vladimir Saveliev · PS6 uploaded 1303d ago · NEW · open in Gerrit ↗
commit message
LU-15979 llite: restore S_NOSEC in ll_update_inode()

ll_update_inode() is to set S_NOSEC (if needed) after permission
update with help of inode_has_no_xattr() having inode->i_rwsem held.

Without that { creat(); fstat(); write(); } executes to eviction
favorable case:

cl_io_loop
  cl_io_lock                    <- LDLM lock is taken here
  cl_io_start
    vvp_io_write_start
    ...
      __generic_file_aio_write
        file_remove_privs
          security_inode_need_killpriv
          ...
            ll_xattr_get_common
            ...
              mdc_intent_lock   <- enqueue RPC is sent here

If enqueue rpc is delayed, the client may get evicted as not
cancelling lock taken in cl_io_lock.

ll_update_inode() is called without inode->i_rwsem locked for regular
file but one case:
  vfs_setxattr()
    inode_lock(inode);
    ..
    ll_xattr_set()
      ll_setstripe_ea()
        ll_lov_setstripe_ea_info()
          ll_intent_file_open()
	    ll_prep_inode()
	      ll_update_inode()
where ll_update_inode() is called with inode->i_rwsem locked.
In order to be able to detect this case MDS_OPEN_SETXATTR flag is added.

Test to illustrate the issue is added.

The fix does not help for not NOSEC files.
Uncommenting chmod command in the test makes it to fail with eviction.

Test-Parameters: testlist=replay-dual env=ONLY=34,ONLY_REPEAT=100
Change-Id: Ie9e32d03402027f47381edddbd5cb3fb75023d59
HPE-bug-id: LUS-10989
Signed-off-by: Vladimir Saveliev <vladimir.saveliev@hpe.com>
50432 master J ✓B ✓T ✗2R 0/2
LU-16669 llite: add LOCK_NO_EXPAND fail_loc on a client
reviewing Qian Yingjin · PS1→PS7 since your +1
stalled 380d 3 unresolved S +38 −3
380d
failed enforced testplatformdetail
review-dne-zfs-part-4 RHEL 8.7/x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-zfs RHEL 8.7/x86_64 ran 8 tests. 1 tests failed: sanity-flr. session
3 optional test failure(s) — informational
build #96192 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+2 earlier PS1 03-27 PS2 03-29
PS3 03-29 PS4 06-29 PS5 06-29 PS6 06-30 PS7 07-11
your previous vote: +1 on PS1 (2023-03-27 15:01) — now at PS7
threads: 1 need your reply · 1 waiting on others · 1 own notes · 0 bot
reply PS1 2023-03-27 18:33 Andreas Dilger sanity.sh:29656 — Right, only when a subtest is creating hundreds/thousands of files, or the files are MBs in size do they need to be cleaned up explicitly.
Patrick Farrell PS1 · 2023-03-27 15:01
[minor] I'm pretty sure 'rm $DIR/$tfile' is unnecessary.  A lot of tests don't do it.  I would remove if patch is refreshed.
Andreas Dilger PS1 · 2023-03-27 18:33
Right, only when a subtest is creating hundreds/thousands of files, or the files are MBs in size do they need to be cleaned up explicitly.
note PS1 2023-03-27 15:01 Patrick Farrell sanity.sh:29693 — This looks good... I suppose testing the lock_no_expand API would require writing a test program to do it. It can't be tested from ladvise
Patrick Farrell PS1 · 2023-03-27 15:01
This looks good...  I suppose testing the lock_no_expand API would require writing a test program to do it.  It can't be tested from ladvise since it's just on a single file descriptor.  So the IO has to come from the program which calls the API.

Well, that is not a new limitation.  I could've written that test when the API was added and I didn't :)
owner Qian Yingjin · uploader Qian Yingjin · PS7 uploaded 1135d ago · NEW · open in Gerrit ↗
commit message
LU-16669 llite: add LOCK_NO_EXPAND fail_loc on a client

Lustre advise IOCTL interface can set the CEF_LOCK_NO_EXPAND
flag, which tells the OSC to set LDLM_FL_NO_EXPANSION on any lock
requests. This lock flag tells the server (OST) not to expand the
lock extent.
However, It is inconvenient to use and requires programming to
call Lustre advise API.

To set this parameter much easier for benchmark or debug purpose,
we add a fail_loc (0x1425) to control whether to expand the lock
extent for I/O on a client.

Add sanity/test_255d to verify it works as expected.

Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: I0d7462665cea37baf8ecbb8ab8f609a4b7f1f317
52196 master J ✗6B ✓T ✗14R 0/2
LU-6142 obdfilter: obdfilter script improvements
reviewing Arshad Hussain · PS1→PS2 since your +1
6 unique failures stalled 380d M +33 −34
380d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
obdfilter-survey@ldiskfs+DNE:test_1aseen in 10 other reviews
obdfilter-survey@ldiskfs+DNE:test_1bseen in 10 other reviews
obdfilter-survey@ldiskfs+DNE:test_1cseen in 10 other reviews
obdfilter-survey@zfs:test_1aseen in 10 other reviews
obdfilter-survey@zfs:test_1bseen in 10 other reviews
obdfilter-survey@zfs:test_1cseen in 10 other reviews
failed enforced testplatformdetail
review-dne-part-1 failed 2× RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-part-3 failed 2× RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 8.8/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-part-5 failed 2× RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanityn. session
review-dne-selinux-ssk-part-1 failed 2× RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-1 failed 2× RHEL 8.8/x86_64 ran 6 tests. 2 tests failed: sanity-pfl, sanity. session
review-dne-zfs-part-3 failed 2× RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-zfs-part-5 failed 2× RHEL 8.8/x86_64 ran 6 tests. 2 tests failed: sanityn, recovery-small. session
review-dne-zfs-part-6 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: replay-single. session
review-ldiskfs failed 2× RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs failed 2× RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm failed 2× RHEL 8.7/aarch64, RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-zfs failed 2× RHEL 8.8/x86_64 ran 8 tests. 1 tests failed: sanity-quota. session
9 optional test failure(s) — informational
build #97780 SUCCESS · tests all Maloo sessions
no vote yet: Chris Horn, Andreas Dilger, Timothy Day
patchsets: PS1 08-31 PS2 09-04
your previous vote: +1 on PS1 (2023-08-31 14:54) — now at PS2
owner Arshad Hussain · uploader Arshad Hussain · PS2 uploaded 1080d ago · NEW · open in Gerrit ↗
commit message
LU-6142 obdfilter: obdfilter script improvements

This patch:
- replaces 'lctl' with '$LCTL' wherever applicable.
- Returns true/false instead of 1/0 for function is_local_addr()
- replaces "! local_node" call with more natural remote_node

Test-Parameters: testlist=obdfilter-survey
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: Id4ba601fd8f31cde79c099581575a5390bb9515c
51271 master J !B ✓T ✗5R 1/2−
LU-4959 parser: make help work like git
reviewing Timothy Day · PS6→PS8 since your +1
stalled 387d 3 unresolved M +111 −1
387d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.3/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.9/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.3/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.9/x86_64, RHEL 9.3/x86_64 ran 5 tests. 1 tests failed: sanity. session
3 optional test failure(s) — informational
build #104745 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2024-05-13 04:20 · Timothy Day -1 2025-04-06 17:01
no vote yet: James Simmons
patchsets:
+3 earlier PS1 06-11 PS2 06-11 PS3 06-11
PS4 06-12 PS5 10-08 PS6 11-21 PS7 12-09 PS8 05-13
your previous vote: +1 on PS6 (2023-11-21 16:30) — now at PS8
threads: 3 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS5 2023-11-21 16:20 Timothy Day parser.c:561 — It works. For example:
Andreas Dilger PS5 · 2023-10-09 10:37
Is the LUSTRE environment variable also inherited by the system() command that is run?  At first I was thinking "you can't just use '$LUSTRE' in the string!" but since the system command is executed by the shell it should work OK?

Alternately, since this is already calling getenv() it could save the returned pointer and print it into the cmd string directly.
Timothy Day PS5 · 2023-11-21 16:20
It works. For example:

 [centos@ip-172-31-20-187 lustre-release]$ LUSTRE=fizzbuzz ./lustre/utils/lfs help migrate
 man: fizzbuzz/doc/lfs-migrate.*: No such file or directory
 No manual entry for fizzbuzz/doc/lfs-migrate.*

You can do the same thing in python, which is super helpful for integrating with shell scripts.
reply PS5 2023-11-21 16:20 Timothy Day parser.c:626 — This code is only invoked when you run the `help` command, so it shouldn't interfere with shell completion.
Andreas Dilger PS5 · 2023-10-09 10:37
Does this interfere with tab completion of commands?
Timothy Day PS5 · 2023-11-21 16:20
This code is only invoked when you run the `help` command, so it shouldn't interfere with shell completion.
reply PS8 2025-04-06 17:01 Timothy Day parser.c:558 — This block doesn't seem to work, causing sanity.sh to fail. Even locally, this seems wrong. Also, this will need to be updated once the man
Timothy Day PS8 · 2025-04-06 17:01
This block doesn't seem to work, causing sanity.sh to fail. Even locally, this seems wrong. Also, this will need to be updated once the man pages are relocated.
owner Timothy Day · uploader Timothy Day · PS8 uploaded 828d ago · NEW · open in Gerrit ↗
commit message
LU-4959 parser: make help work like git

The git help subcommand displays the man page for
the given subcommand. Currently, the Lustre tools
(lfs, lctl, lnetctl, lst) that use the parser in
libcfs only return a small help text.

This patch changes the parser to first make an
attempt to display a related man page before
falling back to the old help text.

The implementation is inspired by git, but differs
in a few ways. It is best-effort, it assumes that
the user has 'man' available, and has some Lustre
specific parsing.

Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I912e7c7e8439a822da0fb2e82f160adb9eaac589

Awaiting your review — CI green

(31)
66784 master J ✓B ✓T ✓R 1/2
LU-11509 ldlm: scale LFRU sample window from lru_size
reviewing Keguang Xu · CI green — awaiting your review
3 unresolved M +147 −51
6h
9 optional test failure(s) — informational
build #126917 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2026-08-19 15:11
no vote yet: Qian Yingjin, Timothy Day
patchsets: PS1 06-22 PS2 06-23 PS3 06-24
threads: 3 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS3 2026-07-31 12:19 kg.xu patchset comment — Ping, reviewers
kg.xu PS3 · 2026-07-31 12:19
Ping, reviewers
reply PS3 2026-08-19 15:11 Andreas Dilger sanity.sh:17176 — (style) more natural abbreviation would be `priv_thresh`, or just `thresh` to fit into 89 columns below
Andreas Dilger PS3 · 2026-08-19 15:11
(style) more natural abbreviation would be `priv_thresh`, or just `thresh` to fit into 89 columns below
reply PS3 2026-08-19 15:11 Andreas Dilger sanity.sh:17421 — Has any work been done to measure the LFRU retention behavior?
Andreas Dilger PS3 · 2026-06-26 04:36
This tests the window size is being adjusted, which is fine, but I was more wondering if there is a way to effectively test whether the dynamic window size is improving the LRU behavior and lock retention effectiveness?
kg.xu PS3 · 2026-06-26 13:09
Hi Andreas, honestly I treat this as an intermediate patch: it fixes issues we can address quickly here -- per-CPU counter inaccuracy and threshold-adjustment lag on large-core hosts (e.g. 640 window size on a 64-core system). A better evaluation would likely need timing-aware? behavior and better observability.

My plan is to add more metrics in the follow-up patch so we can see retention effectiveness in production-like workloads (will try to simulate some...), then use that data to tune the dynamic window (and with additional timing factors maybe) more suitably.
Andreas Dilger PS3 · 2026-08-19 15:11
Has any work been done to measure the LFRU retention behavior?
owner Keguang Xu · uploader Keguang Xu · PS3 uploaded 56d ago · NEW · open in Gerrit ↗
commit message
LU-11509 ldlm: scale LFRU sample window from lru_size

lfru_sample_window_size is the number of lock insertions sampled
before LFRU recomputes priv_score_threshold from max_freq.
It controls how the promotion gate adapts after metadata bursts
without filling the priv list with one-touch locks.

Previously the window was LDLM_DEFAULT_LRU_SIZE / 10 (10 * num_cpus),
set only at namespace creation.  On large clients the sample period
was too long to promote valuable locks before they were displaced; on
small clients it was too short and tending to chased transient churn.
It also ignored the lru_size and was not refreshed at runtime.

This patch addresses the issue by periodically recalculating the
window size based on current lru size, setting it to
ns_nr_unused / 10 and clamping it between 32 and 160, the promotion
gate now dynamically adapts to changing workloads.

Use LDLM_LFRU_PRIV_DEMOTE_THRESH (64) to avoid batch priv demotion
oscillation while the cache is still filling.

sanity/124e/124f/124h, set llite.*.enable_statahead_fname=0 with the
intention to disable `stat()` randomness, to reduce flakiness.

Test-Parameters: testlist=sanity env=ONLY=124e,124f,ONLY_REPEAT=100
Test-Parameters: testlist=sanity env=ONLY=124g,ONLY_REPEAT=200
Test-Parameters: clientdistro=el10.1 serverdistro=el10.1 testlist=sanity env=ONLY=124g,ONLY_REPEAT=200
Signed-off-by: Keguang Xu <kxu@ddn.com>
Change-Id: I2dfdca5a58c71a2d9ab9fe60795c5db60587b4ce
58458 master J !B ✓T ✓R 1/2−
LU-17916 osd: prefer folio of order 0
reviewing Shaun Tancheff · CI green — awaiting your review
2 unresolved L +293 −228
19h
janitor run: 2 failing config(s), none unique to this patch — janitor results
build #129588 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2026-08-18 18:06
no vote yet: James Simmons, Arshad Hussain, Oleg Drokin, Timothy Day
patchsets:
+36 earlier PS1 03-18 PS2 03-29 PS3 04-08 PS4 04-08 PS5 04-08 PS6 05-26 PS7 06-18 PS8 06-18 PS9 06-22 PS10 08-10 PS11 09-09 PS12 09-29 PS13 10-01 PS14 11-18 PS15 11-24 PS16 11-24 PS17 11-25 PS18 03-08 PS19 03-08 PS20 03-10 PS21 03-14 PS22 04-04 PS23 05-07 PS24 05-17 PS25 05-30 PS26 06-16 PS27 07-16 Andreas Dilger PS28 07-16 Andreas Dilger PS29 07-16 Andreas Dilger PS30 07-16 Andreas Dilger PS31 07-16 Andreas Dilger PS32 07-17 Andreas Dilger PS33 07-17 Andreas Dilger PS34 07-22 James Simmons PS35 07-22 James Simmons PS36 07-29
PS37 07-29 PS38 07-30 PS39 08-13 PS40 08-16 PS41 08-17
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS41 2026-08-18 18:06 Andreas Dilger obd.h:514 — Seems like a reasonable improvement if patch is refreshed, or in a follow-on patch.
Gerrit AI review for Lustre PS41 · 2026-08-18 09:24
(minor) The struct brw_page helpers earlier in this file come as a set: brw_pgno(), brw_kmap_local() and brw_folio_page(). The lnb set stops at the two kmap variants, so the folio+fpgno pairing ends up open-coded wherever a struct page is needed:

    folio_page(local_nb[i].lnb_folio, local_nb[i].lnb_fpgno)

That appears in tgt_checksum_niobuf(), tgt_brw_read() and tgt_brw_write(), plus twice in osd_integrity.c.

If the patch is refreshed, would an lnb_folio_page() mirroring brw_folio_page() keep the pairing in one place and match the accessor set already established for brw_page?
Andreas Dilger PS41 · 2026-08-18 18:06
Seems like a reasonable improvement if patch is refreshed, or in a follow-on patch.
reply PS38 2026-08-18 18:06 Andreas Dilger echo_client.c:2042 — Could be fixed if patch is refreshed.
Gerrit AI review for Lustre PS38 · 2026-07-31 00:41
The blank line separating this from echo_put_object() got deleted. Two more unrelated blank-line deletions come in with the patch, at echo.c:309 and osd-wbcfs/osd_io.c:341.
Shaun Tancheff PS38 · 2026-08-13 10:16
Acknowledged
Andreas Dilger PS38 · 2026-08-18 18:06
Could be fixed if patch is refreshed.
owner Shaun Tancheff · uploader Shaun Tancheff · PS41 uploaded 2d ago · NEW · open in Gerrit ↗
commit message
LU-17916 osd: prefer folio of order 0

Switch from struct page and page based API to struct folio
and the folio API while keeping the PAGE_SIZE logic by only
allocating folio(s) of order 0.

Provide lnb_fpgno to track the page number within an lnb_folio
where kmem_to_folio() in osd-zfs can be a large folio.

Propagate lnb_folio to the other osd implementations.

HPE-bug-id: LUS-12384
Signed-off-by: Shaun Tancheff <shaun@tancheff.com>
Change-Id: I87b37ce94f2f717e8767785e3620e4a30bc22e88
57572 master J !B ✓T ✓R 0/2−
LU-18592 lod: protect lod in-memory layout's change
reviewing Zhenyu Xu · CI green — awaiting your review
9 unresolved M +80 −31
19h
janitor run: 1 failing config(s), none unique to this patch — janitor results
11 optional test failure(s) — informational
build #127622 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger, Lai Siyao
patchsets:
+7 earlier PS1 12-23 PS2 12-23 PS3 01-03 PS4 01-10 PS5 02-14 Peter Jones PS6 02-28 PS7 08-22
PS8 09-04 PS9 09-05 PS10 09-10 PS11 09-24 PS12 07-15
threads: 9 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS12 2026-07-28 05:10 Gerrit AI review for Lustre COMMIT_MSG:9 — The body explains why lod_layout_mutex is needed, but two hunks aren't accounted for:
Gerrit AI review for Lustre PS12 · 2026-07-28 05:10
The body explains why lod_layout_mutex is needed, but two hunks aren't accounted for:

- `lo->ldo_flr_state = 0;` added to the plain-layout branch of lod_parse_striping()
- the extra `!lo->ldo_is_composite ||` term in the lod_declare_update_extents() assertion

Could the body say what each of those is for? As written the text reads as if the assertion should stop firing for plain layouts, but the code makes it fire more often (see the inline comment).
reply PS12 2026-07-28 05:10 Gerrit AI review for Lustre COMMIT_MSG:18 — This fixes an LBUG, so it would help to carry a Fixes: tag. The assertion being hit was added by:
Gerrit AI review for Lustre PS12 · 2026-07-28 05:10
This fixes an LBUG, so it would help to carry a Fixes: tag. The assertion being hit was added by:

    Fixes: ff5eb304fa37 ("LU-10070 lod: SEL: Implement basic spillover space")

That commit introduced lod_declare_update_extents() together with `if (lo->ldo_flr_state == LCM_FL_NONE) LASSERT(start_index == 0 && max_comp == lo->ldo_comp_cnt);` and the unlocked access to ldo_mirrors[]/ldo_comp_cnt that this change now serializes.
reply PS12 2026-07-28 05:10 Gerrit AI review for Lustre lod_lov.c:1362 — The same reset looks missing in the other two places that build a plain in-core layout after freeing the old one:
Gerrit AI review for Lustre PS12 · 2026-07-28 05:10
The same reset looks missing in the other two places that build a plain in-core layout after freeing the old one:

- lod_use_defined_striping() (lod_qos.c:2217) sets `mo->ldo_is_composite = 0` for LOV_MAGIC_V1/V3 with no ldo_flr_state reset
- lod_qos_parse_config() (lod_qos.c:2557) does the same after lod_free_comp_entries()

lod_free_comp_entries() clears ldo_mirrors, ldo_mirror_count and ldo_is_composite but not ldo_flr_state, so a composite-to-plain transition through either of those still leaves a stale value. lod_declare_layout_change() then dispatches on it, e.g. into lod_declare_update_rdonly() whose `LASSERT(lo->ldo_mirror_count > 0)` cannot hold for a plain layout. Should those get the same fix?
reply PS12 2026-07-28 05:10 Gerrit AI review for Lustre lod_object.c:7591 — Adding `!lo->ldo_is_composite ||` widens the guard rather than narrowing it: `A || B` is true whenever `B` is true, so the LASSERT is now ev
Gerrit AI review for Lustre PS12 · 2026-07-28 05:10
Adding `!lo->ldo_is_composite ||` widens the guard rather than narrowing it: `A || B` is true whenever `B` is true, so the LASSERT is now evaluated in strictly more cases than before, and the plain-layout case (`ldo_is_composite == 0`) now always evaluates it.

The commit message says ldo_flr_state is only meaningful for a composite layout and that a plain file "could get into lod_declare_update_plain()->lod_declare_update_extents() and bump into this assertion", which reads like the intent was to exempt plain layouts:

    if (lo->ldo_is_composite && lo->ldo_flr_state == LCM_FL_NONE)

With `||`, a plain file in the state that produced the LU-18592 LBUG (flr_state == LCM_FL_NONE, stale ldo_mirrors) still hits the same assertion. Which of the two is intended?
reply PS12 2026-07-28 05:10 Gerrit AI review for Lustre lod_object.c:7785 — Changing `RETURN(-EALREADY)` into `GOTO(out_unlock, rc = -EALREADY)` also routes this through `out:`, so the -EALREADY case now calls lod_st
Gerrit AI review for Lustre PS12 · 2026-07-28 05:10
Changing `RETURN(-EALREADY)` into `GOTO(out_unlock, rc = -EALREADY)` also routes this through `out:`, so the -EALREADY case now calls lod_striping_free() and drops the cached layout. Previously it returned with the cache intact.

mdd_layout_instantiate_component() turns -EALREADY into success, so every layout-write intent on an already-instantiated component now throws away the in-memory striping and forces a re-read of the LOV EA. Is that intended, or should this path skip the free?
reply PS12 2026-07-28 05:10 Gerrit AI review for Lustre lod_object.c:8613 — This isn't a bug today, but making the unlock conditional on `rc` is fragile: `out:` is reached both by fall-through with the mutex already
Gerrit AI review for Lustre PS12 · 2026-07-28 05:10
This isn't a bug today, but making the unlock conditional on `rc` is fragile: `out:` is reached both by fall-through with the mutex already released (rc == 0) and by `GOTO(out, ...)` with it still held. It only works because every goto to `out:` happens to set rc != 0 -- a future `GOTO(out, rc = 0)`, or a `lod_declare_update_extents()` return of 0 being propagated, silently leaks the mutex.

A dedicated `out_unlock:` label above `out_free:` (as was done in lod_declare_update_plain()) would make the lock state structural instead of value-dependent. Same shape in lod_declare_update_write_pending() and lod_declare_update_sync_pending().
reply PS12 2026-07-28 05:10 Gerrit AI review for Lustre lod_object.c:8825 — This assignment to ldo_flr_state is still outside ldo_layout_mutex, but lod_declare_update_write_pending() now takes the mutex and then asse
Gerrit AI review for Lustre PS12 · 2026-07-28 05:10
This assignment to ldo_flr_state is still outside ldo_layout_mutex, but lod_declare_update_write_pending() now takes the mutex and then asserts on the value:

    lod_declare_update_sync_pending()      lod_striping_reload()
      lo->ldo_flr_state = WRITE_PENDING      mutex_lock(ldo_layout_mutex)
                                             lod_parse_striping()
                                               lo->ldo_flr_state = <from disk>
                                             mutex_unlock()
      lod_declare_update_write_pending()
        mutex_lock(ldo_layout_mutex)
        LASSERT(ldo_flr_state == LCM_FL_WRITE_PENDING)  <- fires

Since this is the same class of problem the patch is fixing, should the state transition move inside the mutex (or the mutex be taken here and passed down)?
reply PS12 2026-07-28 05:10 Gerrit AI review for Lustre lod_qos.c:1582 — This isn't a bug, but `layout_lcked` is spelled `layout_locked` in every sibling function (lod_check_and_reserve_ost(), lod_ost_alloc_rr(),
Gerrit AI review for Lustre PS12 · 2026-07-28 05:10
This isn't a bug, but `layout_lcked` is spelled `layout_locked` in every sibling function (lod_check_and_reserve_ost(), lod_ost_alloc_rr(), lod_ost_alloc_specific(), lod_qos_prep_create()). Worth making it consistent if the patch is refreshed.
reply PS12 2026-07-28 05:10 Gerrit AI review for Lustre lod_qos.c:3138 — This is the one remaining caller passing `false`, and it leaves the two lock orders divergent:
Gerrit AI review for Lustre PS12 · 2026-07-28 05:10
This is the one remaining caller passing `false`, and it leaves the two lock orders divergent:

    lod_prepare_create()                    -> lod_ost_alloc_{qos,rr}()
                                               lq_rw_sem / ltd_rw_sem held
                                               -> lod_comp_is_ost_used(..., false)
                                                  -> mutex_lock(ldo_layout_mutex)

    lod_declare_update_plain()  mutex_lock(ldo_layout_mutex)
                                -> lod_declare_instantiate_components()
                                   -> lod_qos_prep_create(..., true)
                                      -> lod_ost_alloc_qos() down_write(lq_rw_sem)

So ldo_layout_mutex is now above lq_rw_sem on the new paths and below it here. This isn't reachable as a hang today (the MDT holds the layout LDLM lock EX for both entry points on a given object), but it makes the ordering depend on an unrelated lock. Would it be cleaner to have lod_prepare_create() take ldo_layout_mutex too and pass `true` everywhere, so lod_obj_for_each_stripe() never has to acquire it as an inner lock?

Related: the new critical section now spans OST allocation, which includes a `down_write_killable()` with a 2s timer in lod_ost_alloc_qos() and lod_sub_declare_create() on OSP objects, so the per-object layout mutex is held far longer than before.
owner Zhenyu Xu · uploader Zhenyu Xu · PS12 uploaded 35d ago · NEW · open in Gerrit ↗
commit message
LU-18592 lod: protect lod in-memory layout's change

The lod::ldo_flr_state is only meaningful for composite layout, while
a plain file could get into lod_declare_update_plain()->
lod_declare_update_extents() and bump into this assertion.

lod_declare_update_extents() ) ASSERTION(start_index == 0 &&
	max_comp == lo->ldo_comp_cnt)

And lod_declare_update_extents() would modify lod's layout, it needs
lod_layout_mutex's protection for consistence.

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: I2b3d32b32efb88317c124a7975dfd9889333bc8a
54267 master J ✗1B ✓T ✓R 0/2−
LU-17604 osc: rework resend logic
reviewing Alexey Lyashkov · CI green — awaiting your review
16 unresolved L +296 −195
19h
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
runtests-ssk@ldiskfs+SharedKey:test_1seen in 100 other reviews
11 optional test failure(s) — informational
build #127060 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andrew Perepechko, Mikhail Pershin
patchsets:
+10 earlier PS1 03-04 PS2 03-05 PS3 03-13 PS4 03-14 PS5 03-22 PS6 03-25 PS7 03-25 PS8 03-27 PS9 04-01 PS10 04-02
PS11 04-03 PS12 10-28 PS13 10-29 PS14 02-04 PS15 06-29
threads: 16 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS15 2026-07-28 05:13 Gerrit AI review for Lustre COMMIT_MSG:10 — (style) Several hunks aren't accounted for by the description, and naming the new pieces would make the change findable via git log later:
Gerrit AI review for Lustre PS15 · 2026-07-28 05:13
(style) Several hunks aren't accounted for by the description, and naming the new pieces would make the change findable via git log later:

- the new resend queue itself (osc_extent_resend(), cl_resend_list, oo_resend_read/write, oe_resends) is never named.
- brw_interpret() now rewrites rc to -EBADF on an import generation change, and the old -EAGAIN/-EINPROGRESS to -EIO mapping is gone.
- the discard path in osc_cache_writeback_range() switches from 0 to -EREMOTEIO.
- osc_free_grant() switching to OSC_DUMP_GRANT(), plus the trailing-space fix in that macro.
- get_write_extents() rewritten around the new osc_collect_rpc().
- the sanity test_118c/118d lt-multiop hunks, which have nothing to do with resend and would be better as their own change.

The wording is also hard to follow: "use an osc extents to resend a data" and "it covers a problems ... caused a data lost".
reply PS15 2026-07-28 05:13 Gerrit AI review for Lustre COMMIT_MSG:11 — (minor) This is described as a data-loss fix, so a Fixes: tag would help whoever backports it. The osc_build_rpc() error path that completed
Gerrit AI review for Lustre PS15 · 2026-07-28 05:13
(minor) This is described as a data-loss fix, so a Fixes: tag would help whoever backports it. The osc_build_rpc() error path that completed extents on a local ENOMEM dates to:

    Fixes: 9fe4b52ad2ff ("LU-1030 osc: new IO engine implementation")

If this is really a rework rather than a fix for one specific commit, saying that in the body would settle it.
reply PS15 2026-07-28 05:13 Gerrit AI review for Lustre obd.h:1452 — (style) The body carried the space indentation over from osc_internal.h. New/moved code should use tabs.
Gerrit AI review for Lustre PS15 · 2026-07-28 05:13
(style) The body carried the space indentation over from osc_internal.h. New/moved code should use tabs.
reply PS15 2026-07-28 05:13 Gerrit AI review for Lustre obd.h:1460 — The comparison also flipped from `>` to `>=` here, which gives one extra attempt compared with the old code for the same cl_resends value. I
Gerrit AI review for Lustre PS15 · 2026-07-28 05:13
The comparison also flipped from `>` to `>=` here, which gives one extra attempt compared with the old code for the same cl_resends value. Is that intentional? It isn't mentioned in the commit message, and mdc_getpage() (which increments before calling) and brw_interpret() (which passes resends + 1) count differently, so it's worth being explicit about which one the tunable is supposed to mean.
reply PS15 2026-07-28 05:13 Gerrit AI review for Lustre mdc_request.c:1077 — This call site is only reached when rc == -ETIMEDOUT (the lines just above return early for every other error). The new client_should_resend
Gerrit AI review for Lustre PS15 · 2026-07-28 05:13
This call site is only reached when rc == -ETIMEDOUT (the lines just above return early for every other error). The new client_should_resend() returns

    (rc == -EINPROGRESS) || (bulk_recoverable_error(rc) && _resend)

and bulk_recoverable_error() covers only EIO/EROFS/ENOMEM/EAGAIN/EINPROGRESS. So -ETIMEDOUT now always yields false, and mdc_getpage() returns -EIO on the very first bulk timeout instead of retrying up to cl_resends times.

That makes resends++, msleep_interruptible() and the goto restart_bulk below dead code, and turns a transient readdir bulk timeout into a failed readdir. Should this caller keep the old count-only semantics, or should -ETIMEDOUT be added to the recoverable set?
reply PS1 2024-03-04 17:50 Andrew Perepechko osc_cache.c:1915 — do not comment code
Andrew Perepechko PS1 · 2024-03-04 17:50
do not comment code
reply PS15 2026-07-28 05:13 Gerrit AI review for Lustre osc_cache.c:903 — oo_resend_item is linked onto the client-wide cl_resend_list without taking a reference on the object, and osc_next_obj() is the only thing
Gerrit AI review for Lustre PS15 · 2026-07-28 05:13
oo_resend_item is linked onto the client-wide cl_resend_list without taking a reference on the object, and osc_next_obj() is the only thing that ever unlinks it. __osc_list_maint() manages oo_ready_item/oo_hp_ready_item/oo_write_item/oo_read_item (which is what makes the matching LASSERTs in osc_object_free() hold), but it doesn't know about oo_resend_item, so nothing removes it on teardown.

There is also a window right here: the object lock was dropped on the line above, so another thread already inside osc_resend_write() can splice oo_resend_write empty before this list_move_tail() runs. The object then sits on cl_resend_list with both resend lists empty and nothing pending to pull it off, and the new LASSERT(list_empty(&osc->oo_resend_item)) in osc_object_free() trips if the object is destroyed first.

Would it be safer to queue the object under the same critical section as the extent, and to clear oo_resend_item from __osc_list_maint()?
reply PS15 2026-07-28 05:13 Gerrit AI review for Lustre osc_cache.c:914 — (minor) The function returns void now, so "Return %0 always" is stale. Same for the "Return: %0 on success / %negative on failure" block lef
Gerrit AI review for Lustre PS15 · 2026-07-28 05:13
(minor) The function returns void now, so "Return %0 always" is stale. Same for the "Return: %0 on success / %negative on failure" block left on osc_extent_make_ready() below.
reply PS15 2026-07-28 05:13 Gerrit AI review for Lustre osc_cache.c:2109 — (minor) This loop no longer stops early. The loops it replaces returned as soon as try_to_add_extent_for_io() failed or the RPC was full; th
Gerrit AI review for Lustre PS15 · 2026-07-28 05:13
(minor) This loop no longer stops early. The loops it replaces returned as soon as try_to_add_extent_for_io() failed or the RPC was full; this one walks the whole list even after erd_max_extents has hit 0 or erd_max_pages is reached, and get_write_extents() runs under osc_object_lock(), a spinlock. On an object with a long oo_urgent_exts/oo_full_exts list that is an O(n) spin per RPC build. Breaking out once data->erd_page_count == data->erd_max_pages would keep the old cost.

While here, `x == y ? true : false` below can just be `x == y`, and the comment above get_write_extents() about full extents differing from the others is now stale since all three lists go through the same helper.
reply PS15 2026-07-28 05:13 Gerrit AI review for Lustre osc_cache.c:2313 — (style) These two new doc blocks use the old \param/\return doxygen form while the tree is being converted to kernel-doc; they document a pa
Gerrit AI review for Lustre PS15 · 2026-07-28 05:13
(style) These two new doc blocks use the old \param/\return doxygen form while the tree is being converted to kernel-doc; they document a parameter named obj when it is called osc, and they list return values for a void function (osc_resend_read()'s block has no closing indent either). Both functions also end with EXIT but have no matching ENTRY.
reply PS15 2026-07-28 05:13 Gerrit AI review for Lustre osc_cache.c:3509 — This changes a successful discard into a reported error. osc_extent_finish() passes it to osc_completion() -> cl_page_complete() -> vvp_vmpa
Gerrit AI review for Lustre PS15 · 2026-07-28 05:13
This changes a successful discard into a reported error. osc_extent_finish() passes it to osc_completion() -> cl_page_complete() -> vvp_vmpage_error(), which calls mapping_set_error(inode->i_mapping, -EREMOTEIO), so the next fsync()/close() on the file returns EREMOTEIO where it previously returned 0.

Since osc_extent_finish() never resends, what does the "unrecoverable error" buy here? If the intent is to report discarded dirty data, -EIO would at least also trigger ll_dirty_page_discard_warn(), which vvp_vmpage_error() skips for -EREMOTEIO.
reply PS15 2026-07-28 05:13 Gerrit AI review for Lustre osc_request.c:2530 — This replaces rc for any non-zero error, not just the recoverable ones the old code handled, and imp_generation is bumped by ptlrpc_deactiva
Gerrit AI review for Lustre PS15 · 2026-07-28 05:13
This replaces rc for any non-zero error, not just the recoverable ones the old code handled, and imp_generation is bumped by ptlrpc_deactivate_import_nolock() on ordinary disconnect/failover as well as on eviction.

So after a failover an -ENOSPC, -EDQUOT or -ETIMEDOUT BRW failure now reaches the application as EBADF via mapping_set_error(). It also silences ll_dirty_page_discard_warn(), which vvp_vmpage_error() only calls for -ESHUTDOWN/-EINTR/-EIO, so the "dirty page discarded" console warning disappears for this case. Was the intent just to suppress the resend, rather than to overwrite the error the caller sees?
owner Alexey Lyashkov · uploader Alexey Lyashkov · PS15 uploaded 51d ago · NEW · open in Gerrit ↗
commit message
LU-17604 osc: rework resend logic

use an osc extents to resend a data after recoverable error hit.
it covers a problems with local ENOMEM errors caused a data lost.

HPe-bug-id: LUS-11863
Signed-off-by: Alexey Lyashkov <alexey.lyashkov@hpe.com>
Change-Id: I0f53f992c54d472c3af99d0608cf031720afa626
58097 master J !B ✓T ✓R 0/2
LU-17916 clio: switch to struct folio
reviewing Shaun Tancheff · CI green — awaiting your review
4 unresolved XL +910 −852
20h
janitor run: 2 failing config(s), none unique to this patch — janitor results
7 optional test failure(s) — informational
build #129600 SUCCESS · tests all Maloo sessions
no vote yet: James Simmons, Qian Yingjin, Andreas Dilger, Timothy Day
patchsets:
+43 earlier PS1 02-17 PS2 02-17 PS3 02-18 PS4 02-18 PS5 02-18 PS6 02-21 PS7 02-21 PS8 02-26 PS9 03-18 PS10 03-29 PS11 04-08 PS12 04-08 PS13 04-08 PS14 05-26 PS15 06-18 PS16 06-18 PS17 06-22 PS18 08-10 PS19 09-09 PS20 09-29 PS21 10-02 PS22 10-06 PS23 10-07 PS24 11-18 PS25 01-31 PS26 01-31 PS27 01-31 PS28 03-08 PS29 03-10 PS30 03-14 PS31 03-15 PS32 04-04 PS33 05-07 PS34 05-09 PS35 05-17 PS36 05-30 PS37 06-17 PS38 06-17 PS39 07-22 James Simmons PS40 07-22 James Simmons PS41 07-22 James Simmons PS42 07-23 James Simmons PS43 08-02
PS44 08-02 PS45 08-06 PS46 08-13 PS47 08-16 PS48 08-17
threads: 4 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS48 2026-08-18 13:04 Gerrit AI review for Lustre folio.h:233 — (minor) ll_dom_finish_open() was the last caller of ll_read_cache_page() and it now calls ll_read_cache_folio() directly, so this wrapper is
Gerrit AI review for Lustre PS48 · 2026-08-18 13:04
(minor) ll_dom_finish_open() was the last caller of ll_read_cache_page() and it now calls ll_read_cache_folio() directly, so this wrapper is dead. Same for wbe_folio_folio() added below - all three arms of it are unreferenced. Worth removing both while the header is being reworked?
reply PS48 2026-08-18 13:04 Gerrit AI review for Lustre cl_object.h:786 — (minor) This was raised on patchset 41 with the ask to avoid growing cl_page, and the field did move down to sit next to the cp_kmem_index/c
Gerrit AI review for Lustre PS48 · 2026-08-18 13:04
(minor) This was raised on patchset 41 with the ask to avoid growing cl_page, and the field did move down to sit next to the cp_kmem_index/cp_kmem_size union - but the growth is still there, because a 4-byte field cannot live in the 2-byte hole that follows the union.

Working the offsets on x86-64:

    cp_batch     ends at 56
    bitfield unit   56..59  (cp_layer_offset[] + the :2/:4/:1 fields)
    kmem union      60..61
    cp_pgno         64..67  (4-byte aligned, so 62..63 stays a hole)
    cp_owner        72..79
    cp_sync_io      80..87

sizeof(struct cl_page) goes 80 -> 88, of which 6 bytes are new padding.

A 16-bit field would fit the hole, but it cannot hold the index: these folios come from user memory, and a 1GiB hugetlb buffer gives folio_page_idx() values up to 262143. So if the 8 bytes really are unavoidable here, would it be worth saying so in the commit message so the point can be closed, rather than leaving it looking fixed?
reply PS48 2026-08-18 13:04 Gerrit AI review for Lustre cl_page.c:630 — (minor) When @index is not the folio's own index this quietly returns NULL rather than an error, and cl_page_find() treats that the same as
Gerrit AI review for Lustre PS48 · 2026-08-18 13:04
(minor) When @index is not the folio's own index this quietly returns NULL rather than an error, and cl_page_find() treats that the same as "no cl_page yet":

    cl_page_find() -> cl_page_from_folio(folio, idx, true)  /* NULL */
                   -> cl_page_alloc() -> vvp_page_init()
                   -> folio_attach_private(folio, cl_page)

So a differing index would attach a second cl_page over the first, stranding the reference folio_attach_private() took for it. Every caller passes folio->index today and everything is order 0, so it cannot happen yet - but this is the helper the multi-page work will build on. Would a LASSERT(index == folio->index) here (or dropping the parameter until sub-page lookup is real) pin the contract down?
reply PS48 2026-08-18 13:04 Gerrit AI review for Lustre osc_page.c:603 — (minor) This was the only user of folio_test_mlocked_page(), so LC_HAVE_FOLIO_TEST_MLOCKED in config/lustre-core.m4 now generates a macro no
Gerrit AI review for Lustre PS48 · 2026-08-18 13:04
(minor) This was the only user of folio_test_mlocked_page(), so LC_HAVE_FOLIO_TEST_MLOCKED in config/lustre-core.m4 now generates a macro nothing references. Should the autoconf test go with it?
owner Shaun Tancheff · uploader Shaun Tancheff · PS48 uploaded 2d ago · NEW · open in Gerrit ↗
commit message
LU-17916 clio: switch to struct folio

Switch cl_page from struct page and page based API to
struct folio and the folio API.

Allocate order 0 folios on the buffered I/O path and for the
DIO bounce buffer.

User pages used for DIO can be embedded in large folios so
add support for identifying and tracking the page number inside
a large folio from user pages.

Introduce cl_page_batch* and clarify oti_cl_batch as pending
cl_page objects available for cl_commit_cbt to release additional
grant space in osc_queue_async_io()

HPE-bug-id: LUS-12384
Signed-off-by: Shaun Tancheff <shaun@tancheff.com>
Change-Id: I2c2554d3f5feaf7ec205f4b239bebf688140d874
55936 b2_15 J ✓B ✓T ✓R 2/1
LU-17482 llite: short read could mess up next read offset
reviewing Etienne AUJAMES · CI green — awaiting your review
LTS15 S +35 −4
23h
1 optional test failure(s) — informational
build #106610 SUCCESS · tests all Maloo sessions
reviews: Stephane Thiell +1 2025-12-11 18:51 · Andreas Dilger +1 2026-08-18 22:58
no vote yet: Qian Yingjin, Zhenyu Xu
owner Etienne AUJAMES · uploader Etienne AUJAMES · PS1 uploaded 743d ago · NEW · backport · open in Gerrit ↗
commit message
LU-17482 llite: short read could mess up next read offset

When read reaches EOF, it could read data from stale pagecache, but
we need to restore the iocb->ki_pos so that next read could continue
from the correct offset.

Lustre-change: https://review.whamcloud.com/53827
Lustre-commit: 35fb413683affe9d41f3521259c260de6caf81d9

Fixes: 4468f6c9d9 ("LU-16025 llite: adjust read count as file got truncated")
Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: Ib8b62c41bf65f8efec82dda53fcfbdb68ad08b38
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Qian Yingjin <qian@ddn.com>
Reviewed-by: Patrick Farrell <patrick.farrell@oracle.com>
Signed-off-by: Etienne AUJAMES <eaujames@ddn.com>
67175 master J ✗1B ✓T ✓R 2/2−
LU-19778 osd-ldiskfs: don't unlock DIO folios in osd_read_prep cache-hit path
reviewing Minh · CI green — awaiting your review
2 unresolved XS +2 −1
5d
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
recovery-small@ldiskfs:test_155seen in 7 other reviews
reviews: Qian Yingjin +1 2026-07-26 13:53 · Andreas Dilger +1 2026-07-26 13:54 · Oleg Drokin -1 2026-08-02 03:33
patchsets: PS1 07-11 PS2 07-26 Andreas Dilger
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2026-08-14 04:27 Andreas Dilger COMMIT_MSG:15 — We can just remove that sentence instead...
Gerrit AI review for Lustre PS2 · 2026-07-27 21:18
(minor) Can a cached read really mark a DIO folio uptodate? A PagePrivate2 folio is allocated by folio_alloc() in osd_get_page() and never inserted into inode->i_mapping, so get_folio_create()/get_folio_lock() can never return it, and osd_get_page() calls folio_clear_uptodate() on every DIO folio just before handing it out.

The only other places osd-ldiskfs sets PG_uptodate are dio_complete_routine() and osd_write_commit(), both of which run in an earlier RPC and are undone by that folio_clear_uptodate(). That leaves the OBD_FAIL_OST_FAKE_RW SetPageUptodate() two lines above the cache-hit test as the only in-tree way to reach this branch with a DIO folio.

If there is another path, it would be good to name it here, because in that case skipping the read is itself wrong (see the comment on osd_io.c).
Andreas Dilger PS2 · 2026-08-14 04:27
We can just remove that sentence instead...
reply PS2 2026-08-14 04:27 Andreas Dilger COMMIT_MSG:28 — Again, too much LLM-generated explanation is just causing more issues than it solves.
Gerrit AI review for Lustre PS2 · 2026-07-27 21:18
(minor) This reproducer does not seem to match the mechanism above. Neither sanity test_155g nor test_63a sets fail_loc=0x238, and read_cache_enable=0 on its own only selects the DIO path - it does not make a DIO folio uptodate. LU-19778 is filed as "sanity test_428: osd_write_commit() ASSERTION( PageLocked(lnb[i].lnb_page) ) failed".

A sequence that does hold together, and matches the ticket:

    test_399b (test_fake_rw read) truncates $tfile to up to 1GB.
    fsize > od_readcache_max_filesize (default totalram/64), so
    osd_bufs_get() picks cache=false and every lnb gets a DIO folio.
    fail_loc=0x238 then makes every folio uptodate, so all of them take
    the cache-hit branch and get unlocked; iobuf->dr_npages stays 0 so
    the guarded early-release loop never runs.
    test_428 later writes 128MB files (also over the filesize limit) on
    the same service thread and trips the write-side LASSERT.

That also explains why this survived since LU-13309: it needs fail_loc=0x238 *and* the non-cached path, and test_399a/399b only take the non-cached path when the test file exceeds readcache_max_filesize.
Andreas Dilger PS2 · 2026-08-14 04:27
Again, too much LLM-generated explanation is just causing more issues than it solves.
owner Minh · uploader Andreas Dilger · PS2 uploaded 24d ago · NEW · open in Gerrit ↗
commit message
LU-19778 osd-ldiskfs: don't unlock DIO folios in osd_read_prep cache-hit path

DIO folios (PagePrivate2) are per-thread state kept locked in
oti_dio_folios[] for their lifetime.  osd_get_page() only calls
folio_lock() on first allocation; reused slots skip the lock.

When any path marks a DIO folio uptodate before osd_read_prep() sees
it — e.g. OBD_FAIL_OST_FAKE_RW (0x238) calling SetPageUptodate(), or
a cached read hitting the same folio — the cache-hit branch fires and
unlock_page() is called on a folio that must remain locked.

On the next RPC the same thread reuses the (now unlocked) folio without
re-locking it.  Two crash sites follow:

  - Read path: if the file offset maps to a sparse region, osd_do_bio()
    submits no bio, the early-release loop runs, and
    LASSERT(PageLocked(page)) panics the server.

  - Write path: if a subsequent write RPC obtains the same DIO folio,
    osd_write_commit() hits LASSERT(PageLocked(lnb[i].lnb_page)).
    This is the scenario reproduced by toggling read_cache_enable=0
    while concurrent writes are in flight (test_155g + test_63a).

Guard the unlock_page() call with !PagePrivate2(), mirroring the
identical guard already present in the early-release loop below.

Fixes: e790df5fa38d ("LU-13309 osd-ldiskfs: speedup osd_bufs_get/put")
TLC-bug-id: TLU-184
Signed-off-by: Minh Diep <mdiep@thelustrecollective.com>
Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Change-Id: I58cecf2cdf89f41a01fdeb14e2e304e9b6588f94
65074 master J !B ✓T ✓R 1/2
LU-20078 osc: call osc_extent_tree_dump() without object lock held
reviewing Qian Yingjin · CI green — awaiting your review
XS +4 −1
7d
janitor run: 3 failing config(s), none unique to this patch — janitor results
5 optional test failure(s) — informational
build #123368 SUCCESS · tests all Maloo sessions
reviews: Timothy Day +1 2026-07-28 04:59
no vote yet: James Simmons, Marc Vef, Andreas Dilger
owner Qian Yingjin · uploader Qian Yingjin · PS1 uploaded 138d ago · NEW · open in Gerrit ↗
commit message
LU-20078 osc: call osc_extent_tree_dump() without object lock held

The panic of next_extent() in osc_extent_tree_dump() is caused by:
- osc_extent_tree_dump() walks the extent rbtree without holding
  object lock: osc_object_lock().
- LU-19014 added a new debug call to osc_extent_tree_dump() in
  osc_cache_writeback_range() for the IO_PRIO_DIRTY_EXCEEDED path.
- next_extent() assumes the passed exctent is still in the tree
  and asserts on RB_EMPTY_NODE(); This is reasonable for normal
  tree walkers under the object lock, but unsafe for an unlocked
  debug dump.

This patch fixes it by removing the debug code added by LU-19014:
osc_extent_tree_dump().
This patch also fixes the similar call of osc_extent_tree_dump() in
osc_enter_cache() by adding object lock.

Fixes: c413d2ede5 ("LU-19014 memcg: fix client hang in
balance_dirty_page()")

Change-Id: I7802d951f1c01d92a9240e7b4d395104b52c8969
Signed-off-by: Yingjin Qian <qian@ddn.com>
67192 master J !B ✓T ✓R 0/2
LU-19014 osc: check the linkage of extent while oe_hp set
reviewing Yang Sheng · CI green — awaiting your review
7 unresolved S +15 −16
23d
janitor run: 9 failing config(s), none unique to this patch — janitor results
build #127512 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger, Mikhail Pershin, Alex Zhuravlev
patchsets: PS1 07-13 PS2 07-13
threads: 7 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2026-07-27 20:19 Gerrit AI review for Lustre COMMIT_MSG:10 — (typo) "aother" -> "another".
Gerrit AI review for Lustre PS2 · 2026-07-27 20:19
(typo) "aother" -> "another".
reply PS2 2026-07-27 20:19 Gerrit AI review for Lustre COMMIT_MSG:12 — The body only describes the oe_hp linkage check in osc_cache_writeback_range(). It does not mention the second change in the diff: osc_exten
Gerrit AI review for Lustre PS2 · 2026-07-27 20:19
The body only describes the oe_hp linkage check in osc_cache_writeback_range(). It does not mention the second change in the diff: osc_extent_release() no longer does a synchronous osc_io_unplug() for high-priority I/O, plus the matching kernel-doc edit.

That hunk reverts part of c413d2ede5 ("LU-19014 memcg: fix client hang in balance_dirty_pages()") on the same ticket. Is it intentional, and should it be split into its own change with its own Change-Id so it can be reviewed and landed separately?

It would also help to state the user-visible symptom (writeback of the extent stalls, and osc_lock_flush()->osc_cache_wait_range() then waits on it) rather than only "inconsistent state".
reply PS2 2026-07-27 20:19 Gerrit AI review for Lustre COMMIT_MSG:13 — This fixes a hang/stall, so it should carry a Fixes: tag. The skip-if-oe_hp branch this patch rewrites was added by 61a01fd9b689, which also
Gerrit AI review for Lustre PS2 · 2026-07-27 20:19
This fixes a hang/stall, so it should carry a Fixes: tag. The skip-if-oe_hp branch this patch rewrites was added by 61a01fd9b689, which also introduced oo_hp_exts and the oe_hp bookkeeping; before it the code asserted !oe_hp instead of returning early.

Fixes: 61a01fd9b689 ("LU-17190 osc: client-side high prio I/O under blocking AST")
reply PS2 2026-07-27 20:19 Gerrit AI review for Lustre osc_cache.c:586 — (minor) Since the function is unconditionally asynchronous again after this change, the word "asynchronously" is now accurate - it reads as
Gerrit AI review for Lustre PS2 · 2026-07-27 20:19
(minor) Since the function is unconditionally asynchronous again after this change, the word "asynchronously" is now accurate - it reads as if the removal went the wrong way.
reply PS2 2026-07-27 20:19 Gerrit AI review for Lustre osc_cache.c:665 — Dropping the synchronous unplug for high-priority I/O reverses what c413d2ede5 added under this same ticket. On the ll_write_end() path, wb-
Gerrit AI review for Lustre PS2 · 2026-07-27 20:19
Dropping the synchronous unplug for high-priority I/O reverses what c413d2ede5 added under this same ticket. On the ll_write_end() path, wb->dirty_exceeded sets prio = IO_PRIO_URGENT, which reaches here via vvp_io_write_commit()->cl_io_commit_async()->lov_io_commit_async()->cl_io_extent_release(). With osc_io_unplug() the writer ran osc_check_rpcs() in its own context and issued the RPC before returning to balance_dirty_pages(); now it only does schedule_work(&cli->cl_writeback_work).

What makes the async unplug sufficient here now? If it is a fix for something (a lock-order or latency problem in the synchronous path), that reasoning is worth capturing in the commit message.
reply PS2 2026-07-27 20:19 Gerrit AI review for Lustre osc_cache.c:3298 — (typo) "could has been" -> "could have been".
Gerrit AI review for Lustre PS2 · 2026-07-27 20:19
(typo) "could has been" -> "could have been".
reply PS2 2026-07-27 20:19 Gerrit AI review for Lustre osc_cache.c:3306 — list_empty() only distinguishes "on no list at all" from "on some list" - it does not say the extent is on oo_hp_exts. A cached extent can a
Gerrit AI review for Lustre PS2 · 2026-07-27 20:19
list_empty() only distinguishes "on no list at all" from "on some list" - it does not say the extent is on oo_hp_exts. A cached extent can already be linked on oo_urgent_exts (set by an earlier non-hp writeback, or by osc_cache_truncate_end()) or on oo_full_exts (osc_extent_release() when oe_nr_pages == oe_mppr). For those, list_empty() is false, so list stays NULL and the extent never reaches oo_hp_exts even though hp was requested.

Before this patch the hp branch set list = &obj->oo_hp_exts unconditionally and list_move_tail() pulled the extent off whichever list it was on.

The caller that loses out is the blocking-AST path osc_lock_flush()->osc_cache_writeback_range(..., hp=1, ...). With no entry on oo_hp_exts, osc_makes_hprpc() is false and osc_check_rpcs() takes

    if (osc_max_rpc_in_flight(cli, osc) &&
        list_empty(&osc->oo_hp_exts) &&
        list_empty(&osc->oo_hp_read_exts)) { ...; break; }

so the flush no longer bypasses cl_max_rpcs_in_flight - the case LU-17190 added the HP list for. osc_lock_flush() then blocks in osc_cache_wait_range() waiting for that extent.

Would keeping the hp request unconditional work, with the linkage test only for the "already marked by another thread" case?

    if (hp) {
        ext->oe_hp = 1;
        list = &obj->oo_hp_exts;
    } else if (ext->oe_hp) {
        if (list_empty(&ext->oe_link))
            list = &obj->oo_hp_exts;
    } else if (!ext->oe_urgent) {

As written, setting ext->oe_hp = 1 before the test also creates a state the patch is trying to avoid: oe_hp set while the extent sits on the urgent or full list. Since osc_extent_find() then skips it, it can no longer be reopened for writes either.
owner Yang Sheng · uploader Yang Sheng · PS2 uploaded 37d ago · NEW · open in Gerrit ↗
commit message
LU-19014 osc: check the linkage of extent while oe_hp set

An extent must be linked to its object when the oe_hp was set.
However, it could be set before writeback. Meantime, aother
thread might remove it from the list (e.g. truncate). So we
would leave an extent in an inconsistent state.

Signed-off-by: Yang Sheng <ys@whamcloud.com>
Change-Id: Ie6f9cefcbf50c02c2fdf7a26fcde874675609d10
66069 master J !B ✓T ✓R 2/2−
LU-18461 llapi: replace pattern with bitmask
reviewing Alexey Lyashkov · CI green — awaiting your review
11 unresolved M +164 −84
40d
janitor run: 4 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-5 failed 3× RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
build #125895 SUCCESS · tests all Maloo sessions
reviews: Andrew Perepechko +1 2026-06-19 13:44 · Alexander Boyko +1 2026-06-10 07:29
no vote yet: Andreas Dilger, Artem Blagodarenko
patchsets: PS1 05-21 PS2 05-25 PS3 05-26 PS4 06-02
threads: 10 need your reply · 0 waiting on others · 1 own notes · 0 bot
reply PS4 2026-07-06 08:47 Oleg Drokin COMMIT_MSG:10 — what's zerooffset? we have zero hits in the entirety of the codebase and commit messages.
Oleg Drokin PS4 · 2026-07-06 08:47
what's zerooffset? we have zero hits in the entirety of the codebase and commit messages.
reply PS4 2026-07-06 08:47 Oleg Drokin patchset comment — Did we ever get a confirmation this is not going to affect application api / old/new library linked apps problems?
Oleg Drokin PS4 · 2026-07-06 08:47
Did we ever get a confirmation this is not going to affect application api / old/new library linked apps problems?
reply PS4 2026-06-09 13:36 James Simmons lustre_user.h:32 — This should be giving a checkpatch error.
James Simmons PS4 · 2026-06-09 13:36
This should be giving a checkpatch error.
reply PS1 2026-05-21 21:58 Andreas Dilger lustreapi.h:1031 — I would assume that the old `LLAPI_LAYOUT_RAID0 = 0` value would also be accepted? Otherwise, this will introduce a compatibility issue. E
Andreas Dilger PS1 · 2026-05-21 21:58
I would assume that the old `LLAPI_LAYOUT_RAID0 = 0` value would also be accepted?  Otherwise, this will introduce a compatibility issue.  Even so, this means that applications using the new library would break with ones compiled using the old headers.

Maybe a better option would be to add `LLAPI_LAYOUT_RAID0_SET = 0x0000040ULL` that can be set and checked in the code, but still keep the `LLAPI_LAYOUT_RAID0 = 0` value for compatibility for a few years.
reply PS1 2026-05-21 21:58 Andreas Dilger lustre_user.h:32 — (style) should use `#ifndef BIT`
Andreas Dilger PS1 · 2026-05-21 21:58
(style) should use `#ifndef BIT`
reply PS1 2026-05-21 21:58 Andreas Dilger lustre_user.h:117 — (style) spurious blank line
Andreas Dilger PS1 · 2026-05-21 21:58
(style) spurious blank line
reply PS2 2026-05-26 11:42 Alexey Lyashkov sanity.sh:2431 — my bad. some debuging.
wc-checkpatch PS2 · 2026-05-25 06:34
(style)  line length of 95 exceeds 80 columns
Andreas Dilger PS2 · 2026-05-26 08:07
It isn't clear what these lines are for? They should be removed.
Alexey Lyashkov PS2 · 2026-05-26 11:42
my bad. some debuging.
reply PS2 2026-05-26 11:42 Alexey Lyashkov lfs.c:5034 — it's in 80 chars i think.
wc-checkpatch PS2 · 2026-05-25 06:34
(style)  line length of 89 exceeds 80 columns
Andreas Dilger PS2 · 2026-05-26 08:07
This can be wrapped easily
Alexey Lyashkov PS2 · 2026-05-26 11:42
it's in 80 chars i think.
note PS4 2026-06-19 18:00 Patrick Farrell lfs.c:3397 — Is this change correct? Swaps from overstriping to & raid0? Definitely a semantic shift?
Patrick Farrell PS4 · 2026-06-19 18:00
Is this change correct?  Swaps from overstriping to & raid0?  Definitely a semantic shift?
reply PS1 2026-05-21 21:58 Andreas Dilger liblustreapi_layout.c:2048 — (defect?) this should be in the same order as lov_pattern_names[], since `setstripe` doesn't produce any output, so the `getstripe` output i
Andreas Dilger PS1 · 2026-05-21 21:58
(defect?) this should be in the same order as lov_pattern_names[], since `setstripe` doesn't produce any output, so the `getstripe` output is what matters.
reply PS1 2026-05-21 21:58 Andreas Dilger liblustreapi_layout.c:2065 — (minor) there is now `llapi_convert_str2mask()` that implements this in userspace, like `cfs_str2mask()` in the kernel. It needs a simple `
Andreas Dilger PS1 · 2026-05-21 21:58
(minor) there is now `llapi_convert_str2mask()` that implements this in userspace, like `cfs_str2mask()` in the kernel.  It needs a simple `bit2str()` helper function, instead of reimplementing it for each set it bitmasks. 

It would probably make sense for `llapi_lov_string_pattern()` and `llapi_lov_pattern_string()' to be converted over to use that as well.
owner Alexey Lyashkov · uploader Alexey Lyashkov · PS4 uploaded 78d ago · NEW · open in Gerrit ↗
commit message
LU-18461 llapi: replace pattern with bitmask

use a bitmask as llapi_pattern, to simplify
overstripe / zerooffset handing.
Fix usage a LOV_PATTERN_PARITY on the userspace (llapi)
code.


Signed-off-by: Alexey Lyashkov <alexey.lyashkov@hpe.com>
Change-Id: I29a6943af1f58ed3834076d3bb3d618dd6b83983
67038 master J –B ✓T ✓R 1/2
LU-20446 man3: add llapi_find.3 and llapi_find_with_cb.3
reviewing Emoly Liu · CI green — awaiting your review
L +930 −0
41d
build #127186 SUCCESS
reviews: Andreas Dilger +1 2026-07-06 05:48
no vote yet: Qian Yingjin
owner Emoly Liu · uploader Emoly Liu · PS1 uploaded 47d ago · NEW · open in Gerrit ↗
commit message
LU-20446 man3: add llapi_find.3 and llapi_find_with_cb.3

Add llapi_find.3 and llapi_find_with_cb.3 man pages to document APIs
llapi_find() and llapi_find_with_cb(), including traversal algorithms,
matching conditions, work-stealing queue architecture for parallel
mode, and usage examples.

Test-Parameters: forbuildonly
Signed-off-by: Emoly Liu <emoly@whamcloud.com>
Change-Id: I043051307671449987d0511c7ad9a123bab1cafe
62952 master J !B ✓T ✓R 1/2
LU-19687 lov: skip foreign layouts for regular file IO
reviewing Alex Zhuravlev · CI green — awaiting your review
6 unresolved S +39 −2
56d
janitor run: 2 failing config(s), none unique to this patch — janitor results
build #126871 SUCCESS · tests all Maloo sessions
reviews: Nikitas Angelinas +1 2026-06-23 08:32
no vote yet: Andreas Dilger, Zhenyu Xu
patchsets:
+13 earlier PS1 12-08 PS2 12-09 PS3 12-09 PS4 01-09 PS5 01-28 PS6 02-11 PS7 02-18 PS8 03-10 PS9 03-12 PS10 03-30 Andreas Dilger PS11 04-29 PS12 04-29 PS13 05-02
PS14 05-29 PS15 05-29 PS16 06-08 PS17 06-12 PS18 06-23
threads: 6 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS10 2026-04-27 22:25 Nikitas Angelinas lod_lov.c:830 — cfs_fail_val isn't used in the added tests, fwiw
Nikitas Angelinas PS10 · 2026-04-27 22:25
cfs_fail_val isn't used in the added tests, fwiw
reply PS10 2026-04-27 22:25 Nikitas Angelinas lod_lov.c:830 — the braces aren't necessary and could be removed; same for the CFS_FAIL_CHECK() below
Nikitas Angelinas PS10 · 2026-04-27 22:25
the braces aren't necessary and could be removed; same for the CFS_FAIL_CHECK() below
reply PS10 2026-04-29 07:34 Alex Zhuravlev lod_lov.c:832 — well, no, I wanted to make it looking "mostly fine"
Nikitas Angelinas PS10 · 2026-04-27 22:25
Could this be cpu_to_le32(0xffffffff), same as below?
Alex Zhuravlev PS10 · 2026-04-29 07:34
well, no, I wanted to make it looking "mostly fine"
reply PS10 2026-04-27 22:25 Nikitas Angelinas sanity-flr.sh:4653 — Should the skip() use ">=" or maybe the version_code() should use ">"? Same in test_210d()
Nikitas Angelinas PS10 · 2026-04-27 22:25
Should the skip() use ">=" or maybe the version_code() should use ">"? Same in test_210d()
reply PS12 2026-04-29 21:02 Nikitas Angelinas sanity-flr.sh:4680 — The version seems to have moved to 2.17.52
Nikitas Angelinas PS12 · 2026-04-29 21:02
The version seems to have moved to 2.17.52
reply PS14 2026-05-29 11:43 Nikitas Angelinas sanity-flr.sh:4709 — The version seems to have moved to 2.17.53
Nikitas Angelinas PS14 · 2026-05-29 11:43
The version seems to have moved to 2.17.53
owner Alex Zhuravlev · uploader Alex Zhuravlev · PS18 uploaded 57d ago · NEW · open in Gerrit ↗
commit message
LU-19687 lov: skip foreign layouts for regular file IO

If the client sees a bad layout in lsm_unpackmd_comp_md_v1(),
for example if the OST index is invalid after the retry loop in
lsme_unpack_comp()->lsme_unpack() waits for newly-added OSTs to
appear in the client configuration (LU-17334) and fails, then
lsm_unpackmd_comp_md_v1() changes the component type to use
LOV_MAGIC_FOREIGN (in memory only).

If a regular IO (such a write) meets a foreign component layout
in lov_io_layout_at(), then just skip it instead of LASSERT().

Add sanity-flr.sh test_210c and test_210d to verify this case.

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I51c6dbc196d70d8d03a165b9877f7617b85dfac1
64927 master J !B ✓T ✓R 1/2
LU-20016: Simple benchmark tool for EC computations
reviewing Ronnie Sahlberg · CI green — awaiting your review
ec2 2 unresolved M +233 −1
97d
janitor run: 6 failing config(s), none unique to this patch — janitor results
build #124990 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2026-05-13 19:18
no vote yet: Hiroshi Nishida, Marc Vef
patchsets:
+1 earlier PS1 03-26
PS2 03-27 PS3 03-27 PS4 05-13 Andreas Dilger PS5 05-13 Andreas Dilger PS6 05-13 Janitor Bot
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS3 2026-05-13 05:08 Andreas Dilger ec_perf_bench.c:153 — (minor) it is confusing to me that this is using `p` = parity and `m` = total stripe count. I thought the standard was `k` = data, `m` = pa
Andreas Dilger PS3 · 2026-05-13 05:08
(minor) it is confusing to me that this is using `p` = parity and `m` = total stripe count.  I thought the standard was `k` = data, `m` = parity, as with patch https://review.whamcloud.com/61965 ("LU-12187 lfs: add EC setstripe support with k+m notation").
reply PS6 2026-05-14 08:42 Andreas Dilger ec_perf_bench.c:119 — It would be useful if this printed some information about the local CPU architecture (e.g. `model name` and `cpu MHz` from `/proc/cpuinfo` o
Andreas Dilger PS6 · 2026-05-14 08:42
It would be useful if this printed some information about the local CPU architecture (e.g. `model name` and `cpu MHz` from `/proc/cpuinfo` or equivalent from `lscpu`) and the EC implementation that was selected, so that we have some way to identify the results that are generated.  Otherwise, we get a bunch of numbers and no way to identify how they relate.
owner Ronnie Sahlberg · uploader Janitor Bot · PS6 uploaded 98d ago · NEW · open in Gerrit ↗
commit message
LU-20016: Simple benchmark tool for EC computations

Note that in the ISL-L library, computing parities and recovering
lost data stripes is the same operation: ec_encode_data().
The difference is not in the computations but rather the content
of the coefficient matrix.

The cost of these operations are primarily bound by the number
of stripes to compute which amusingly means that
recovering a single lost stripe should be FASTER than
generating two parities.

Test-Parameters: trivial testlist=sanity-ec
Signed-off-by: Ronnie Sahlberg <rsahlberg@whamcloud.com>
Change-Id: I61f409b631a8f4aefe0ceb2628e56f58f4c3a07c
59222 master J !B ✓T ✓R 1/2−
LU-19009 llite: auto revise ra_page with read_ahead_kb=N settting
reviewing Qian Yingjin · CI green — awaiting your review
stalled 278d S +38 −3
278d
janitor run: 42 failing config(s), none unique to this patch — janitor results
1 optional test failure(s) — informational
build #113388 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2025-05-15 19:55
owner Qian Yingjin · uploader Qian Yingjin · PS1 uploaded 462d ago · NEW · open in Gerrit ↗
commit message
LU-19009 llite: auto revise ra_page with read_ahead_kb=N settting

Lustre explicitly disables the kernel readahead for the bdi at
the mount time because it is incompatible with the Lustre-internal
readahead (which takes into account the file striping, data
consistency locking, etc).

Setting read_ahead_kb explicitly will trigger the kernel readahead
which is out the control of Lustre and result in the checking in
->readpage() failed:
echo 1024 > /sys/devices/virtual/bdi/$FSNAME-*/read_ahead_kb.

In the original PCC codes, we have already fixed the ra_pages of
file read-ahead state for the read path and mmap I/O.
In this patch, we improve it to also revise the bdi ra_pages
automatically (which may set with non-zero value wrongly by user)
once detect that the ra_pages is not zero.

Add sanity/test_853 to verify it works as expected.

Signed-off-by: Yingjin Qian <qian@ddn.com>
Change-Id: I119ef6c6ce542e70f4ed59069c2756d5d39d1785
57682 b2_15 J ✗2B ✓T ✓R 2/1
LU-17364 llite: don't use stale page.
reviewing Etienne AUJAMES · CI green — awaiting your review
LTS15 stalled 281d S +44 −1
281d
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
runtests@ldiskfs+DNE:test_1seen in 11 other reviews
sanityn@zfs:test_51cseen in 1 other review
1 optional test failure(s) — informational
build #117698 SUCCESS · tests all Maloo sessions
reviews: Alexey Lyashkov +1 2025-10-24 07:54 · Zhenyu Xu +1 2025-11-11 02:09
no vote yet: Alexander Zarochentsev
patchsets: PS1 01-08 PS2 10-21 PS3 10-22
owner Etienne AUJAMES · uploader Etienne AUJAMES · PS3 uploaded 301d ago · NEW · backport · open in Gerrit ↗
commit message
LU-17364 llite: don't use stale page.

using stale page for write might confuse a read path,
which expect any IO page have PG_uptodate flag set,
and it caused an panic with removing from IO.

Lustre-commit: dad3bed7617fba895db169facde91856e89c2b08
Lustre-change: https://review.whamcloud.com/53550

Test-Parameters: testlist=sanityn env=SLOW=yes,ONLY=16k,ONLY_REPEAT=10
Test-Parameters: testlist=sanityn env=SLOW=yes,ONLY=16k,ONLY_REPEAT=10
Test-Parameters: testlist=sanityn env=SLOW=yes,ONLY=16k,ONLY_REPEAT=10
Test-Parameters: testlist=sanityn env=SLOW=yes,ONLY=16k,ONLY_REPEAT=10
Test-Parameters: testlist=sanityn env=SLOW=yes,ONLY=16k,ONLY_REPEAT=10
Test-Parameters: testlist=sanityn env=SLOW=yes,ONLY=16k,ONLY_REPEAT=10
Signed-off-by: Alexey Lyashkov <alexey.lyashkov@hpe.com>
Change-Id: Ia01129ceaecf53d8d9f301c26cd2d65122f6a267
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Alexander Zarochentsev <alexander.zarochentsev@hpe.com>
Signed-off-by: Etienne AUJAMES <eaujames@ddn.com>
61801 b2_15 J ✗2B ✓T ✓R 1/1
LU-19113 llite: cfs_delete_from_page_cache() keep page locked
reviewing Etienne AUJAMES · CI green — awaiting your review
stalled 299d S +6 −6
299d
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
recovery-small@ldiskfs+DNE:test_24bseen in 1 other review
replay-single1@ldiskfs+DNE:test_90seen in 1 other review
1 optional test failure(s) — informational
build #117871 SUCCESS · tests all Maloo sessions
reviews: Bruno Faccini +1 2025-10-24 12:43
no vote yet: Zhenyu Xu
patchsets: PS1 10-13 PS2 10-24
owner Etienne AUJAMES · uploader Etienne AUJAMES · PS2 uploaded 299d ago · NEW · backport · open in Gerrit ↗
commit message
LU-19113 llite: cfs_delete_from_page_cache() keep page locked

Like in other places where generic_error_remove_folio() is
also being called, in both Lustre and Kernel, page should not
be unlocked prior to call it in cfs_delete_from_page_cache().

This was also allowing a race where page->mapping may become
NULL.

Taking an extra reference is also useless if page not unlocked
anymore.

Lustre-change: https://review.whamcloud.com/59829
Lustre-commit: 3dec26990738ad3f5008d46ee9d3d03df7454925

Fixes: 738e69d4b9 ("LU-16292 llite: delete_from_page_cache not exported")
Signed-off-by: Bruno Faccini <bfaccini@nvidia.com>
Change-Id: If39575f4339afe460b3b1c955201e8f9cdfeb871
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Zhenyu Xu <bobijam@whamcloud.com>
Signed-off-by: Etienne AUJAMES <eaujames@ddn.com>
59271 b2_15 J !B ✓T ✓R 1/1
LU-16612 llite: protect cp_state with vmpage lock
reviewing Etienne AUJAMES · CI green — awaiting your review
LTS15 stalled 301d XS +5 −1
301d
janitor run: 3 failing config(s), none unique to this patch — janitor results
1 optional test failure(s) — informational
build #117697 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2025-10-22 08:07
patchsets: PS1 05-16 PS2 10-22
owner Etienne AUJAMES · uploader Etienne AUJAMES · PS2 uploaded 301d ago · NEW · backport · open in Gerrit ↗
commit message
LU-16612 llite: protect cp_state with vmpage lock

cl_page_make_ready() calls cl_page_io_start() without vmpage lock
protection, and that could mess up cl_page's cp_state/cp_owner.

Lustre-change: https://review.whamcloud.com/50180
Lustre-commit: d03b038d0dd8360dc896ceb7f3cee99245551cb8

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: Id0df7e14246aa561494a9b6e581cebc55241c4b9
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Etienne AUJAMES <eaujames@ddn.com>
37105 master J !B ✓T ✓R 0/2
LU-12325 ldlm: mode downgrade, wire changes
reviewing Mikhail Pershin · CI green — awaiting your review
stalled 327d L +205 −140
327d
janitor run: 1 failing config(s), none unique to this patch — janitor results
5 optional test failure(s) — informational
build #116933 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger, Vitaly Fertman
patchsets: PS3 06-05 PS4 06-06 PS5 06-21 PS6 09-24 PS7 09-25
owner Mikhail Pershin · uploader Mikhail Pershin · PS7 uploaded 328d ago · NEW · open in Gerrit ↗
commit message
LU-12325 ldlm: mode downgrade, wire changes

Wire protocol changes to pass conflicting lock mode
from server, so client may use it for better lock
convert decisions.

Second part of lock convert with mode:
- add l_conflict_mode field in ldlm_lock. This is
  combined mode of conflicting server locks.
- add l_convert_mode field in ldlm_lock. This is lock mode
  to convert to during lock convert.
- split inodebits policy to in-memory and on-wire structures,
  some fields are not needed on-wire and in-memory structure
  shouldn't combine try_bits and cancel_bits in union.
- use liw_ prefix for wire policy struct members
- re-organize ldlm_bl_desc2lock(), add ldlm_bl_lock2desc()
  to pass lock convert info between lock and descriptor
  and allow mode convert for other lock types
- update swabber and wiretest according with changes

Test-Parameters: testlist=dom-performance
Signed-off-by: Mikhail Pershin <mpershin@whamcloud.com>
Change-Id: Ib001216aa1812623871cb167d6cd6fcabdf38cb3
57522 master J !B ✓T ✓R 0/2−
LU-13047 wbc: embeded MemFS for the basic MetaWBC framework
reviewing Qian Yingjin · CI green — awaiting your review
stalled 358d 3 unresolved XL +1323 −4
358d
janitor run: 1 failing config(s), none unique to this patch — janitor results
build #109936 SUCCESS · tests all Maloo sessions
no vote yet: Lai Siyao, Andreas Dilger
patchsets: PS1 12-19 PS2 12-19 PS3 12-19 PS4 12-19 PS5 12-25
threads: 3 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2024-12-20 02:19 Lai Siyao lustre_user.h:3057 — This struct contains data more than just state, and since it's for WBC files, is wbc_file_data better?
Lai Siyao PS2 · 2024-12-20 02:19
This struct contains data more than just state, and since it's for WBC files, is wbc_file_data better?
reply PS2 2024-12-20 04:34 Qian Yingjin wbc.h:17 — We already have pcc_inode, pcc_dentry naming for PCC.
Lai Siyao PS2 · 2024-12-20 02:19
The name is bit misleading, maybe wbc_inode_info?
Qian Yingjin PS2 · 2024-12-20 04:34
We already have pcc_inode, pcc_dentry naming for PCC.
To keep the name consistency with PCC, IMHO, these names is minor, should be okey.
reply PS2 2024-12-20 02:19 Lai Siyao wbc.h:27 — ditto, wbc_dentry_data?
Lai Siyao PS2 · 2024-12-20 02:19
ditto, wbc_dentry_data?
owner Qian Yingjin · uploader Qian Yingjin · PS5 uploaded 602d ago · NEW · open in Gerrit ↗
commit message
LU-13047 wbc: embeded MemFS for the basic MetaWBC framework

In the MetaWBC design, a memory file system (called MemFS for
short, which is based on VFS and similar to ramfs or tmpfs) is
embededded into the main Lustre file system which is based on the
persistent storage backend.
- I/O (data/metadata) first tries to write into MemFS;
- Using writeback mechanism in Linux kernel, delay writing back
  dirty data from MemFS into the main file system Lustre;

It can not only obtain the fast access speed of the embedded MemFS
but also can maintain the data persistence.

This is the MemFS code part of the basic MetaWBC framework.

Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: If2c7acd7f3c3fdbf6ba721ef658b5db43f2e83e6
54854 master J ✗2B ✓T ✓R 1/2
LU-17583 mdt: don't fetch LOOKUP lock for getattr/open by fid
reviewing Etienne AUJAMES · CI green — awaiting your review
stalled 379d M +39 −11
379d
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@ldiskfs+DNE:test_39dseen in 23 other reviews
1 optional test failure(s) — informational
build #105053 SUCCESS · tests all Maloo sessions
reviews: Lai Siyao +1 2024-09-11 02:21
no vote yet: Qian Yingjin, Andreas Dilger
patchsets: PS1 04-19 PS2 04-19 PS3 05-29 PS4 05-29
owner Etienne AUJAMES · uploader Etienne AUJAMES · PS4 uploaded 812d ago · NEW · open in Gerrit ↗
commit message
LU-17583 mdt: don't fetch LOOKUP lock for getattr/open by fid

LOOKUP lock is used to revalidate client dentry so we should only
return one if the MDT does a directory lookup.

This causes the sanity-hsm 408 failed because there are no longer
conflicts between OPEN_RW|LOOKUP cached lock and the copytool
LOOKUP|OPEN_RO lock. A client close request for a write open handle
can be sent after the file is archived and marked the file as dirty.

The patch fixes this server-side by revoking client open write locks
when handling an archive request.
Client-side, we use early cancel for local open write locks when
sending an archive request.

Test-Parameters: testlist=sanity-hsm env=ONLY=408,ONLY_REPEAT=20
Signed-off-by: Etienne AUJAMES <eaujames@ddn.com>
Change-Id: Id5807a1ba3c8b563405c89325083247f6d666102
56016 master J !B ✓T ✓R 0/2−
LU-16789 utils: use AIO for 'lfs migrate'
reviewing Feng Lei · CI green — awaiting your review
stalled 379d XL +1204 −226
379d
janitor run: 2 failing config(s), none unique to this patch — janitor results
build #114801 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger, Nikitas Angelinas
patchsets:
+33 earlier PS1 08-13 PS2 08-13 PS3 08-13 PS4 08-13 PS5 08-13 PS6 08-14 PS7 08-14 PS8 08-16 PS9 08-16 PS10 08-29 PS11 08-29 PS12 08-29 PS13 08-29 PS14 08-30 PS15 09-05 PS16 09-05 PS17 09-05 PS18 09-06 PS19 09-12 PS20 09-23 PS21 09-29 PS22 09-29 PS23 10-09 PS24 10-09 PS25 10-18 PS26 01-17 PS27 02-08 PS28 02-10 PS29 02-10 PS30 02-22 Andreas Dilger PS31 02-23 PS32 02-23 Andreas Dilger PS33 03-26
PS34 06-25 PS35 07-04 PS36 07-04 PS37 07-04 PS38 07-04
owner Feng Lei · uploader Feng Lei · PS38 uploaded 411d ago · NEW · open in Gerrit ↗
commit message
LU-16789 utils: use AIO for 'lfs migrate'

Create a mini async IO framework with ll_aio_ prefix. The framework
is a wrapper layer of libaio to run asynchronous IO. However, it
can also run traditional synchronous IO with POSIX APIs without
any code change if io queue is initialized with sync_mode=true.
Or if libaio is not availble on the running system, the framework
will fallback to synchronous mode automatically.

Create function ll_aio_copy() to copy data from one fd to another.
The function can work in async/sync mode, with different buffer size
and different number of async IO tasks. The function also integrates
checking file, stats report and IO throttling.

Due to LU-18032, the last chunk of file may not be aligned so cannot
be read/written by libaio. So the last partial chunk will be
read/written in sync mode with POSIX API in sync mode even if
ll_aio_copy() is called in async mode.

In async mode, 2 more fields are appended to stats report:
read_tasks and write_tasks, which indicate how many tasks are pending
on reading/writing data when the stats is printed.

Replace migrate_copy_data() with an AIO version of
migrate_copy_data_aio() based on ll_aio_copy().
Command 'lfs migrate' and 'lfs mirror extend' will benefit from it.

Add --aio-tasks=TASKS parameter for 'lfs migrate' and
'lfs mirror extend' command. It tells how many AIO tasks will be
started to transfer data.

But if --aio-tasks=0, the IO will fallback to synchronous mode. All
the read/write will be performed in synchronous mode sequencially.

Add --chunk-size=SIZE_MB parameter to specify the buffer chunk size
in MB used to transfer data.

Signed-off-by: Feng Lei <flei@whamcloud.com>
Test-Parameters: trivial
Test-Parameters: testlist=sanity-flr
Change-Id: I50521db8e84d745edaaad791cb44fc3107ae411d
36924 master J !B ✓T ✓R 0/2
LU-13047 wbc: foundation framework for WBC
reviewing Qian Yingjin · CI green — awaiting your review
stalled 380d XL +3719 −133
380d
janitor run: 2 failing config(s), none unique to this patch — janitor results
3 optional test failure(s) — informational
build #106353 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger, Oleg Drokin, Li Xi
patchsets:
+13 earlier PS34 11-25 PS35 11-25 PS36 02-23 PS37 02-24 PS38 05-15 PS39 05-15 PS40 05-16 PS41 05-16 PS42 05-16 PS43 05-16 PS44 05-24 PS45 05-31 PS46 06-07
PS47 06-11 PS48 06-14 PS49 07-01 PS50 07-19 PS51 07-25
owner Qian Yingjin · uploader Qian Yingjin · PS51 uploaded 755d ago · NEW · open in Gerrit ↗
commit message
LU-13047 wbc: foundation framework for WBC

This patch refined the foundation framework for WBC based on
Oleg's implementation.
Also it implements the simple lazy flush mode for WBC.

Test-Parameters: testlist=sanity-wbc clientdistro=el9.3
Test-Parameters: testlist=sanity-wbc clientdistro=ubuntu2204
Test-Parameters: testlist=sanity-wbc,sanity-wbc
Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: I612136b8297ccfdbfdeca1e4d271fe94f511f645
46857 master J !B ✓T ✓R 0/2
LU-15656 sec: deprecate legacy root squash
reviewing Sebastien Buisson · CI green — awaiting your review
stalled 380d 4 unresolved M +74 −1
380d
janitor run: 1 failing config(s), none unique to this patch — janitor results
3 optional test failure(s) — informational
build #96535 SUCCESS · tests all Maloo sessions
no vote yet: James Simmons, Etienne AUJAMES, Andreas Dilger
patchsets:
+5 earlier PS1 03-17 PS2 03-17 PS3 03-18 PS4 10-07 Andreas Dilger PS5 10-07 Andreas Dilger
PS6 04-17 PS7 06-29 PS8 06-30 PS9 07-03 PS10 07-31
threads: 4 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS4 2022-10-07 17:54 Andreas Dilger conf-sanity.sh:3677 — (style) prefer (( ... )) for numeric comparisons
Andreas Dilger PS4 · 2022-10-07 17:54
(style) prefer (( ... )) for numeric comparisons
reply PS4 2022-10-07 17:54 Andreas Dilger conf-sanity.sh:3867 — (style) prefer (( ... ))
Andreas Dilger PS4 · 2022-10-07 17:54
(style) prefer (( ... ))
reply PS5 2022-11-02 14:22 Sebastien Buisson conf-sanity.sh:3674 — We do. See for instance sanity-sec test_15 and test_17.
Andreas Dilger PS5 · 2022-10-21 22:36
Do we have equivalent nodemap-based root squash tests somewhere?  It would also be useful to update the LOM to indicate that this set_param/conf_param mechanism is deprecated and to use nodemap instead (preferably referencing a section that explains the details of how to do it).
Sebastien Buisson PS5 · 2022-11-02 14:22
We do. See for instance sanity-sec test_15 and test_17.

Regarding LOM, let's discuss in dedicated patch #46740.
reply PS6 2023-06-29 14:14 Sebastien Buisson conf-sanity.sh:3925 — It makes sense, I will add this fail_loc and update the test.
Patrick Farrell PS6 · 2023-05-16 15:35
Is it possible to create a test to test that we can still modify legacy root squash settings?  Perhaps using a fail_loc to disable the new check?  I get this slight nervous feeling testing only one direction that we might break this in some distant future :)
Patrick Farrell PS6 · 2023-05-16 15:36
To be clear 'using a fail loc to disable the new check' so we can create the legacy setting for testing
Sebastien Buisson PS6 · 2023-06-29 14:14
It makes sense, I will add this fail_loc and update the test.
owner Sebastien Buisson · uploader Sebastien Buisson · PS10 uploaded 1115d ago · NEW · open in Gerrit ↗
commit message
LU-15656 sec: deprecate legacy root squash

The legacy root squash mechanism relies on 2 parameters:
- the root_squash parameter specifies the UID and GID to which the
  root user is squashed when accessing the Lustre file system;
- the nosquash_nids parameter specifies the set of clients to which
  root squash does not apply.
This legacy mechanism has become redundant with the ability provided
by the nodemap feature to implement root squash, in a much more
flexible way.
Sor for new file systems, prevent setting the root_squash and
nosquash_nids parameters. For upgraded file systems, maintain the
ability to change the already set values.

Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Change-Id: I439f2ad2272592da73066c7f8edf8b7a360a2286
48007 master J ✗5B ✓T ✓R 0/2
LU-16033 llite: refine ll_use_fast_io() for stride mode
reviewing Zhenyu Xu · CI green — awaiting your review
stalled 380d M +106 −40
380d
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
conf-sanity2@zfs:test_38seen in 3 other reviews
conf-sanity2@zfs:test_39seen in 7 other reviews
conf-sanity2@zfs:test_40seen in 7 other reviews
conf-sanity2@zfs:test_41aseen in 5 other reviews
sanity-lfsck@ldiskfs+DNE:test_18eseen in 3 other reviews
1 optional test failure(s) — informational
build #88814 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin
patchsets: PS1 07-21 PS2 08-05
owner Zhenyu Xu · uploader Zhenyu Xu · PS2 uploaded 1475d ago · NEW · open in Gerrit ↗
commit message
LU-16033 llite: refine ll_use_fast_io() for stride mode

This patch refines ll_use_fast_io() to detect whether current
readahead window allows issuing readahead RPC for stride mode.

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: Id49d947a0433f94bc7b63fe4d528d7c32b7b789f
49225 master J ✗5B ✓T ✓R 1/2−
LU-16285 ldlm: output the conflict lock
reviewing Yang Sheng · CI green — awaiting your review
stalled 380d S +13 −10
380d
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_418seen in 30 other reviews
sanity-pcc@ldiskfs+DNE:test_1aseen in 1 other review
sanity-pcc@ldiskfs+DNE:test_1bseen in 3 other reviews
sanity-pcc@zfs:test_1aseen in 2 other reviews
sanity-pcc@zfs:test_1bNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
2 optional test failure(s) — informational
build #90832 SUCCESS · tests all Maloo sessions
reviews: Emoly Liu +1 2022-11-25 01:54 · Andreas Dilger -1 2023-02-09 02:11
patchsets: PS1 11-23 PS2 11-23
owner Yang Sheng · uploader Yang Sheng · PS2 uploaded 1365d ago · NEW · open in Gerrit ↗
commit message
LU-16285 ldlm: output the conflict lock

Print out the detail info while lock BL timout
so we know which lock conflict with it.

Signed-off-by: Yang Sheng <ys@whamcloud.com>
Change-Id: I5698341a694d64aabea0f28f97216ccbd57f5641
49997 master J ✓B ✓T ✓R 1/2
LU-16538 llite: use lock flags to distingush OPEN ibits lock
reviewing Qian Yingjin · CI green — awaiting your review
stalled 380d M +93 −16
380d
2 optional test failure(s) — informational
build #92385 SUCCESS · tests all Maloo sessions
reviews: Mikhail Pershin +1 2023-05-30 15:26
patchsets: PS1 02-15 PS2 02-16
owner Qian Yingjin · uploader Qian Yingjin · PS2 uploaded 1280d ago · NEW · open in Gerrit ↗
commit message
LU-16538 llite: use lock flags to distingush OPEN ibits lock

In the original Lustre design, an OPEN ibits lock returned to a
client is mandatorily bound to a specific lock mode:
- FMODE_WRITE	CW
- FMODE_EXEC	PR
- other		CR

For DoM files, it would better to return DOM bits combined with
OPEN bits (DOM|OPEN) in an ibits lock to a client during open().
It can reduce the lock traffic for the possible subsquent read
(PR lock mode) or write (PW lock mode).
Thus, three lock flags are defined to distingush the OPEN ibits
lock with different open modes:
  open_mode	lock_flag		lock_mode
- FMODE_WRITE	LDLM_FL_OPEN_WRITE	CW or PW
- FMODE_EXEC	LDLM_FL_OPEN_EXEC	PR
- other		LDLM_FL_OPEN_READ	CR or PR

These new lock flags are for internal use on the client only and
declared in "lustre/include/lustre_dlm_flags" and store in
@ldlm_lock->l_flags.
Thus, this is a client-side patch.

Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: I921c42a557760d5485b4c28156c74a2b5bda2f91
53367 master J ✓B ✓T ✓R 1/2
LU-13031 ofd: add jobid xattr to ost object
reviewing Thomas Bertschinger · CI green — awaiting your review
stalled 380d 2 unresolved L +242 −115
380d
1 optional test failure(s) — informational
build #104591 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2024-05-06 01:03
no vote yet: James Simmons, Mikhail Pershin
patchsets:
+1 earlier PS1 12-07
PS2 12-19 PS3 01-09 PS4 04-30 PS5 05-01 PS6 05-05
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS3 2024-01-09 01:56 Thomas Bertschinger sanity.sh:20721 — I thought it made sense to have the OST inode checking be its own test, rather than add it into check_seq_oid(), so that it can easily test
Thomas Bertschinger PS3 · 2024-01-09 01:56
I thought it made sense to have the OST inode checking be its own test, rather than add it into check_seq_oid(), so that it can easily test multiple settings for the parameter.

Right now I've duplicated the logic of parsing "lfs getstripe" output to get the object's filename -- do you think would it be worthwhile to try to refactor this so that the 2 tests call some common function do to this?
reply PS3 2024-01-09 01:56 Thomas Bertschinger sanity.sh:20756 — does this need "skip parallel run"? I saw that the check_seq_oid() test (27z) has it. I wasn't sure if that's because the usage of "sync" mi
Thomas Bertschinger PS3 · 2024-01-09 01:56
does this need "skip parallel run"? I saw that the check_seq_oid() test (27z) has it. I wasn't sure if that's because the usage of "sync" might interfere with other tests, or something.
owner Thomas Bertschinger · uploader Thomas Bertschinger · PS6 uploaded 836d ago · NEW · open in Gerrit ↗
commit message
LU-13031 ofd: add jobid xattr to ost object

This stores the jobid of the process that creates an object in an
extended attribute in the OST inode for that object. The name of the
extended attribute is determined by a new sysfs parameter
"obdfilter.*.job_xattr". The default value is "user.job". A value of
"NONE" means that the jobid will not be stored.

This builds on 23a2db28dcf1 ("LU-13031 jobstats: store jobid in xattr
when files are created"), which stores the jobid in the MDT inode
for the file. Note that the jobid need not be the same on the MDT
inode and the OST inodes, because the process that creates a file
might not be the same process that performs the initial write to a
given stripe.

Signed-off-by: Thomas Bertschinger <bertschinger@lanl.gov>
Change-Id: I9ab1aa394def3869c8d87a252bd9f95962f214f6
39732 master J ✗1B ✓T ✓R 0/2−
LU-13214 llite: pass error to upper layers
reviewing Alexander Boyko · CI green — awaiting your review
stalled 387d M +96 −11
387d
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
sanity1@zfs:test_27TNEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
2 optional test failure(s) — informational
build #103819 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Alexander Zarochentsev, Vitaly Fertman, Zhenyu Xu, Andreas Dilger
patchsets:
+2 earlier PS3 12-16 PS4 12-18
PS5 02-19 PS6 02-28 PS7 03-08 PS8 03-25 PS9 04-03
owner Alexander Boyko · uploader Alexander Boyko · PS9 uploaded 868d ago · NEW · open in Gerrit ↗
commit message
LU-13214 llite: pass error to upper layers

vvp_io_write_start ignores error when some bytes were
written. For a stripe case this could lead to a wrong data
and wrong assumptions at user level. For example write at two
stripes, first is DOM was written 1 page from 16, seocond is OST
and was fully written. Data is [0:4096]-hole-[64K:1M], user level
see successfull write for 4096 bytes, and file position at the 1MB.

The patch passes error to the upper layer to notify caller about
write error.
Also sanity test 281 is added. Test simulate MDT enospace, this
leads to no grants on a client, and partial fail write data-hole-data.

HPE-bug-id: LUS-8414
Signed-off-by: Alexander Boyko <alexander.boyko@hpe.com>
Change-Id: I56ff460ca536549009ff2105669f4eed37021dde
56710 master J !B ✓T ✓R 1/2
LU-18169 llite: wait unstable pages to be committed during umount
reviewing Qian Yingjin · CI green — awaiting your review
stalled 387d S +46 −0
387d
janitor run: 2 failing config(s), none unique to this patch — janitor results
2 optional test failure(s) — informational
build #112294 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2025-04-11 07:56
no vote yet: James Simmons, Neil Brown
patchsets: PS1 10-16 PS2 10-24 PS3 04-07
owner Qian Yingjin · uploader Qian Yingjin · PS3 uploaded 499d ago · NEW · open in Gerrit ↗
commit message
LU-18169 llite: wait unstable pages to be committed during umount

The client must wait unstable pages to be committed to the stable
storage during umount.

If a data OBD is in disconnected state during umount, the client
will wait for a certain time (30 seconds, by default) at most, and
then force to deactive the OBD to cleanup the uncommitted unstable
pages.
Otherwise, it will fail the replay-single.sh/test_89.

Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: I307b5e6063f6d726e5f84018ebeecd58bac860ab
56197 master J !B ✓T ✓R 0/2
LU-18169 osc: add accounting for WB_WRITEBACK for memcg
reviewing Qian Yingjin · CI green — awaiting your review
stalled 495d M +37 −17
495d
janitor run: 2 failing config(s), none unique to this patch — janitor results
2 optional test failure(s) — informational
build #112305 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+1 earlier PS1 08-29
PS2 10-17 PS3 10-24 PS4 10-25 PS5 04-07 PS6 04-07
owner Qian Yingjin · uploader Qian Yingjin · PS6 uploaded 499d ago · NEW · open in Gerrit ↗
commit message
LU-18169 osc: add accounting for WB_WRITEBACK for memcg

This patch adds accounting of unstable pages for WB_WRITEBACK per
inode.

Moreover, we only need to check unstable pages for buffered I/O as
an I/O requests for direct I/O is already committed to the stable
storage on the server when the client receives the reply.
Thus, there is no need to do unstable pages accounting for direct
I/O.

Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: Ibcc0c02d6e1a0d3d678edd5fa2941a31a08343e9
54481 master J –B ✓T ✓R 0/2
LU-10499 pcc: asynchronous PCCRO attach command support
reviewing Qian Yingjin · CI green — awaiting your review
stalled 691d M +150 −29
691d
6 optional test failure(s) — informational
build #107922 SUCCESS · tests all Maloo sessions
no vote yet: James Simmons, Andreas Dilger, Feng Lei
patchsets: PS1 03-21 PS2 09-23 PS3 09-24 PS4 09-25 PS5 09-26
owner Qian Yingjin · uploader Qian Yingjin · PS5 uploaded 692d ago · NEW · open in Gerrit ↗
commit message
LU-10499 pcc: asynchronous PCCRO attach command support

Currently PCCRO attach via the command "lfs pcc attach" will block
during the data copying.
There is a requirement that this command can also do data copy
asynchronously. Thus we add an option "--async|-A" to the command
which will not block while the file data is being fetched.

Add sanity-pcc/test_{103, 104} to verify that it works correctly.

EX-bug-id: EX-6373
Change-Id: I6f31190c8b9e9b9876b34f8e484c6c8b7f16b6db
Signed-off-by: Qian Yingjin <qian@ddn.com>

Awaiting review — CI not green yet

(47)
45882 master J ✓B ✓T …R 0/2
LU-8130 ldlm: convert ldlm_resource hash to rhashtable
reviewing James Simmons · awaiting review (CI not green yet)
upstream 15 unresolved L +441 −347
1h
build #129749 SUCCESS · tests all Maloo sessions · test queue
no vote yet: Qian Yingjin, Shaun Tancheff, Alexey Lyashkov, Neil Brown, Vitaly Fertman, Timothy Day, Sergey Cheremencev, Andreas Dilger, Oleg Drokin
patchsets:
+80 earlier PS1 12-17 PS2 12-17 PS3 12-18 PS4 12-21 PS5 12-08 PS6 12-12 Neil Brown PS7 10-15 PS8 10-18 PS9 10-19 PS10 10-28 PS11 12-13 PS12 02-08 PS13 02-08 PS14 02-08 PS15 02-10 PS16 02-15 PS17 02-22 PS18 02-23 PS19 03-23 PS20 03-29 PS21 03-30 PS22 03-31 PS23 03-31 PS24 04-01 PS25 04-02 PS26 04-02 PS27 04-02 PS28 04-02 PS29 04-02 PS30 04-08 PS31 04-12 PS32 04-17 PS33 04-23 PS34 06-04 PS35 06-05 PS36 06-24 PS37 06-30 PS38 06-30 PS39 09-07 Shaun Tancheff PS40 09-08 Shaun Tancheff PS41 09-08 Shaun Tancheff PS42 09-08 PS43 10-15 Shaun Tancheff PS44 11-25 Shaun Tancheff PS45 12-21 Shaun Tancheff PS46 04-23 Shaun Tancheff PS47 05-02 PS48 05-03 PS49 07-25 PS50 12-12 PS51 12-15 PS52 12-19 PS53 01-26 PS54 02-05 PS55 02-09 PS56 02-13 PS57 02-14 PS58 02-14 PS59 02-19 PS60 03-06 PS61 04-13 PS62 04-16 PS63 04-30 PS64 05-11 Shaun Tancheff PS65 05-12 Shaun Tancheff PS66 05-13 Shaun Tancheff PS67 05-26 Shaun Tancheff PS68 05-28 Shaun Tancheff PS69 05-28 Janitor Bot PS70 05-28 Shaun Tancheff PS71 05-28 Shaun Tancheff PS72 05-28 PS73 05-29 Shaun Tancheff PS74 05-29 Shaun Tancheff PS75 05-29 Shaun Tancheff PS76 06-04 Shaun Tancheff PS77 06-06 Shaun Tancheff PS78 06-19 Shaun Tancheff PS79 06-20 PS80 08-05
PS81 08-07 PS82 08-09 PS83 08-12 PS84 08-14 PS85 08-19
threads: 15 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS83 2026-08-13 04:17 Gerrit AI review for Lustre COMMIT_MSG:41 — cl2osc() is container_of_safe() on oo_cl, which sits at offset 0, so IS_ERR_OR_NULL(cl2osc(obj)) is the same test as IS_ERR_OR_NULL(obj). It
Gerrit AI review for Lustre PS83 · 2026-08-13 04:17
cl2osc() is container_of_safe() on oo_cl, which sits at offset 0, so IS_ERR_OR_NULL(cl2osc(obj)) is the same test as IS_ERR_OR_NULL(obj). It checks the cl_object pointer that was passed in, not whether the osc_object still exists; an object that was freed while still referenced is an ordinary pointer, not NULL or an ERR_PTR.

Could the message name the pointer that actually becomes NULL or an error, and where it is set that way?
reply PS84 2026-08-14 15:22 Misc Code Checks Robot (Gatekeeper helper) COMMIT_MSG:1 — ldlm/ldlm_resource.c:
Misc Code Checks Robot (Gatekeeper helper) PS84 · 2026-08-14 15:22
ldlm/ldlm_resource.c:
 warn: ldlm_resource_get():inconsistent indenting
reply PS84 2026-08-15 08:31 Gerrit AI review for Lustre COMMIT_MSG:27 — This paragraph explains the bucket-array sizing change, but not that the bucket selection function changed shape as well. ldlm_res_hop_hash(
Gerrit AI review for Lustre PS84 · 2026-08-15 08:31
This paragraph explains the bucket-array sizing change, but not that the bucket selection function changed shape as well. ldlm_res_hop_hash() summed all four words of the res_id; ldlm_res_hop_fid_hash() hashes only the FID in name[0] and name[1]. Worth a sentence, since it changes which resources share an ldlm_ns_bucket.

The new LDLM_FL_KUNIT_TESTING flag in lustre_dlm_flags.h isn't mentioned anywhere in the body either - is that meant to be part of this patch, or a separate cleanup of the bare BIT(63) uses?
reply PS85 2026-08-19 18:22 Misc Code Checks Robot (Gatekeeper helper) COMMIT_MSG:1 — ldlm/ldlm_resource.c:
Misc Code Checks Robot (Gatekeeper helper) PS85 · 2026-08-19 18:22
ldlm/ldlm_resource.c:
 warn: ldlm_resource_get():inconsistent indenting
reply PS83 2026-08-13 04:17 Gerrit AI review for Lustre lustre_dlm.h:1204 — lr_hash and lr_rcu share storage, so call_rcu(&res->lr_rcu, ...) writes over lr_hash.next. That was safe with cfs_hash because every chain w
Gerrit AI review for Lustre PS83 · 2026-08-13 04:17
lr_hash and lr_rcu share storage, so call_rcu(&res->lr_rcu, ...) writes over lr_hash.next. That was safe with cfs_hash because every chain walk held the bucket lock; rhashtable readers walk the chain under rcu_read_lock() alone.

ldlm_resource_putref() -> __ldlm_resource_putref_final() does rhashtable_remove_fast(), then ldlm_resource_free(res, true) -> call_rcu(), and call_rcu() sets head->next = NULL right away. RCU removal requires the removed node's next pointer to stay intact for a grace period, because a reader can already be sitting on that node when it is unlinked.

A concurrent ldlm_resource_get() walking that bucket then loads NULL as the next pointer. rht_is_a_nulls() only tests bit 0, so NULL is not recognised as end-of-chain: the loop body runs with pos == NULL, rht_obj() subtracts head_offset, and rs_cmp() dereferences the result.

struct lu_object_header keeps loh_hash and loh_rcu as separate fields, with a comment about exactly this requirement. Should lr_rcu be split out of the union the same way?
reply PS84 2026-08-15 08:31 Gerrit AI review for Lustre lustre_dlm_flags.h:387 — This isn't a bug, but BIT() is unsigned long while l_flags is __u64, so BIT(63) is out of range on a 32-bit build. Every other flag in this
Gerrit AI review for Lustre PS84 · 2026-08-15 08:31
This isn't a bug, but BIT() is unsigned long while l_flags is __u64, so BIT(63) is out of range on a 32-bit build. Every other flag in this file spells the value out as 0x...ULL with a /* bit N */ comment and provides ldlm_is_/ldlm_set_ helpers - consider matching that:

    #define LDLM_FL_KUNIT_TESTING 0x8000000000000000ULL /* bit 63 */
    #define ldlm_is_kunit_testing(_l) LDLM_TEST_FLAG((_l), 1ULL << 63)
    #define ldlm_set_kunit_testing(_l) LDLM_SET_FLAG((_l), 1ULL << 63)

which would also let the two ldlm_lock.c users read like the surrounding flag tests.
reply PS84 2026-08-15 08:31 Gerrit AI review for Lustre l_lock.c:34 — This gives lock_res_and_lock() a new failure return, but only 8 of the 111 call sites look at the result; the rest go straight on to unlock_
Gerrit AI review for Lustre PS84 · 2026-08-15 08:31
This gives lock_res_and_lock() a new failure return, but only 8 of the 111 call sites look at the result; the rest go straight on to unlock_res_and_lock(), which is unlock_res(lock->l_resource) on the very pointer that produced the error.

As far as I can tell the error can't fire today: l_resource is only cleared by the rcu_assign_pointer(lock->l_resource, NULL) in ldlm_lock_put(), which runs after h_ref has already reached zero, so no caller that holds a lock reference can observe it, and nothing assigns an ERR_PTR to l_resource at all.

So either it is unreachable, and the error plumbing added through ldlm_lock_enqueue(), ldlm_callback_handler(), osc_ldlm_glimpse_ast() and osc_extent_release() could go, or it is reachable and the other 103 callers need converting in the same patch. Which is it?
reply PS83 2026-08-13 04:17 Gerrit AI review for Lustre ldlm_reclaim.c:176 — ns_reclaim_start is now only ever assigned 0 in ldlm_namespace_new(); the ldlm_res_to_ns(res)->ns_reclaim_start++ that used to advance it we
Gerrit AI review for Lustre PS83 · 2026-08-13 04:17
ns_reclaim_start is now only ever assigned 0 in ldlm_namespace_new(); the ldlm_res_to_ns(res)->ns_reclaim_start++ that used to advance it went away with the per-bucket bookkeeping in ldlm_reclaim_lock_cb(). rcd_start is therefore always 0, the rcd_skip/rcd_cursor fast-forward below can never trigger, and every reclaim pass restarts on the same resources. nsb_reclaim_start is incremented but no longer read either.

That drops the round-robin scan the ldlm_reclaim_res() comment still describes, and it is not mentioned in the commit message. Is the intent to keep the round-robin, or to remove it and the now-dead rcd_skip/rcd_cursor/rcd_start fields with it?

Also worth noting the units no longer match: rcd_cursor counts resources while tbl->size is a bucket count.
reply PS80 2026-08-07 07:20 Gerrit AI review for Lustre ldlm_resource.c:1166 — (minor) This comment doesn't match the new scheme. With the rhashtable the table holds no reference of its own: an entry is removed exactly
Gerrit AI review for Lustre PS80 · 2026-08-07 07:20
(minor) This comment doesn't match the new scheme. With the rhashtable the table holds no reference of its own: an entry is removed exactly when `lr_refcount` hits zero in `__ldlm_resource_putref_final()`, and `rs_cmp()` hides zero-refcount entries from lookups. During the walk the only extra reference is the `refcount_inc_not_zero()` in `ldlm_resource_for_each()`.

So the count printed below is one lower than the number of stray references, and a resource holding exactly one leaked reference no longer produces the message at all.
reply PS82 2026-08-10 03:20 Gerrit AI review for Lustre ldlm_resource.c:1174 — (style) This is a new exported API and it has no kerneldoc, unlike `ldlm_resource_get()` right below. Worth documenting the callback contrac
Gerrit AI review for Lustre PS82 · 2026-08-10 03:20
(style) This is a new exported API and it has no kerneldoc, unlike `ldlm_resource_get()` right below. Worth documenting the callback contract, in particular that the callback owns no reference (it must not putref), that a non-zero return stops the walk, and that a callback can be invoked more than once for the same resource - `rhashtable_walk_start()` here is the void variant, so the `-EAGAIN` a resize produces is discarded and the walk restarts from slot 0. That last property is what forced the `l_pending_chain` check in `ldlm_chain_lock_for_replay()`, and every future callback author needs to know about it.
reply PS83 2026-08-14 14:45 James Simmons ldlm_resource.c:1160 — Changing this in the past broke things. Not ready to try this change.
Gerrit AI review for Lustre PS83 · 2026-08-13 04:17
The comment says the remaining reference is the resource being in the hashtable, but the table holds no reference: ldlm_resource_putref() removes the entry exactly when lr_refcount reaches 0. The extra count seen here is the one ldlm_resource_for_each() took before calling the callback, so a resource with a single leaked reference reads 2 and is skipped, which is the case this function exists to report, and the printed count is one low.

The old cfs_hash iterator also held a reference during the callback, which is why the previous code used -1. Should this be <= 1 and refcount - 1?
James Simmons PS83 · 2026-08-14 14:45
Changing this in the past broke things. Not ready to try this change.
reply PS84 2026-08-15 08:31 Gerrit AI review for Lustre ldlm_resource.c:869 — Hashing only the extracted FID drops name[2] and name[3] from the bucket choice, and those are significant for some resource types:
Gerrit AI review for Lustre PS84 · 2026-08-15 08:31
Hashing only the extracted FID drops name[2] and name[3] from the bucket choice, and those are significant for some resource types:

    fid_build_quota_res_name(): name[2]/name[3] = quota id
    mdt_handler.c: name[LUSTRE_RES_ID_HSH_OFF] = lh->mlh_pdo_hash
    lfsck_lib.c:   name[LUSTRE_RES_ID_HSH_OFF] = full_name_hash(...)

Every per-ID quota resource under one global-index FID now lands in a single ns_rs_buckets[] entry, and likewise every PDO/LFSCK name lock under one parent FID. The lookup hash is unaffected (rhashtable keys on the full ldlm_res_id), but nsb_count and nsb_at_estimate are per-bucket, and nsb_at_estimate feeds obd_at_get()/obd_at_measure() via ldlm_lock_to_ns_at(). Was collapsing those onto one bucket intended?
owner James Simmons · uploader James Simmons · PS85 uploaded 3h ago · NEW · open in Gerrit ↗
commit message
LU-8130 ldlm: convert ldlm_resource hash to rhashtable

Using an rhashtable allows lockless lookup at the cost
of rcu freeing of entries.

When we find an entry, we need to atomically check the
reference hasn't dropped to zero.

When adding an entry, we might find an existing entry which is in the
process of being removed - with a zero refcount.  In that case
we loop around and repeat the lookup.  To ensure this doesn't
spin, the 'cmp' function will fail any comparison with a resource
which has a zero refcount.

Now that we are using resizing hash tables, we don't need to preconfig
suitable sizes for each namespace.  We can just use the default and
let it grow as needed.  We keep the pre-configured sizes
for the bucket array.  Previously the size of the bucket array was the
difference between nsd_all_bits and nsd_bkt_bits.  As we don't need
nsd_all_bits any more, nsd_bkt_bits is changed to the number of bits
used to choose a bucket.

Walking an rhashtable requires that we manage refcounts ourself, so
a new function, ldlm_resource_for_each() is added to do that.
Note that with this patch we now update a per-table counter
on every insert/remove, which might cause more contention
between CPUs on a busy system.  Hopefully rhashtable will
be enhanced in the near future to support a per-CPU counter
for nelems.

Only use call_rcu() to free slab resources that have been removed
from the rhashtable, other cases can be free immediately.

This change exposes new race conditions in the osc layer so
we add code to check if osc_objects still exist.

Signed-off-by: NeilBrown <neil@brown.name>
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Change-Id: Ie65f6c5f6e246ed6684ade05ddab8740ac8137dd
65690 master J !B ✓T …R 0/2
LU-19458 obdclass: fault_in_readable() can be short
reviewing Alex Zhuravlev · awaiting review (CI not green yet)
6 unresolved S +9 −6
3h
janitor run: 4 failing config(s), none unique to this patch — janitor results
build #129707 SUCCESS · tests all Maloo sessions · test queue
no vote yet: Shaun Tancheff, Andreas Dilger
patchsets:
+5 earlier PS1 05-06 PS2 05-06 PS3 05-07 PS4 05-31 PS5 06-08
PS6 06-12 PS7 06-23 PS8 07-07 PS9 07-13 PS10 08-19
threads: 6 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS7 2026-07-06 05:49 Oleg Drokin COMMIT_MSG:12 — Fixes: ...?
Oleg Drokin PS7 · 2026-07-06 05:49
Fixes: ...?
reply PS9 2026-07-27 23:13 Gerrit AI review for Lustre COMMIT_MSG:11 — The body only covers the fault-in return value, but the diff also restructures the copy loop: `while (true)` becomes `while (count)`, `short
Gerrit AI review for Lustre PS9 · 2026-07-27 23:13
The body only covers the fault-in return value, but the diff also restructures the copy loop: `while (true)` becomes `while (count)`, `short_copies` is now reset after every full-page copy, and the trailing LASSERTF changes from `cdp_page_count - 1` to `cdp_page_count`.

The `short_copies` reset in particular looks load-bearing - without it a multi-page copy that needs one re-fault per page would trip the `short_copies > 2` limit. Could the message describe these changes too, so a reader can tell they are intentional?
reply PS9 2026-07-27 23:13 Gerrit AI review for Lustre COMMIT_MSG:12 — A Fixes: tag was asked for on patchset 7 and is still missing.
Gerrit AI review for Lustre PS9 · 2026-07-27 23:13
A Fixes: tag was asked for on patchset 7 and is still missing.

The incorrect handling of the return value came in with the compat macro and the check itself:

    Fixes: 7194eb6431d2 ("LU-13805 clio: bounce buffer for unaligned DIO")
reply PS7 2026-07-06 05:49 Oleg Drokin cl_io.c:1748 — I guess "left" is misleading here because just liek Claude says, count is what's left to copy, and original_count - count is "copied"?
Oleg Drokin PS7 · 2026-07-06 05:49
I guess "left" is misleading here because just liek Claude says, count is what's left to copy, and original_count - count is "copied"?

From Claude:
(defect) left is set to original_count - count, which is the number of bytes already copied, but the re-fault wants the bytes still to copy, i.e. count. The top-of-function fault-in at the WRITE check uses count for exactly this.

With left = original_count - count, the first loop iteration is broken: if folio_from_iter() returns 0 on the first page (atomic copy of a non-resident page under memory pressure, the case this patch targets), count is still original_count, so left == 0. Then ll_iov_iter_fault_in_readable(iter, 0) returns 0, ret == left holds (0 == 0), and it breaks with -EFAULT before ever retrying. Since nothing was copied, out: returns status, so the write fails with -14 - the symptom LU-19458 is meant to fix.

Did you mean:

 ret = ll_iov_iter_fault_in_readable(iter, count);
 if (ret == count) {
 status = -EFAULT;
 break;
 }
reply PS9 2026-07-27 23:13 Gerrit AI review for Lustre cl_io.c:1687 — This isn't a bug, but the comment no longer matches: a partial fault-in is now accepted and only a completely failed one bails out. Maybe "t
Gerrit AI review for Lustre PS9 · 2026-07-27 23:13
This isn't a bug, but the comment no longer matches: a partial fault-in is now accepted and only a completely failed one bails out. Maybe "try to fault in the userspace iovec; a partial fault-in is fine"?
reply PS9 2026-07-27 23:13 Gerrit AI review for Lustre cl_io.c:1688 — `ll_iov_iter_fault_in_readable()` has two definitions with different return conventions:
Gerrit AI review for Lustre PS9 · 2026-07-27 23:13
`ll_iov_iter_fault_in_readable()` has two definitions with different return conventions:

    #ifdef HAVE_FAULT_IN_IOV_ITER_READABLE
      -> fault_in_iov_iter_readable()  /* size_t, bytes NOT faulted in */
    #else
      -> iov_iter_fault_in_readable()  /* int, 0 or -EFAULT */

The `== count` test only makes sense for the first one. On kernels taking the `#else` branch (config/lustre-core.m4 puts the cut at 5.15, so el8 and its 4.18 kernel land there, and lustre.spec.in still requires kernel >= 4.18) the return is 0 or -EFAULT; -EFAULT promoted to `size_t` can never equal `count`, so this check and the one in the loop body are both dead there and a genuine -EFAULT is dropped.

Would it work to normalise in the macro instead - have the pre-5.15 variant return `bytes` on -EFAULT and 0 otherwise - so both call sites mean the same thing on every supported kernel?
owner Alex Zhuravlev · uploader Alex Zhuravlev · PS10 uploaded 17h ago · NEW · open in Gerrit ↗
commit message
LU-19458 obdclass: fault_in_readable() can be short

kernel's fault_in_iov_iter_readable() can be short due to memory
limitations (e.g. close to OOM), but we can still make progress
by smaller chunks.

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: I20487a8766823281100cf26fbf121c71380ab66c
62757 master J ✓B ✓T …R 0/2
LU-12669 ec: recover data from parity
reviewing Zhenyu Xu · awaiting review (CI not green yet)
ec2 pt_ecro XL +2658 −75
13h
build #129708 SUCCESS · tests all Maloo sessions · test queue
no vote yet: Ronnie Sahlberg, Qian Yingjin, Marc Vef, Andreas Dilger, Timothy Day
patchsets:
+100 earlier PS1 11-27 PS2 11-27 Janitor Bot PS3 12-01 PS4 12-01 Janitor Bot PS5 12-02 PS6 12-02 Janitor Bot PS7 12-05 PS8 12-05 Janitor Bot PS9 12-05 PS10 12-08 PS11 12-08 PS12 12-09 PS13 12-09 PS14 12-11 PS15 12-18 PS16 12-19 PS17 12-24 PS18 12-26 PS19 01-09 PS20 01-09 PS21 01-09 PS22 01-10 PS23 01-12 PS24 01-13 Patrick Farrell PS25 01-13 Patrick Farrell PS26 01-14 Patrick Farrell PS27 01-15 Patrick Farrell PS28 01-16 PS29 01-16 Patrick Farrell PS30 01-18 PS31 01-18 PS32 01-27 PS33 01-29 PS34 01-29 Patrick Farrell PS35 02-02 Patrick Farrell PS36 02-03 PS37 03-12 PS38 03-13 PS39 03-13 PS40 03-18 Ronnie Sahlberg PS41 03-19 PS42 03-27 Ronnie Sahlberg PS43 03-29 Patrick Farrell PS44 03-29 Patrick Farrell PS45 03-29 Ronnie Sahlberg PS46 03-30 Ronnie Sahlberg PS47 03-31 Ronnie Sahlberg PS48 03-31 Patrick Farrell PS49 03-31 Ronnie Sahlberg PS50 04-01 Ronnie Sahlberg PS51 04-01 Ronnie Sahlberg PS52 04-07 Ronnie Sahlberg PS53 04-08 Patrick Farrell PS54 04-09 Patrick Farrell PS55 04-09 Patrick Farrell PS56 04-09 Patrick Farrell PS57 04-09 Patrick Farrell PS58 04-10 Patrick Farrell PS59 04-10 Patrick Farrell PS60 04-15 Patrick Farrell PS61 04-15 Patrick Farrell PS62 04-21 PS63 04-29 PS64 04-29 Patrick Farrell PS65 05-05 Patrick Farrell PS66 05-06 Ronnie Sahlberg PS67 05-14 Marc Vef PS68 05-20 Marc Vef PS69 06-04 Ronnie Sahlberg PS70 06-11 PS71 06-11 PS72 06-11 Janitor Bot PS73 06-25 PS74 06-30 PS75 07-13 Marc Vef PS76 07-13 Marc Vef PS77 07-13 Marc Vef PS78 07-15 Marc Vef PS79 07-26 Marc Vef PS80 07-26 Marc Vef PS81 07-27 PS82 07-27 PS83 07-31 PS84 08-01 PS85 08-04 PS86 08-04 PS87 08-05 PS88 08-05 PS89 08-05 PS90 08-06 PS91 08-06 PS92 08-07 PS93 08-08 PS94 08-10 PS95 08-10 PS96 08-11 PS97 08-11 PS98 08-12 PS99 08-12 PS100 08-13
PS101 08-14 PS102 08-17 PS103 08-18 PS104 08-18 PS105 08-19
tags: pt_ecro
owner Zhenyu Xu · uploader Zhenyu Xu · PS105 uploaded 16h ago · NEW · open in Gerrit ↗
commit message
LU-12669 ec: recover data from parity

Restore read data when some OSTs are unavailable from updated parity
codes.

When normal read fails, the read would switch to CIT_EC_RD, and the
ec read inner IO would expand to cover the whole raid set stripes, the
extent lock of the ec_rd would cover the available data OSTs, then
it reads pages from available data objects and parity objects,
calculates and fill in the missing data pages so that the original
outer IO can pick them up and copy to user buffer.

The ec read outer IO is to keep track of the original read position
and count, and the ec read inner IO is to expand the IO to cover the
whole raid set stripes.

lov_ec_read_stripe_pages() would read all pages for one data stripe
across all page positions in a recovery group in a single
cl_io_submit_sync call. And lov_ec_read_parity_stripe() would read
all pages for one parity stripe in a single cl_io_submit_sync call.

Also catch DIO read failure and switch to CIT_EC_RD to recover data
from parity (buffered IO).

For EC recovery reads, the page beyong the end_index has no DLM lock
(EC recovery only locks the actual read range), so return -EIO to stop
the kernel from retrying. And for EC recovery read, verify DLM lock
coverage for every page, pages on good stripes need to be read from
OSTs and have locks, pages on deactivated stripes should already be in
the page cache from EC reconstruction. If a page without lock coverage
reaches ll_readpage(), it maps to a failed stripe -- return -EIO to
prevent LBUG in osc_req_attr_set().

Introduce a new cl_page_alloc_sub() to allocate a cl_page for a
sub-object.  The sub-object is the lovsub object for a parity stripe,
the difference it's from cl_page_alloc() is that the page index of the
sub-object is relative to the parity object, not to the file.

This patch also fixes a resync crash on overstriped parity mirrors. If
a file's parity mirror was set overstriped ("-C, --overstripe-count"),
the lov_pattern_supported/available() check failed causing that mirror
not being created and the write to fail.

Fixes: e90c6a428e27 ("LU-12188 uapi: add LOV_PATTERN_PARITY")
Test-Parameters: testlist=sanity-ec
Test-Parameters: testlist=sanity-ec fstype=zfs
Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I74977a9148256e2604d948979b5f0b944786e4e0
63060 master J !B ✓T ✗3R 0/2−
LU-19709 osc: fix LASSERT failure on osc_extent_find()
reviewing Qian Yingjin · awaiting review (CI not green yet)
8 unresolved M +72 −3
19h
janitor run: 8 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: lustre-rsync-test. session
review-dne-zfs-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: lustre-rsync-test. session
review-dne-zfs-part-5 RHEL 9.7 / x86_64 ran 5 tests. 1 tests failed: lustre-rsync-test. session
10 optional test failure(s) — informational
build #127642 SUCCESS · tests all Maloo sessions
no vote yet: Yang Sheng, Chris Horn, Andreas Dilger
patchsets: PS1 12-15 PS2 12-15 PS3 07-16
threads: 7 need your reply · 0 waiting on others · 1 own notes · 0 bot
reply PS3 2026-07-28 04:54 Gerrit AI review for Lustre COMMIT_MSG:21 — The body only describes the grant/@tmp reset in osc_queue_async_io(). Three other pieces of the diff aren't mentioned: the new OBD_FAIL_OSC_
Gerrit AI review for Lustre PS3 · 2026-07-28 04:54
The body only describes the grant/@tmp reset in osc_queue_async_io(). Three other pieces of the diff aren't mentioned: the new OBD_FAIL_OSC_EXTENT_RESTART (0x41a) definition, the two CFS_FAIL_CHECK() calls added to the extent state check in osc_queue_async_io(), and sanity test_64k. The fault-injection hunks change a production code path, so could the message say what the injection point is for and that a test was added?
reply PS3 2026-07-28 04:54 Gerrit AI review for Lustre COMMIT_MSG:23 — (typo) "accrodingly" -> "accordingly".
Gerrit AI review for Lustre PS3 · 2026-07-28 04:54
(typo) "accrodingly" -> "accordingly".
note PS1 2026-01-06 21:58 Patrick Farrell osc_cache.c:2461 — I am not comfortable with this goto label skipping the if condition...
Patrick Farrell PS1 · 2026-01-06 21:58
I am not comfortable with this goto label skipping the if condition...

Ah, I see you're setting grants == 0 below - so, just move it up above the if and it's good
reply PS3 2026-07-28 04:54 Gerrit AI review for Lustre osc_cache.c:2606 — (defect) The label is placed below the write-commit folio_batch flush, but the comment right above it says osc_enter_cache() must not run wh
Gerrit AI review for Lustre PS3 · 2026-07-28 04:54
(defect) The label is placed below the write-commit folio_batch flush, but the comment right above it says osc_enter_cache() must not run while page locks are held:

    /* We must not hold a page lock while we do osc_enter_cache()
     * or osc_extent_find(), ... */
    if (folio_batch_count(fbatch)) { cb(env, io, fbatch); ... }

When the restart is taken on an extent that came from `oio->oi_active` (the osc_extent_expand() case named in the commit message), the `if (ext == NULL)` block was never entered on the way in, so the batch was never flushed and still holds pages owned by this io. write_commit_callback() is what disowns them, and cl_page_make_ready() takes lock_page() on exactly those pages when the extent is turned into an RPC. Jumping to a label below the flush means the newly added osc_enter_cache() now sleeps waiting for writeback grant with those pages still locked. Should the flush move above restart_find?
reply PS3 2026-07-28 04:54 Gerrit AI review for Lustre osc_cache.c:2637 — (minor) CFS_FAIL_CHECK() is not a pure predicate - it bumps the fail counter and can set CFS_FAILED/CFS_FAIL_ONCE - and it is evaluated twic
Gerrit AI review for Lustre PS3 · 2026-07-28 04:54
(minor) CFS_FAIL_CHECK() is not a pure predicate - it bumps the fail counter and can set CFS_FAILED/CFS_FAIL_ONCE - and it is evaluated twice here for what is a single decision. Which of the two fires depends on which branch short-circuits (`ext->oe_state != OES_ACTIVE` skips the first, `ext->oe_state == OES_CACHE` skips the second), so with CFS_FAIL_SOME the counter is consumed differently depending on the extent state. Evaluating it once into a local bool would make the fail_val semantics predictable.
reply PS3 2026-07-28 04:54 Gerrit AI review for Lustre osc_cache.c:2666 — (minor) osc_exit_cache() already does exactly this (take cl_loi_list_lock, osc_release_write_grant(), drop it) and is used a few lines up on
Gerrit AI review for Lustre PS3 · 2026-07-28 04:54
(minor) osc_exit_cache() already does exactly this (take cl_loi_list_lock, osc_release_write_grant(), drop it) and is used a few lines up on the osc_extent_find() error path. Reusing it here would keep the two grant-release sites identical.
reply PS3 2026-07-28 04:54 Gerrit AI review for Lustre osc_cache.c:2672 — (defect) `ext` is not cleared before jumping back, and the label now sits above the osc_enter_cache() call, so a failed re-entry leaves the
Gerrit AI review for Lustre PS3 · 2026-07-28 04:54
(defect) `ext` is not cleared before jumping back, and the label now sits above the osc_enter_cache() call, so a failed re-entry leaves the released extent live:

    restart_find:
            if (grants == 0) {
                    rc = osc_enter_cache(env, cli, osc, oap, tmp);
                    ...
            }
            tmp = grants;
            if (rc == 0) {
                    ext = osc_extent_find(...);   /* skipped when rc != 0 */
            }

osc_enter_cache() returns -EDQUOT on forced sync i/o (`cl_dirty_max_pages == 0`, `ar_force_sync`, OBD_FAIL_OSC_NO_GRANT) and also after the grant wait times out. When that happens osc_extent_find() is skipped, `ext` still points at the extent that was just released, waited on with osc_extent_wait() and dropped with osc_extent_put(), so the `if (ext != NULL)` block below runs on it: EASSERTF() reads a possibly freed osc_extent, and LASSERT((oap->oap_brw_flags & OBD_BRW_FROM_GRANT) != 0) is guaranteed to fire because the credit was released just above and never reacquired.

Before this change the label was below the osc_enter_cache() block and osc_extent_wait() only returns <= 0, so `rc` was always 0 at the label and `ext` was always reassigned. Should this set `ext = NULL;` before the goto so a failed osc_enter_cache() just returns rc?
reply PS3 2026-07-28 04:54 Gerrit AI review for Lustre sanity.sh:11469 — Does this case actually fail without the fix? This dd is a fresh io, so `oio->oi_active` is NULL and osc_queue_async_io() takes the `ext ==
Gerrit AI review for Lustre PS3 · 2026-07-28 04:54
Does this case actually fail without the fix? This dd is a fresh io, so `oio->oi_active` is NULL and osc_queue_async_io() takes the `ext == NULL` path: osc_enter_cache() succeeds and `grants` is chunksize + cl_grant_extent_tax when the injected restart is taken. The old label sat below that block, so the retry called osc_extent_find() with *grants already >= chunksize + tax and the assertion in the ticket could not fire. The 0/4096/24576 LBUG needs `grants == 0`, which only happens on the `oio->oi_active` / osc_extent_expand() path - i.e. two or more pages committed in one io so a prior page has already installed oi_active.

The cur_dirty_grant_bytes check below looks like it would pass either way too: on the old code the extra osc_unreserve_grant() subtracts from cl_reserved_grant, while cl_dirty_grant is still balanced by the matching osc_free_grant() when the extent completes.
owner Qian Yingjin · uploader Qian Yingjin · PS3 uploaded 34d ago · NEW · open in Gerrit ↗
commit message
LU-19709 osc: fix LASSERT failure on osc_extent_find()

The customer hits the following LBUG on a client:
(osc_cache.c:735:osc_extent_find()) ASSERTION( *grants >=
chunksize + cli->cl_grant_extent_tax ) failed: 0/4096/24576.

The reason is that an OES_ACTIVE extent being used by a writer
may be written back and changed into the other state at any
time.
If the original extent (@ext) comes from @osc_extent_expand(),
the value of @grants will be set with 0.
This may result in the panic at the above assertion when try to
restart finding a new extent in @osc_extent_find().

The patch resets @tmp value and @grants value by calling
@osc_enter_cache() and compensate the accounted grant, fixing the
panic accrodingly.

Fixes: c413d2ede5df ("LU-19014 memcg: fix client hang in balance_dirty_pages()")
Signed-off-by: Chris Horn <chorn@ddn.com>
Signed-off-by: Yingjin Qian <qian@ddn.com>
Change-Id: I83b750b2a35d97a52072a4cee0dd4097edec6242
62497 master J !B ✓T ✗5R 0/2−
LU-7266 ldlm: introduce pressure-based SLV
reviewing kg.xu · awaiting review (CI not green yet)
11 unresolved XL +2191 −68
19h
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-4 RHEL 10.1 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-zfs-part-6 RHEL 9.7 / x86_64 ran 4 tests. 1 tests failed: ost-pools. session
review-ldiskfs RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.7 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.10 / x86_64, Rocky 9.5 / aarch64 ran 6 tests. 1 tests failed: sanity. session
build #129438 SUCCESS · tests all Maloo sessions
no vote yet: Keguang Xu, Qian Yingjin, Andreas Dilger, Vitaly Fertman, Timothy Day
patchsets:
+15 earlier PS1 11-12 PS4 11-19 PS6 11-26 PS10 02-27 PS13 05-11 PS14 05-11 PS15 05-26 PS16 05-29 PS17 06-11 PS18 06-13 Keguang Xu PS19 06-22 Keguang Xu PS20 06-27 Keguang Xu PS21 07-13 Keguang Xu PS22 07-13 Keguang Xu PS23 07-13 Keguang Xu
PS24 07-14 Keguang Xu PS25 08-08 Keguang Xu PS26 08-09 Keguang Xu PS27 08-15 Keguang Xu PS28 08-15 Keguang Xu
threads: 11 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS14 2026-07-14 01:52 kg.xu patchset comment — hhh, answer back.
Andreas Dilger PS14 · 2026-05-15 21:37
I haven't yet looked into the details of this patch, but I'm wondering if the same effect could be approximated by changing the existing SLV mechanism and values returned to the client without implementing a new protocol?

I'm not against a new protocol, but having a "partial" implementation that turns on (or potentially *off*) based on the number of clients could be quite difficult to test and measure the effects. I read the concern about the new mechanism imposing more lock pressure on a small number of new clients, but it seems possible that this could still co-exist with older clients that use the existing SLV mechanism (with fixes).
Andreas Dilger PS14 · 2026-06-28 06:42
Unfortunately this comment was marked resolved without an answer.
kg.xu PS14 · 2026-07-14 01:52
hhh, answer back.

> Can the same effect be approximated by changing the existing SLV values, without a new protocol?

Partially yes, on the server side, we can try to drive the legacy scalar SLV from pool occupancy (pressure high → SLV lower), still returning a scalar value rather than a ratio, so existing clients can trigger cancellation without any wire-format change.

However, this is only a best-effort approximation. As Wenzhao noted in the earlier discussion, the fundamental limitation of the legacy path is that each client compares its own CLV against a `single server-provided threshold`. There is no notion of reclaiming a fraction of the client's unused cache. In practice, clients with similar lock ages tend to keep similar numbers of locks, regardless of how large or active they are — a small client and a large client receive the same SLV and apply the same cutoff logic locally.

Conclusion
We do need the new contract: one OBD_CONNECT2 flag and reuse of the existing 64-bit slv field to carry packed pool pressure, with client-side eviction driven by a configurable curve over the client's own unused locks. That is what gives bounded, paced, proportional reclamation.

At the same time, the old clients could/should participate in backpressure without waiting for a rollout threshold:

- clients that negotiate OBD_CONNECT2_POOL_SLV_PACKED always receive packed pressure;
- legacy clients continue to receive a scalar SLV, optionally occupancy-driven as a fallback;
- both paths respond to the same underlying pool pressure, without a coverage-based switch.

We accept the known limitations of the legacy fallback (equal-threshold behavior across clients of different sizes). The new contract addresses those limitations; the legacy path is there so mixed-version clusters still get timely cancellation, not to replace the pressure mechanism.
reply PS16 2026-05-29 02:03 kg.xu patchset comment — Review note:
kg.xu PS16 · 2026-05-29 02:03
Review note:
The patch is large because of negotiation, dual SLV, rollout, and tests.
The new logic is small: server pressure is essentially granted/limit;
the client maps pressure to an evict quota and uses a quota-based LRU
policy instead of per-lock CLV arithmetic.

Suggested review order:
1) lustre/include/lustre_dlm.h, lustre_idl.h — packed SLV layout and pool fields
2) ldlm_pool_calc_slv_by_pressure(), ldlm_pool_pressure_evict_*() — core math (~100 lines)
3) ldlm_cancel_pressure_policy(), ldlm_cancel_lru_policy() — reclaim behavior
4) connect, rollout, sysfs, tests — compatibility and rollout (bulk of the diff)
reply PS28 2026-08-15 13:59 Gerrit AI review for Lustre ldlm.namespaces.pool.slv_mode.4:174 — Not a bug, but the MDT name in this sample output is missing the UUID suffix. mdt_init0() builds the namespace name as "%s-%s" of LUSTRE_MDT
Gerrit AI review for Lustre PS28 · 2026-08-15 13:59
Not a bug, but the MDT name in this sample output is missing the UUID suffix. mdt_init0() builds the namespace name as "%s-%s" of LUSTRE_MDT_NAME and obd_uuid.uuid, so it reads mdt-testfs-MDT0000_UUID, matching the filter-testfs-OST0000_UUID line just below.
reply PS19 2026-06-22 01:12 kg.xu ldlm_pool.c:309 — Currently, `ldlm_pool` tracks metrics at the per-target level (e.g., 'fsname-target'). I propose aggregating these metrics by 'fsname' inste
kg.xu PS19 · 2026-06-22 01:12
Currently, `ldlm_pool` tracks metrics at the per-target level (e.g., 'fsname-target'). I propose aggregating these metrics by 'fsname' instead. Furthermore, we should discuss whether resources should be allocated equally across all file systems, or if we need a weighted policy.
reply PS25 2026-08-08 21:50 Gerrit AI review for Lustre ldlm_pool.c:212 — (style) Not a bug, but with `pressure_adjust == true` this just returns `L` unchanged, and the only caller passing true is the CDEBUG in ldl
Gerrit AI review for Lustre PS25 · 2026-08-08 21:50
(style) Not a bug, but with `pressure_adjust == true` this just returns `L` unchanged, and the only caller passing true is the CDEBUG in ldlm_pool_calc_slv_by_pressure(). A boolean that turns the function into the identity is hard to follow - would printing `limit` directly there be clearer?
reply PS25 2026-08-08 21:50 Gerrit AI review for Lustre ldlm_pool.c:1856 — (style) These six new helpers are the only EXPORT_SYMBOL()s in this file; ldlm_pool_get_slv(), ldlm_pool_init() and friends aren't exported.
Gerrit AI review for Lustre PS25 · 2026-08-08 21:50
(style) These six new helpers are the only EXPORT_SYMBOL()s in this file; ldlm_pool_get_slv(), ldlm_pool_init() and friends aren't exported. ldlm_lib.c and ldlm_request.c build into the same ptlrpc module (lustre/ldlm/Makefile), so none of them need exporting, and this one is used only inside ldlm_pool.c so it could be static.
reply PS28 2026-08-15 13:59 Gerrit AI review for Lustre ldlm_pool.c:497 — Once the pool is pressure-ready these two limits diverge by roughly 5x, and the legacy scalar looks like it collapses to the floor.
Gerrit AI review for Lustre PS28 · 2026-08-15 13:59
Once the pool is pressure-ready these two limits diverge by roughly 5x, and the legacy scalar looks like it collapses to the floor.

ldlm_pools_recalc_task() sets pl_limit = ldlm_ratio2locknr(30)/nr_ns for a ready pool but pl_legacy_limit = LDLM_POOL_HOST_L/nr_ns. HOST_L is 50 locks per MB of RAM, i.e. RAM/20971 locks; ldlm_ratio2locknr(30) is 0.30*RAM/LDLM_LOCK_MEM_OVERHEAD. Packed clients only start evicting at 50% of pl_limit (default curve), so granted settles well above pl_legacy_limit.

With granted > limit here:

    grant_usage = max_t(int, limit - (granted - grant_plan), 1);  /* -> 1 */
    slv_factor = (grant_usage << 10); do_div(slv_factor, limit);  /* -> 0 */
    slv = slv * slv_factor;                                       /* -> 0 */

and the clamp below lifts it to ldlm_pool_slv_min() == 1. In ldlm_cancel_lrur_policy() slv == 1 means every lock with lv >= 1 (any lock idle for a second or more) is cancelled, so a non-packed client drops essentially its whole LRU on each recalc, and the drop also trips the ns_recalc_pct urgent-recalc path in ldlm_cli_update_pool().

That hits up to 30% of client exports at the default threshold, plus every MDT OSC on an OST since lod never negotiates OBD_CONNECT2_POOL_SLV_PACKED. Does "keep legacy behavior for old clients" still hold once the pool flips, or should the legacy scalar be derived from the limit the pool is actually being filled to?
reply PS28 2026-08-15 13:59 Gerrit AI review for Lustre ldlm_pool.c:1535 — pl_slv_mode is set to pressure_rollout two lines up, so this branch always runs and a brand new server pool gets the pressure budget before
Gerrit AI review for Lustre PS28 · 2026-08-15 13:59
pl_slv_mode is set to pressure_rollout two lines up, so this branch always runs and a brand new server pool gets the pressure budget before any client has negotiated packed SLV and before ldlm_pool_fallback_legacy_on_multi_fs_register() has had a chance to force the pool back to legacy_slv.

It is also the whole-node budget: ldlm_pools_recalc_task() divides ldlm_ratio2locknr() by ldlm_namespace_nr_read(LDLM_NAMESPACE_SERVER), this does not. The neighbouring initialisers (pl_legacy_limit, pl_grant_plan) still use LDLM_POOL_HOST_L, so pl_server_lock_volume is seeded from one basis and decayed against another until the first recalc pass.

Would it be simpler to seed with LDLM_POOL_HOST_L here and let ldlm_pools_recalc_task() apply the pressure budget when the readiness gate says so?
reply PS9 2026-02-24 09:29 Qian Yingjin sanity-ldlm-pool.sh:195 — This could be:
Qian Yingjin PS9 · 2026-02-24 09:29
This could be:
for ((batch = 0; batch < BATCH_COUNT; batch++)) ...
reply PS26 2026-08-09 19:02 Gerrit AI review for Lustre sanity-ldlm-pool.sh:190 — (style) This commented-out curve set/restore block looks like leftover scaffolding - drop it, or enable it if the suite is meant to cover a
Gerrit AI review for Lustre PS26 · 2026-08-09 19:02
(style) This commented-out curve set/restore block looks like leftover scaffolding - drop it, or enable it if the suite is meant to cover a non-default curve?
reply PS26 2026-08-09 19:02 Gerrit AI review for Lustre sanity-ldlm-pool.sh:260 — (style) Carried over from patchset 9 and still open: this reads more naturally as `for ((batch = 0; batch < BATCH_COUNT; batch++))`, with su
Gerrit AI review for Lustre PS26 · 2026-08-09 19:02
(style) Carried over from patchset 9 and still open: this reads more naturally as `for ((batch = 0; batch < BATCH_COUNT; batch++))`, with subdir_idx computed from batch directly.
owner kg.xu · uploader Keguang Xu · PS28 uploaded 4d ago · NEW · open in Gerrit ↗
commit message
LU-7266 ldlm: introduce pressure-based SLV

Legacy SLV/CLV reacts to server pressure indirectly and can delay
lock reclaim. This change introduces a pressure-based SLV path:
server sends packed pressure in SLV, and client converts it to evict
quota.

Packed SLV Format:
 * Bits 63..60: format version (current 0x1). Legacy SLV leaves
   these bits clear.
 * Bits 59..16: reserved for future use.
 * Bits 15..0: pressure in hundredths of a percent, where 10000
   means 100.00%. Here pressure is total-grant-lock/total-limit.
   Unlike the previous grant-plan-based scalar SLV.

Rationale:
- Percentage-based eviction scales with client lock footprint, so
  larger lock holders evict more locks under pressure while smaller
  clients are not over-penalized.
- Gradual rollout is gated by packed-capable export coverage,
  avoiding a mixed-upgrade case where only a small subset of new
  clients absorbs repeated reclaim pressure.
- Client eviction uses segmented pressure-to-evict mapping, so
  reclaim is mild at low pressure and stronger at high pressure. At
  relatively low pressure, clients react faster to keep pressure in
  a healthy range; at higher pressure, clients use a longer evict
  interval because each round evicts more locks, reducing oscillation
  and avoiding over-evicting locks that should be retained; at or
  above the last curve point the interval shortens so high-pressure
  reclaim stays frequent.

Key updates:
- add OBD_CONNECT2_POOL_SLV_PACKED negotiation and packed SLV helpers
- add slv_mode (legacy_slv / pressure_rollout), rollout threshold,
  and client evict-curve sysfs controls
- pressure_rollout pools use ldlm.lock_pool_limit_mem_pct (default
  30% of RAM / LDLM_LOCK_MEM_OVERHEAD) instead of LDLM_POOL_HOST_L
- keep dual SLV state (legacy scalar + pressure scalar) for
  compatibility, where in pressure path; add quota-based client
  reclaim policy: ldlm_cancel_pressure_policy
- fall back to legacy_slv on mixed-filesystem server nodes
- keep legacy behavior for old clients and pre-threshold rollout
  stages
- add sanity-ldlm-pool.sh, sanity 124aa, and man pages for the new
  pool parameters

Performance impact:
CPU overhead should be negligible.
- The server recomputes pressure once per second per pool. On the
  client, pool recalc runs on the ~10s timer and when unused locks
  are decrefed.
- On the packed pressure path, reclaim no longer performs per-lock
  arithmetic during LRU scanning, so lock-heavy workloads should see
  unchanged or slightly lower CPU usage.

Assisted-by: Cursor:auto/codex5.5
Signed-off-by: Keguang Xu <squalfof@gmail.com>
Signed-off-by: Keguang Xu <kxu@ddn.com>
Change-Id: If8a6f247127576965ae45c349a4ab04fb286615a
58253 master J ✗4B ✓T ✗6R 0/2
LU-17531 lfs: add --no-resync option in mirror extend
reviewing Zhenyu Xu · awaiting review (CI not green yet)
4 unique failures 9 unresolved M +102 −7
6d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-flr@ldiskfs+DNE:test_0mseen in 1 other review
sanity-flr@ldiskfs+DNE:test_205bseen in 4 other reviews
sanity-flr@zfs:test_0mseen in 1 other review
sanity-flr@zfs:test_205bseen in 4 other reviews
failed enforced testplatformdetail
review-dne-part-4 RHEL 9.7 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-part-4 RHEL 10.1 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-part-5 RHEL 9.7 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-zfs-part-4 RHEL 9.7 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-zfs-part-4 RHEL 10.1 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-zfs RHEL 8.10 / x86_64 ran 8 tests. 1 tests failed: sanity-flr. session
build #129181 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+11 earlier PS1 02-27 PS2 02-27 PS3 02-28 PS4 03-01 PS5 03-03 PS6 03-03 PS7 03-04 PS8 03-05 PS9 03-06 PS10 04-17 PS11 05-05 Andreas Dilger
PS12 05-05 Andreas Dilger PS13 05-05 Andreas Dilger PS14 05-05 Andreas Dilger PS15 06-01 PS16 08-12
threads: 9 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS16 2026-08-13 09:56 Gerrit AI review for Lustre COMMIT_MSG:9 — (typo) "without sync its content before hand" reads awkwardly; maybe "without syncing its content beforehand".
Gerrit AI review for Lustre PS16 · 2026-08-13 09:56
(typo) "without sync its content before hand" reads awkwardly; maybe "without syncing its content beforehand".

It would also help to spell out here that the newly-added mirrors are marked stale and stay unusable until `lfs mirror resync` runs, and that this needs an MDS with the stale-merge support.
reply PS16 2026-08-13 09:56 Gerrit AI review for Lustre lfs-mirror-extend.1:135 — (minor) The description doesn't mention that the option has no effect when the mirror comes from `-f VICTIM_FILE`, which is how the code beh
Gerrit AI review for Lustre PS16 · 2026-08-13 09:56
(minor) The description doesn't mention that the option has no effect when the mirror comes from `-f VICTIM_FILE`, which is how the code behaves today.

Carried over from patch set 2 and still open: it would help to say why this is useful, e.g. "This can allow an interactive command to configure the new mirrors on a file, while deferring the work of data resync to another node."

(typo) "and be unusable" should be "and will be unusable", and "by mirror resync command" reads better as "by the \fBlfs mirror resync\fR command".
reply PS16 2026-08-13 09:56 Gerrit AI review for Lustre sanity-flr.sh:912 — (defect) This version gate lets the test run on servers that can't do a stale merge. The MDT side (LU-18746 "flr: allow merge stale mirror"
Gerrit AI review for Lustre PS16 · 2026-08-13 09:56
(defect) This version gate lets the test run on servers that can't do a stale merge. The MDT side (LU-18746 "flr: allow merge stale mirror" and LU-18771 "flr: allow merge mirrored layout") landed after the 2.17.57 tag, so every server from 2.16.52-70 up to 2.17.57 passes this check and will fail the `verify_comp_attr ... stale` assertions on an interop run.

The gate should name the version the stale merge actually landed in, e.g. `$(version_code v2_17_57-2-gc4b410f7e3)` or the next interim version.

(style) The skip text should also say why the version is needed rather than repeat it, e.g. skip "need MDS >= ... for stale mirror merge".
reply PS16 2026-08-13 09:56 Gerrit AI review for Lustre sanity-flr.sh:977 — (suggestion) The test only covers the layout-generated path. A case for `--no-resync -f VICTIM_FILE`, and one asserting that `lfs setstripe
Gerrit AI review for Lustre PS16 · 2026-08-13 09:56
(suggestion) The test only covers the layout-generated path. A case for `--no-resync -f VICTIM_FILE`, and one asserting that `lfs setstripe --no-resync` / `lfs migrate --no-resync` are rejected, would cover the rest of the new option.

Also, the mirror reads here are piped straight into md5sum, so a failing `lfs mirror read` just yields the checksum of empty input and the `!=` assertions still pass. Capturing the exit status would make those checks meaningful.
reply PS16 2026-08-13 09:56 Gerrit AI review for Lustre lfs.c:1839 — (minor) The kernel-doc block above this enum documents every other flag (@MF_NO_VERIFY, @MF_DESTROY, @MF_COMP_ID, @MF_COMP_POOL, @MF_FOREIGN
Gerrit AI review for Lustre PS16 · 2026-08-13 09:56
(minor) The kernel-doc block above this enum documents every other flag (@MF_NO_VERIFY, @MF_DESTROY, @MF_COMP_ID, @MF_COMP_POOL, @MF_FOREIGN) but gets no entry for the new one.

While adding it, is MF_MERGE_STALE the best name? Every other flag here is named after its option, so MF_NO_RESYNC would be easier to connect back to `--no-resync`.
reply PS16 2026-08-13 09:56 Gerrit AI review for Lustre lfs.c:2458 — (defect) `--no-resync` is dropped on the floor in the victim-file path. mirror_extend_file() only looks at MF_NO_VERIFY, and it sends `lil_f
Gerrit AI review for Lustre PS16 · 2026-08-13 09:56
(defect) `--no-resync` is dropped on the floor in the victim-file path. mirror_extend_file() only looks at MF_NO_VERIFY, and it sends `lil_flags = LL_LEASE_LAYOUT_MERGE` with no LL_LEASE_ALLOW_STALE.

So `lfs mirror extend --no-resync -f victim file` still runs the full content comparison and attaches the mirror as up-to-date, with no diagnostic. That is the opposite of what the man page promises.

Either honour the flag here, or reject the combination the way --no-verify is validated at the bottom of lfs_setstripe_internal():

    if (mirror_flags & MF_NO_VERIFY) {
        if (opc != SO_MIRROR_EXTEND) ...
        else if (!has_m_file) ...
    }
reply PS16 2026-08-13 09:56 Gerrit AI review for Lustre lfs.c:2476 — (defect) Is there anything that stops this from being used against an MDS that doesn't understand a stale merge?
Gerrit AI review for Lustre PS16 · 2026-08-13 09:56
(defect) Is there anything that stops this from being used against an MDS that doesn't understand a stale merge?

The stale marking is entirely server-side: mdc_close_intent_pack() sets `cd_merge_flags = CD_MERGE_STALE`, mdt_close_handle_layouts() turns that into `mrd_merge_stale`, and lod_declare_layout_merge() is what ORs in `LCME_FL_STALE`. There is no OBD_CONNECT bit and no version check for any of it. An MDS predating LU-18746 just ignores `cd_merge_flags` and merges normally.

So with a single new mirror on such a server:

    lfs mirror extend -N --no-resync file

skips migrate_nonblock(), the MDT merges the empty volatile layout as a *non-stale* mirror, and the file ends up with two mirrors declared in sync where one contains only zeroes. `lfs mirror resync` then sees nothing stale and is a no-op, so reads can legitimately be served from the empty mirror.

The `-N2` path added by LU-18771 doesn't have this exposure because it always resyncs afterwards; this option is the first one that leaves the file permanently unsynced. Should this refuse (or fall back to syncing) when the MDS can't honour the flag?

The multi-mirror case is safe by accident: an old LOD rejects a victim layout with `lcm_mirror_count != 0` with -EBUSY.
reply PS16 2026-08-13 09:56 Gerrit AI review for Lustre lfs.c:4123 — (style) Not a bug, but this lands after LFS_MIRROR_STATE_OPT and breaks the sorting the rest of this hunk just introduced - alphabetically i
Gerrit AI review for Lustre PS16 · 2026-08-13 09:56
(style) Not a bug, but this lands after LFS_MIRROR_STATE_OPT and breaks the sorting the rest of this hunk just introduced - alphabetically it belongs between LFS_MIRROR_INDEX_OPT and LFS_MIRROR_STATE_OPT.
reply PS16 2026-08-13 09:56 Gerrit AI review for Lustre lfs.c:4833 — (style) `!(opc == SO_MIRROR_EXTEND)` is more simply written `opc != SO_MIRROR_EXTEND`.
Gerrit AI review for Lustre PS16 · 2026-08-13 09:56
(style) `!(opc == SO_MIRROR_EXTEND)` is more simply written `opc != SO_MIRROR_EXTEND`.

The message also doesn't match the rest of this function, which uses `"%s %s: ...", progname, argv[0]`. Something closer to the --no-verify wording would read better, e.g. "--no-resync is valid only for lfs mirror extend command". The braces around the case body aren't needed either since nothing is declared in it.
owner Zhenyu Xu · uploader Zhenyu Xu · PS16 uploaded 7d ago · NEW · open in Gerrit ↗
commit message
LU-17531 lfs: add --no-resync option in mirror extend

So that we can add a mirror without sync its content before hand,
it can be resync'd later.

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: I1b43fb0299c2aaea72587eff9168e4cdee075624
60190 master J !B ✓T ✗2R 0/2−
LU-17916 osc: early switch to sync write
reviewing Shaun Tancheff · awaiting review (CI not green yet)
1 unresolved M +167 −78
8d
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-6 RHEL 9.5 / x86_64 ran 4 tests. 1 tests failed: replay-single. session
review-dne-zfs-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
build #115275 SUCCESS · tests all Maloo sessions
reviews: Shaun Tancheff -1 2025-07-29 15:44
no vote yet: Qian Yingjin, Vladimir Saveliev
patchsets: PS1 07-15 PS2 07-16 PS3 07-24
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS3 2025-08-26 17:40 Andreas Dilger COMMIT_MSG:14 — 30% improvement for buffered writes seems worthwhile to pursue?
Andreas Dilger PS3 · 2025-08-26 17:40
30% improvement for buffered writes seems worthwhile to pursue?
owner Shaun Tancheff · uploader Shaun Tancheff · PS3 uploaded 391d ago · NEW · open in Gerrit ↗
commit message
LU-17916 osc: early switch to sync write

When running up to grant or dirty page limits switch
to sync write to speedup freeing additional grant
and clear dirty pages.

This improves single and multi-threaded throughput for
buffered writes by about 30%

HPE-bug-id: LUS-12384
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: I2d34b4aedafdf22392d81bce1cd03b58302381d6
55770 master J !B ✓T ✗3R 0/2−
LU-16897 ptlrpc: network layer sparse read optimization
reviewing Qian Yingjin · awaiting review (CI not green yet)
2 unresolved XL +1016 −124
8d
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-2 RHEL 9.5 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-dne-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-pcc. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
build #122322 SUCCESS · tests all Maloo sessions
no vote yet: Cyril Bordage, Serguei Smirnov, Andreas Dilger
patchsets:
+7 earlier PS1 07-17 PS2 07-17 PS3 07-17 PS4 07-17 PS5 07-19 PS6 07-19 PS7 02-28
PS8 02-28 PS9 03-10 PS10 03-11 PS11 03-11 Janitor Bot PS12 03-11
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS12 2026-04-25 08:55 Qian Yingjin nsro_hole_kb.4:26 — parameters -> parameter
Qian Yingjin PS12 · 2026-04-25 08:55
parameters -> parameter
reply PS12 2026-04-26 08:41 Sohei Koyama tgt_main.c:320 — sysfs_memparse() returns Bytes (not KiB) so `val >> PAGE_SHIFT` is correct.
Sohei Koyama PS12 · 2026-04-26 08:41
sysfs_memparse() returns Bytes (not KiB) so `val >> PAGE_SHIFT` is correct.
owner Qian Yingjin · uploader Qian Yingjin · PS12 uploaded 161d ago · NEW · open in Gerrit ↗
commit message
LU-16897 ptlrpc: network layer sparse read optimization

This patch adds support for sparse file read in Lustre. It is a
solution mainly in PtlRPC and LNET layer.
To avoid increasing the message size of the other LNET messages,
it extends LNET header with variable size to store the hole
bitmap information. This just needs the detailed KLNDs do some
small changes.

It adds a new message type LNET_MSG_SPUT which is similar to
LNET_MSG_PUT message but with a IOV page hole bitmap (32 bytes,
256 bits) which is stored in the extended LNET header.

When OFD target reports the read containing hole pages for bulk
I/O, the server will remap the KIOV page to filter out the hole
pages. And then the server send a LNET_MSG_SPUT message to the
server which contains the page hole bitmap information.

Once a client receives a SPUT message, it first zeros out the
corresponding hole pages and then filters out hole pages and
re-maps the previous prepared KIOV. And then receive the data
(via RDMA) if any.

TODO:
1. disable the sparse file read for rdma-only (GPU) data.
2. special handle for a heterogeneous cluster that the PAGE_SIZE
   between the client and the server are different (in the current
   case, the client will just fallback to the normal read if the
   PAGE SIZEs between client and server are different).

Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: I9c3b4c74fd8762a8040741e77f11efd031e6145a
65848 master J !B ✓T ✗2R 0/2
LU-20238 ec: branch-free byte-indexed scalar base path
reviewing Hiroshi Nishida · awaiting review (CI not green yet)
pt_ecro XL +503 −4660
12d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-2 RHEL 9.7 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-dne-part-5 RHEL 9.7 / x86_64 ran 5 tests. 1 tests failed: lustre-rsync-test. session
build #128825 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+5 earlier PS1 05-13 PS2 06-08 PS3 06-17 PS4 07-10 PS5 07-10
PS6 07-30 PS7 07-31 PS8 08-04 PS9 08-05 PS10 08-06
tags: pt_ecro
owner Hiroshi Nishida · uploader Hiroshi Nishida · PS10 uploaded 13d ago · NEW · open in Gerrit ↗
commit message
LU-20238 ec: branch-free byte-indexed scalar base path

Replace the per-byte gf_mul() in the scalar *_base hot paths with
a byte-indexed per-coefficient region table:

  tbl[b] = c * b in GF(2^8), built once per coefficient
  gf_region_mul(tbl, x) = tbl[x]   (single load, inner loop)

ec_encode_data_base() at k=6/p=2, gcc -O2: 0.79x at 256 B, 1.08x
at 1 KiB, 1.32x at 64 KiB. gf_mul() alone is ~20% slower than the
64 KiB direct lookup it replaces, so regions below
GF_REGION_TBL_MIN_LEN (1 KiB) keep a scalar fallback.

Byte-indexed lookup (gf-nishida-16 "FullByte"-style) is also
patent-clean: no PSHUFB, no nibble split, no 16-byte gftbl, so it
is structurally distinct from the ISA-L SIMD pattern that maps
onto US 8,683,296 claim 21.

ec_base.c carried an unconditional "#define GF_LARGE_TABLES", so
both ec.ko and libec.a compiled the 64 KiB gf_mul_table_base and
the small-table branch was dead code. With that define and the
inert ec_base_o_CPPFLAGS in ec/Makefile both gone nothing could
set it, so the block is deleted outright: .rodata 65792 -> 1536,
.text 2217 -> 3591 for the fallbacks.

gf_vect_mul_init is renamed gf_vect_mul_init_base, with a wrapper
in ec_base_aliases.c; its 64-bit path now selects on BITS_PER_LONG
for kernel builds, since __WORDSIZE is glibc-only. No existing
entry point changes behaviour.

Validated on RHEL 10.1 (AVX2+GFNI): exhaustive gf_mul + gf_inv,
k=6/p=2 round-trip KAT, and gfni_ec_test byte-identical parity.

Test-Parameters: testlist=sanity-ec
Test-Parameters: testlist=sanity env=ONLY=910
Signed-off-by: Hiroshi Nishida <hnishida@thelustrecollective.com>
Change-Id: I905e365d145d0018cbcd2bbc919eb4e516fafe8e
51679 master J !B ✓T ✗9R 0/2
LU-16964 llite: auto switch from BIO to DIO
reviewing Qian Yingjin · awaiting review (CI not green yet)
2 unresolved L +612 −12
58d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-part-5 RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanityn. session
review-dne-selinux-ssk-part-1 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-zfs-part-5 RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanityn. session
review-ldiskfs RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs failed 2× RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.7/aarch64, RHEL 8.8/x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity. session
review-zfs RHEL 8.8/x86_64 ran 11 tests. 3 tests failed: test-groups/review-zfs, sanity-lsnapshot, sanity-quota. session
3 optional test failure(s) — informational
build #97784 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+3 earlier PS1 07-14 PS2 07-14 PS3 08-04
PS4 08-28 PS5 08-28 PS6 09-01 PS7 09-05 PS8 09-05
threads: 1 need your reply · 1 waiting on others · 0 own notes · 0 bot
reply PS2 2023-07-14 15:57 Qian Yingjin file.c:1787 — We have restored the file flags (unmask O_DIRECT flags) at code line 1987.
Patrick Farrell PS2 · 2023-07-14 14:45
So I’ve looked at this before and this isn’t safe - we can’t change file flags in the kernel, or they stay changed in user space.  We just have to not do this on older kernels, I think.

Changing the ki_flags is fine though
Qian Yingjin PS2 · 2023-07-14 15:57
We have restored the file flags (unmask O_DIRECT flags) at code line 1987.
Is it okey and enough?
owner Qian Yingjin · uploader Qian Yingjin · PS8 uploaded 1079d ago · NEW · open in Gerrit ↗
commit message
LU-16964 llite: auto switch from BIO to DIO

We design a hybird I/O path engine to perform buffered I/O as
direct I/O. It can switch from the default buffered I/O to direct
I/O and allow the buffered I/O which meets the requirements and
conditions to perform I/O in direct mode with much more efficient
way appropirately.

Switching to use direct I/O may provide some performance benefits
in the following cases:
- There is no access locality;
- The I/O size is large enough;
- The system is under memory pressure or high CPU usage;
- A file is shared access under high conflict contention from
  many clients;

In this patch, we implement auto switch from BIO to DIO when a
file is under high lock contention.
Once enough conflicting lock requests are seen within a certain
time window (a tunable, 4 secondes by default), the resource
contention is reported to the client.
When informed the lock contention, the corresponding inode on the
client is marked as contended and this state lasts for a time
period (a tunable, 30 seconds by default). In this time period, the
subsequent I/O will be performed in direct I/O mode by using
lockless I/O.

Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: I9288d3049671ee67e829409b1fe28ca3ab45cbfb
63132 master J !B ✓T ✗1R 0/2−
LU-19721 llite: multiple lock cb hold invalidate_lock
reviewing Qian Yingjin · awaiting review (CI not green yet)
3 unresolved L +296 −24
68d
janitor run: 4 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
23 optional test failure(s) — informational
build #126196 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2026-06-12 20:50
no vote yet: Vitaly Fertman, Oleg Drokin
patchsets:
+1 earlier PS1 12-22
PS2 12-23 PS3 12-23 PS4 06-05 Andreas Dilger PS5 06-09 Andreas Dilger PS6 06-09 Andreas Dilger
threads: 1 need your reply · 2 waiting on others · 0 own notes · 0 bot
reply PS3 2026-02-28 09:14 Andreas Dilger vvp_object.c:214 — (minor) this should only be needed once before the start of the loop? After that, the return value from atomic_cmpxchg() can be used instea
Andreas Dilger PS3 · 2026-02-28 09:14
(minor) this should only be needed once before the start of the loop?  After that, the return value from atomic_cmpxchg() can be used instead of doing another read.
owner Qian Yingjin · uploader Andreas Dilger · PS6 uploaded 71d ago · NEW · open in Gerrit ↗
commit message
LU-19721 llite: multiple lock cb hold invalidate_lock

On the newer kernel such as Rocky9.5 or SLES15sp5, the test
case sanity-pcc/test_99b deadlock as follows:

    A client is granted a PW extent lock L1;

    TD1 - TD8: read direct I/O
    On client side (OSC): use out all available RPC slots of 8.
    On server side (OST):
    - Waiting for the server side locking for direct read I/O;
    - Lock blocking callback to revoke the conflict granted L1;
    <== Waiting for the completion of T2.

    T2: Client side lock blocking AST for L1
    osc_dlm_blocking_ast0()
    ->osc_lock_flush()
    ->osc_lock_discard_pages()
    - Acquire execlusive invalidate_lock
    <== Waiting for T3 which is holding shared invalidate_lock

    T3: generic buffered read:
    ->ll_file_io_generic()
    - Acquire shared invalidate_lock
    ->ll_readpage()
    ->lov_io_submit()->osc_io_submit()
    - Waiting for I/O finished
    - I/O extent is waiting for RPC slots
    <== Waiting for TD1-TD8

The deadlock is: TD1-TD8=>T2=>T3=>TD1-TD8

This patch solves the deadlock using trylock for invalidate_lock
in lock blocking AST.

If trylock failed, it will check the pending read extents in the
OSC object and move them into high priority list to make them fire
into wire as soon as possible. Thus the read holding the shared
invalidate_lock can release as quickly as possible.
And lock BAST can acquire the invalidate_lock finally.

Was-Change-Id: I6800c998cf0ce92de11d846d4715cec81cb9a513

Allow multiple lock blocking callbacks from multiple threads and
different OSC objects enter into the critical section of write
@invalidate_lock of the inode mapping to discard pages in
parallel.
This means once a thread from the context of lock blocking AST
held the @invalidate_lock, all other BAST thread can enter into
the critical section simultaneously to discard pages in parallel.

This can avoid the possible BAST timeout and client evictiond as
in the old way the exclusive wirte lock @invalidate_lock makes
the BAST threads perform serially and this increases the overall
delay of BAST from multiple stripes.

Add sanityn/test_122.

Fixes: bba59b1287 ("LU-16651 llite: hold invalidate_lock when invalidate cache pages")
Fixes: 56e59cbb11d8 ("LU-19427 llite: fix invalidate_lock deadlock for mixed BIO/DIO")
Test-Parameters: clientdistro=sles15sp7 testlist=sanity-pcc env=ONLY=99b,ONLY_REPEAT=50
Test-Parameters: clientdistro=rocky9.5 testlist=sanity-pcc env=ONLY=99b,ONLY_REPEAT=50
Signed-off-by: Yingjin Qian <qian@ddn.com>
Signed-off-by: Andreas Dilger <adilger@thelustrecollective.com>
Change-Id: I70a88fcf895e1f313f6a5ded204fa5d6750bba70
66416 master J !B ✓T ✗1R 0/2
LU-20323 llite: enable async readahead for stride read
reviewing Li Dongyang · awaiting review (CI not green yet)
M +74 −36
77d
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
13 optional test failure(s) — informational
build #125894 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Shuichi Ihara, Andreas Dilger
owner Li Dongyang · uploader Li Dongyang · PS1 uploaded 78d ago · NEW · open in Gerrit ↗
commit message
LU-20323 llite: enable async readahead for stride read

async readahead should also work for stride read, this patch
enables it.

with a 2.19TB file, single thread stride benchmark reads
47008 bytes, and then seeks 1M, looping until EOF.

Without patch
156.72s    628.7MB/s

With patch
68.42s	   1440.5MB/s

However for multithread stride io, with each thread starting with
an offset of thread_id * 47008 bytes, there's performance
regression due to extra contention on adding/removing the page from
address space in vfs.

It makes sense for single thread read, we could use multiple async work
items to fetch pages in and keep fast read going, but for multi thread
read, it's not a good idea to bring extra contention.
Let's limit async readahead to single thread, by checking
lli_open_fd_read_count and lli_open_fd_write_count.

write_count is also checked because when a file is opened with O_RDWR,
only lli_open_fd_write_count is increased, same logic as the kernel's
i_readcount and i_writecount.

Change-Id: Iab7ee9455f10b1d22b0a1f2cc15d40825fd1f105
Signed-off-by: Li Dongyang <dongyangli@ddn.com>
66131 master J ✗2B ✓T ✗6R 0/2−
LU-19900 lov: DIO+APPEND corruption on PFL extent boundaries
reviewing Sergey Cheremencev · awaiting review (CI not green yet)
2 unique failures 2 unresolved M +106 −15
82d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-pfl@ldiskfs+DNE:test_101seen in 1 other review
sanity-pfl@zfs:test_101seen in 1 other review
failed enforced testplatformdetail
review-dne-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-pfl. session
review-dne-part-2 RHEL 9.7 / x86_64 ran 11 tests. 1 tests failed: sanity-pfl. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-subtest-change RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity-pfl. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-pfl. session
review-dne-zfs-subtest-change RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity-pfl. session
1 optional test failure(s) — informational
build #125536 SUCCESS · tests all Maloo sessions
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-05-28 07:01 Andreas Dilger COMMIT_MSG:40 — For patches using AI assistance during development, the upstream kernel has requested to add `Assisted-by:` to the commit message.
Andreas Dilger PS1 · 2026-05-28 07:01
For patches using AI assistance during development, the upstream kernel has requested to add `Assisted-by:` to the commit message.

Please see the following page for details: 
https://wiki.lustre.org/Commit_Comments#AI/LLM/Tool_Attribution
reply PS1 2026-05-28 07:01 Andreas Dilger patchset comment — @scherementsev@ddn.com it could be that the difference on master is the addition of patch https://review.whamcloud.com/61688 ("LU-12738 pfl:
Sergey Cheremencev PS1 · 2026-05-25 20:44
Hi @patrick@thelustrecollective.com,

This patch has been created by Justin with AI tools. It solves LU-20289 problem described in EXA6. It also passes the test you added in https://review.whamcloud.com/c/fs/lustre-release/+/64127. So in case of EXA6 it works fot both cases. If speak about master, this patch passes sanity_389t from 64217, but fails LU-20289 reproducer(sanity-pfl_101). As far as I can see it fails because the size of the file is smaller for 9 pages then it should be. At the same time, it successfully created the 2nd PFL component and wrote several DIO buffers there. It seems there is a difference between master in exa6 that causes to pass in on case and fail in another.
Andreas Dilger PS1 · 2026-05-28 07:01
@scherementsev@ddn.com it could be that the difference on master is the addition of patch https://review.whamcloud.com/61688 ("LU-12738 pfl: do not instantiate full PFL layout on append")
owner Sergey Cheremencev · uploader Sergey Cheremencev · PS1 uploaded 86d ago · NEW · open in Gerrit ↗
commit message
LU-19900 lov: DIO+APPEND corruption on PFL extent boundaries

Data corruption occurs when O_DIRECT|O_APPEND writes cross PFL
component or stripe boundaries.  The root cause is the DIO stripe
cache in lov_page_init_composite(): once the first page resolves a
(component, stripe) pair, every subsequent page in the same DIO batch
blindly reuses that cached value, even when the page offset falls in a
different PFL component or a different stripe within the same
component.

For O_APPEND the LOV iter_init phase runs before vvp_io_write_start()
resolves the real file-end position (crw_pos is still 0 at that
point), so the batch is never pre-split at component/stripe
boundaries. A single DIO batch can therefore span multiple components
and stripes.

lov_page.c - lov_page_init_composite():
  Invalidate the DIO stripe cache when the page offset crosses:
  1) A PFL component boundary (offset >= lsme_extent.e_end), or
  2) A stripe boundary within a multi-stripe component (the
     stripe-size-relative chunk index differs from the cached one).
  On invalidation the full lov_io_layout_at / lov_stripe_number /
  lov_stripe_offset lookup is re-executed for the new page.

lov_io.c - lov_io_submit():
  Remove the CPT_TRANSIENT shortcut that spliced all remaining DIO
  pages into a single sub-IO batch regardless of cp_lov_index.  With
  the cache fix, DIO pages in an append batch can now carry different
  cp_lov_index values (different components/stripes).  Always group
  pages by cp_lov_index so each group is submitted to the correct
  sub-object.

Add sanity-pfl_101 which reproduces the problem without the fix.

Test-Parameters: fortestonly
Signed-off-by: Justin Oberdorf <joberdorf@ddn.com>
Signed-off-by: Sergey Cheremencev <scherementsev@ddn.com>
Change-Id: I110ccc8ed5e114e87c784e330b0ef08149d3ddba
64616 master J ✗4B ✓T ✗12R 0/2
LU-19823 lod: Make the stripe allocators failure domain aware.
reviewing Ronnie Sahlberg · awaiting review (CI not green yet)
4 unique failures ec2 M +236 −9
88d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_27Dseen in 92 other reviews
sanity1@zfs:test_27Dseen in 96 other reviews
sanity-hsm@zfs:test_12qseen in 60 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-subtest-change RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity-ec. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-hsm. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
11 optional test failure(s) — informational
build #124439 SUCCESS · tests all Maloo sessions
no vote yet: Marc Vef, Andreas Dilger
patchsets:
+12 earlier PS1 03-17 PS2 03-17 PS3 03-17 PS4 03-23 PS5 03-24 PS6 03-27 PS7 03-29 PS8 03-30 PS9 03-31 PS10 03-31 PS11 04-01 PS12 04-01
PS13 04-07 PS14 04-16 PS15 04-23 PS16 04-28 PS17 04-28
owner Ronnie Sahlberg · uploader Ronnie Sahlberg · PS17 uploaded 112d ago · NEW · open in Gerrit ↗
commit message
LU-19823 lod: Make the stripe allocators failure domain aware.

Add failure domain awareness to the RR and QOS allocators
when/if configured.
A failure domain value of 0 means not configured/not used.

For now we only implement this for EC. Later, we might
enable this for FLR Mirroring too.

Signed-off-by: Ronnie Sahlberg <rsahlberg@whamcloud.com>
Change-Id: I7bf09636939915b866eb97d9952bab2968d7718e
36766 master J ✗8B ✓T ✗16R 0/2
LU-11284 ldlm: enable lock convert for all bits
reviewing Mikhail Pershin · awaiting review (CI not green yet)
8 unique failures 2 unresolved S +14 −3
94d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
lnet-selftest@zfs:test_smokeseen in 3 other reviews
recovery-small@zfs:test_19aseen in 3 other reviews
sanity3@ldiskfs+DNE:test_300gseen in 2 other reviews
sanity3@zfs:test_300mNEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
sanity-lfsck@ldiskfs+DNE:test_18aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-lfsck@zfs:test_18aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-pcc@ldiskfs+DNE:test_29aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-pcc@zfs:test_29aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.7 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-dne-part-2 RHEL 9.7 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-hsm. session
review-dne-part-4 RHEL 9.7 / x86_64 ran 11 tests. 2 tests failed: sanity-quota, sanity-hsm. session
review-dne-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-pcc. session
review-dne-part-7 RHEL 9.7 / x86_64 ran 5 tests. 1 tests failed: sanity-pcc. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-hsm. session
review-dne-zfs-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-pcc. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.7 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 3 tests failed: sanity-sec, sanity-lnet, sanity. session
review-zfs RHEL 8.10 / x86_64 ran 8 tests. 1 tests failed: sanity-quota. session
24 optional test failure(s) — informational
build #125147 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Shuichi Ihara, Vitaly Fertman, Andreas Dilger, Oleg Drokin
patchsets:
+3 earlier PS9 10-16 PS10 10-16 PS11 02-26
PS12 06-03 PS13 06-05 PS14 06-07 PS15 05-15 PS16 05-16
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS16 2026-05-17 10:58 Andreas Dilger COMMIT_MSG:16 — Is this something that can continue to be improved in the future?
Andreas Dilger PS16 · 2026-05-17 10:58
Is this something that can continue to be improved in the future?
reply PS16 2026-05-17 11:11 Mikhail Pershin namei.c:430 — I am trying to move forward incrementally covering more cases.
Andreas Dilger PS16 · 2026-05-17 10:58
It would make sense to fix those cases on the MDS that you know about, so they request the needed bits, even if the client still cancels all bits on LAOUT lock for now. That makes the code "more correct" and is a step toward fixing the problem properly.
Mikhail Pershin PS16 · 2026-05-17 11:11
I am trying to move forward incrementally covering more cases.
owner Mikhail Pershin · uploader Mikhail Pershin · PS16 uploaded 95d ago · NEW · open in Gerrit ↗
commit message
LU-11284 ldlm: enable lock convert for all bits

Patch enables lock convert for all inodebits.
Several issues appeared during that due to changed lock
behaviors which weren't seen previously.

- most issues are related to EX LAYOUT lock taken on server
  MDT often assumes that taking EX LAYOUT bit will cancel
  whole lock with all other bits. That is hard to track and
  fix all such cases, so current patch just keep that
  behavior, if blocking lock is EX LAYOUT then lock convert
  is skipped

- llapi_layout_test 31 failure. Test adds new component and
  read new layout via fgetxattr() but it contains old layout.
  The problem is that at the moment of fgetxattr() call the
  local layout is still in 'invalid' because lock has gone
  during setxattr. Problem is hidden without lock convert
  because LAYOUT lock cancel also cancels PERM lock which
  causes inode dentries invalidate, so new object is created
  each time with fresh xattr from server. With lock convert
  that PERM bit stays and test read obsoleted xattr. Solution
  is to do ll_layout_refresh() in ll_getxattr_lov() prior
  getting layout from LOV, so obsoleted one will be updated.

Test-Parameters: testlist=performance-sanity,dom-performance,sanity-benchmark
Signed-off-by: Mikhail Pershin <mpershin@whamcloud.com>
Change-Id: I7e8c915e43841e10f21d2df0106c1bb783b322cc
65471 master J ✗4B ✓T ✗9R 0/2
LU-20139 lod: Add failure-domains to FLR allocations
reviewing Ronnie Sahlberg · awaiting review (CI not green yet)
4 unique failures ec2 stalled 111d M +123 −4
111d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_27Dseen in 92 other reviews
sanity1@zfs:test_27Dseen in 96 other reviews
sanity-hsm@zfs:test_12qseen in 60 other reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-hsm. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
12 optional test failure(s) — informational
build #124440 SUCCESS · tests all Maloo sessions
no vote yet: Marc Vef, Andreas Dilger
patchsets: PS1 04-23 PS2 04-23 PS3 04-28 PS4 04-28 PS5 04-28
owner Ronnie Sahlberg · uploader Ronnie Sahlberg · PS5 uploaded 112d ago · NEW · open in Gerrit ↗
commit message
LU-20139 lod: Add failure-domains to FLR allocations

Add failure-domain awareness to FLR mirrored files.
If overstriping is requested we allow the same failure domain to
be re-used within a component but not across components in different
mirrors.

Signed-off-by: Ronnie Sahlberg <rsahlberg@whamcloud.com>
Change-Id: Id8f4beb23ef20f805cbf47ba743b2291c8d4a9ae
50687 master J ✗1B ✓T ✗12R 0/2−
LU-12916 osd: use writeback for small writes in ldiskfs
reviewing Qian Yingjin · awaiting review (CI not green yet)
1 unique failure stalled 112d 1 unresolved L +639 −14
112d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_127fseen in 1 other review
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-sec. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-5 crashed RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanityn. %% THIS TEST SESSION CRASHED %% session
review-dne-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-subtest-change RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanityn. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
12 optional test failure(s) — informational
build #124337 SUCCESS · tests all Maloo sessions
no vote yet: Sohei Koyama, Shaun Tancheff, Shuichi Ihara, Andreas Dilger, Alex Zhuravlev
patchsets:
+68 earlier PS1 04-19 PS2 04-19 PS3 04-19 PS4 04-20 PS5 04-20 PS6 04-20 PS7 04-20 PS8 04-20 PS9 04-21 PS10 04-21 PS11 04-21 PS12 04-21 PS13 04-22 PS14 04-22 PS15 04-22 PS16 04-23 PS17 04-23 PS18 04-23 PS19 04-23 PS20 04-23 PS21 04-23 PS22 04-23 PS23 04-23 PS24 04-23 PS25 04-23 PS26 04-24 PS27 04-24 PS28 04-24 PS29 04-24 PS30 04-24 PS31 04-24 PS32 04-24 PS33 04-25 PS34 04-25 PS35 04-25 PS36 04-26 PS37 04-26 PS38 04-27 PS39 04-27 PS40 04-28 PS41 05-11 PS42 09-22 PS43 10-25 PS44 12-15 PS45 12-15 PS46 12-15 PS47 01-17 PS48 01-19 PS49 03-15 PS50 03-22 PS51 03-26 PS52 04-01 PS53 05-10 PS54 03-06 Sohei Koyama PS55 04-15 Sohei Koyama PS56 04-24 Sohei Koyama PS57 04-24 Sohei Koyama PS58 04-24 Sohei Koyama PS59 04-24 Sohei Koyama PS60 05-06 Sohei Koyama PS61 05-06 Sohei Koyama PS62 05-07 Sohei Koyama PS63 05-07 Sohei Koyama PS64 07-09 Sohei Koyama PS65 07-09 Sohei Koyama PS66 07-09 Sohei Koyama PS67 10-02 Sohei Koyama PS68 10-02 Janitor Bot
PS69 10-02 Sohei Koyama PS70 10-29 Sohei Koyama PS71 10-29 Janitor Bot PS72 04-23 Marc Vef PS73 04-24 Marc Vef
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS72 2026-04-24 08:41 Qian Yingjin COMMIT_MSG:19 — Please note this patch is using buffered I/O path on ldiskfs. I think Lustre fscrypt does not handle the buffered I/O case, only patched ext
Andreas Dilger PS72 · 2026-04-24 08:29
(typo) ".patch"

Writes for fscrypt files *should* always be full-block writes?  Why/how would writes to fscrypt files be partial blocks?  The client should be sending a full encrypted 4KiB block, but then set the size on the inode without truncating it.
Qian Yingjin PS72 · 2026-04-24 08:41
Please note this patch is using buffered I/O path on ldiskfs. I think Lustre fscrypt does not handle the buffered I/O case, only patched ext4 for fscypt with write through (direct I/O) mode.

Although writes from clients are always full-block writes, but the size calls via lnb offset + len may be not full-block aligned, we use this size for the actual size of the file?
owner Qian Yingjin · uploader Marc Vef · PS73 uploaded 117d ago · NEW · open in Gerrit ↗
commit message
LU-12916 osd: use writeback for small writes in ldiskfs

This patch implements the writeback caching for small writes on
Lustre OSD (ldiskfs).
The writes are not synchronous any more on OST. It marks the page
as dirty and create buffer heads mapping pages to the physical
blocks. The kernel writeback mechanism will handle the actual I/O.

This patch should improve the performance for I/O cases such as
small writes from many files (i.e. mdtest-hard-write) or
unaligned I/O on a shared file (i.e. ior-hard-write).

Add a ldiskfs patch "ext4-writeback.patch" to not zero out
non-full page during writeback for a encrypted file. Without this
ldiskfs patch, it will fail sanity-sec/test_37.

According to the benchmark results, this patch can improve the
IO500 mdtest-hard performance and the performance of the real
application Nek5000 turbulent pipe with more than 10%.

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: I9b5aa568a49d5b39d04656fdacb94c3a6ec5a7ff
65472 master J !B ✓T ✗8R 0/2
LU-20186 llite: fix libaio metrics in llite.*.stats
reviewing Jinshan Xiong · awaiting review (CI not green yet)
stalled 116d M +64 −15
116d
janitor run: 14 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 7 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 7 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 8 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 8 tests. 1 tests failed: sanity. session
11 optional test failure(s) — informational
build #124283 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
owner Jinshan Xiong · uploader Jinshan Xiong · PS1 uploaded 118d ago · NEW · open in Gerrit ↗
commit message
LU-20186 llite: fix libaio metrics in llite.*.stats

When using asynchronous I/O (e.g., libaio), operations return
-EIOCBQUEUED upon submission, bypassing the standard stats tallying
in ll_file_io_generic(). This results in missing I/O metrics in
llite.*.stats and extents_stats_per_process.

This patch fixes the issue by deferring AIO/DIO stats tallying to
the completion path:
- Extend `struct cl_dio_aio` to track submission context (start time,
  pid, file data, and I/O type).
- Update `cl_dio_aio_alloc()` to accept a custom end_io callback.
- Introduce `ll_cl_dio_aio_end()` in llite to tally latency and bytes
  upon AIO completion.
- Skip synchronous tallying for IOCB_DIRECT to avoid double-counting.

Note: This patch is AI generated and reviewed by human.

Signed-off-by: Jinshan Xiong <jinshanx@google.com>
Change-Id: I9fe38cc64ed50548a71dee7cc303d129329f191c
60181 master J –B ✓T ✗16R 0/2−
LU-9 lod: improve qos stripe allocation
reviewing Frederick Dilger · awaiting review (CI not green yet)
stalled 131d XL +1116 −124
131d
failed enforced testplatformdetail
custom-1001 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-1 crashed RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-1 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-3 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-pcc. session
review-dne-part-7 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity-pcc. session
review-dne-selinux-ssk-part-1 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-subtest-change failed 2× RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 crashed RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-6 crashed RHEL 8.10 / x86_64 ran 6 tests. 2 tests failed: ost-pools, replay-single. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-7 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-pcc. session
review-dne-zfs-subtest-change failed 2× RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity-lnet. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
8 optional test failure(s) — informational
build #121294 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2026-03-09 21:47
no vote yet: Ronnie Sahlberg
patchsets:
+39 earlier PS1 07-15 PS2 07-15 PS5 07-23 PS6 07-23 PS7 08-06 PS8 08-06 PS9 08-18 PS10 09-06 PS11 09-07 PS12 09-07 PS13 09-07 PS14 09-08 PS15 09-08 PS16 09-14 PS17 09-14 PS18 09-15 PS19 09-16 PS20 09-18 PS21 09-18 PS22 09-18 PS23 09-23 PS24 09-23 PS25 10-01 PS26 10-01 PS27 10-01 PS28 10-04 PS29 10-07 PS30 11-12 PS31 11-12 PS32 11-12 PS33 11-12 PS34 11-12 PS35 01-18 PS36 01-22 PS37 01-22 PS38 01-22 PS39 01-22 PS40 01-22 PS41 01-22
PS42 01-24 PS43 01-28 PS44 01-28 PS45 01-30 PS46 02-05
owner Frederick Dilger · uploader Frederick Dilger · PS46 uploaded 195d ago · NEW · open in Gerrit ↗
commit message
LU-9 lod: improve qos stripe allocation

Replace random OST selection with deterministic weighted round-robin
allocation that ensures proportional distribution based on OST
capacity and distributing the load across MDSs.

The previous QoS method relied on RNG to approximately
distribute stripes proportionally to OST weights, however this lead
to occasional unbalancing due to RNG variance. This new approach
uses a cursor-based system that increments by the average weight,
ensuring that OSTs with a higher weight will be hit more often
and OSTs with a lower weight will be skipped more often.

Key improvements:
- Deterministic allocation eliminates RNG variance
- Better load distribution across unbalanced OSTs
- Enhanced anti-aliasing to prevent clustering
- New aggressive rebalancing (prio_freee > 100%)
- prio_free <= 100% is now a linear slider between RR and QoS
- Comprehensive test coverage for allocation patterns

These features are now enabled by default through
  qos_threshold_rr=0
  qos_prio_free=100
which means that QoS is active if there is a difference of 0% or more
across target devices, and will balance directly proportional to the
target weights.

Test-Parameters: testlist=sanity env=ONLY=413a,56xe
Test-Parameters: testlist=sanity env=ONLY=123ac,ONLY_REPEAT=10
Test-Parameters: testlist=sanity env=ONLY=51d,OSTCOUNT=3
Test-Parameters: testlist=sanity env=ONLY=51d,OSTCOUNT=4
Test-Parameters: testlist=sanity env=ONLY=51d,OSTCOUNT=5
Test-Parameters: testlist=sanity env=ONLY=51d,OSTCOUNT=6
Test-Parameters: testlist=sanity env=ONLY=51d,OSTCOUNT=7
Test-Parameters: testlist=sanity env=ONLY=51d,OSTCOUNT=8
Test-Parameters: testlist=sanity env=ONLY=51d,OSTCOUNT=9
Test-Parameters: testlist=sanity env=ONLY=51d,OSTCOUNT=10
Test-Parameters: testlist=sanity env=ONLY=51d,OSTCOUNT=11
Test-Parameters: testlist=sanity env=ONLY=51d,OSTCOUNT=12
Signed-off-by: Frederick Dilger <fdilger@whamcloud.com>
Change-Id: Ie314438e03f867fe978adc37d62b504532961cd2
62479 master J !B ✓T ✗10R 0/2−
LU-19298 lod: use Xarray instead of static arrays for comp entires
reviewing James Simmons · awaiting review (CI not green yet)
stalled 140d 1 unresolved L +442 −423
140d
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-2 crashed RHEL 9.5 / x86_64 ran 13 tests. 2 tests failed: sanity-pfl, sanity-lfsck. %% THIS TEST SESSION CRASHED %% session
review-dne-part-2 crashed RHEL 8.10 / x86_64 ran 13 tests. 2 tests failed: sanity-pfl, sanity-lfsck. %% THIS TEST SESSION CRASHED %% session
review-dne-part-4 crashed RHEL 8.10 / x86_64 ran 11 tests. 2 tests failed: sanity-quota, sanity-flr. %% THIS TEST SESSION CRASHED %% session
review-dne-part-4 crashed RHEL 9.5 / x86_64 ran 11 tests. 2 tests failed: sanity-quota, sanity-flr. %% THIS TEST SESSION CRASHED %% session
review-dne-part-7 crashed RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: sanity-pcc. %% THIS TEST SESSION CRASHED %% session
review-dne-part-7 crashed RHEL 9.5 / x86_64 ran 7 tests. 1 tests failed: sanity-pcc. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-2 crashed RHEL 8.10 / x86_64 ran 13 tests. 2 tests failed: sanity-pfl, sanity-lfsck. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-flr. session
review-dne-zfs-part-7 crashed RHEL 8.10 / x86_64 ran 7 tests. 1 tests failed: sanity-pcc. %% THIS TEST SESSION CRASHED %% session
review-zfs RHEL 8.10 / x86_64 ran 10 tests. 1 tests failed: sanity-flr. session
build #119712 SUCCESS · tests all Maloo sessions
no vote yet: Ronnie Sahlberg, Qian Yingjin, Alexey Lyashkov, Andreas Dilger, Zhenyu Xu
patchsets: PS1 11-10 PS2 11-16 PS3 12-12
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS3 2025-12-18 13:27 Andreas Dilger patchset comment — James, file layout join/migrate/mirror happen _maybe_ only once or twice in the lifetime of a file, so it doesn't make sense to add a comple
Patrick Farrell PS3 · 2025-12-15 17:25
James, the lack of ability to remove other components than the last one is a deliberate choice to prevent the creation of incomplete layouts.  There is nothing about the current approach that can’t support removing other components, it’s just a sanity restriction.
James Simmons PS3 · 2025-12-18 00:33
Think about file join work with 2 mirrors each with 3 components and another file with also 2 mirrors also with 3 components. Its going to be merged right. The current approach would require allocating a new larger array. Then copying items from file 1 static array and then copying items from file 2 static array. Then deleting the old array. Some slicing is needed due the 2 mirrors. Compared to Xarray its erasing the reference to pointers in file 2 xarray and adding a reference of that same pointer into file 1 Xarray. Do you feel the former approach is way better?

Honestly the biggest impact is for the file join project so the really important opinion I need is from Alexey. Alexey what do you think?
Patrick Farrell PS3 · 2025-12-18 01:29
Yes, I do - it's very simple.  You allocate a larger array and write the layout to it.  Very simple.

It requires no complex data structures and no locking.  The idea that we should have references across two xarrays is very concerning - that means the layout components need reference counting then, I guess?  They do not today.

There is no particular impact on file join - it is just as easy to do file join via layout copy as any other operation.
Andreas Dilger PS3 · 2025-12-18 13:27
James, file layout join/migrate/mirror happen _maybe_ only once or twice in the lifetime of a file, so it doesn't make sense to add a complex data structure and overhead to optimize a 0.00001% usage case.  That is doubly a problem if it means many small allocations and/or additional locking needs to be added to handle this extremely rare use case.
owner James Simmons · uploader James Simmons · PS3 uploaded 250d ago · NEW · open in Gerrit ↗
commit message
LU-19298 lod: use Xarray instead of static arrays for comp entires

The LOD layer implements very large static arrays to manage the
component entries for each layout. This works well for the case
that all the components are for block I/O that are expected to
be aligned to each other in a specific order. In such cases the
API works to add or delete components at the end of such layouts.
With the upcoming introducting of parity and foreign components
the rules change in that you can delete or add a component
located in the middle of the layout. This would be very
complicated when using static arrays.

To make life easier for upcoming projects we move away from
static arrays to using Xarrays. We no longer requires creating
a whole new array and copying components over. Instead we just
insert or delete components into the Xarray. This current
implementation just does the change from static arrary to
Xarray without truly introducing gaps in the Xarray. This can
be done in follow on patches and can be used to greatly simplify
the code. For example since "gaps" are allowed in the Xarray
we can place components in the Xarray using the mirror id as
apart of the index which mirrors the component ID. This removes
the need to manage the new mirror ranges in the Xarray.

Change-Id: I67020f899ad89bfa6095c4b22f7f1b07b6de3e86
Signed-off-by: James Simmons <jsimmons@infradead.org>
60897 master J ✗2B ✓T ✗4R 0/2−
LU-19298 lod: merge different lmm handling togther.
reviewing James Simmons · awaiting review (CI not green yet)
2 unique failures stalled 141d L +225 −300
141d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-pfl@ldiskfs+DNE:test_1cNEW unique failure for this branch in the last 30 days, and was seen 2 times across 1 other branches 1 reviews
sanity-pfl@zfs:test_1cNEW unique failure for this branch in the last 30 days, and was seen 2 times across 1 other branches 1 reviews
failed enforced testplatformdetail
review-dne-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-pfl. session
review-dne-part-2 RHEL 9.5 / x86_64 ran 11 tests. 1 tests failed: sanity-pfl. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-pfl. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
4 optional test failure(s) — informational
build #116154 SUCCESS · tests all Maloo sessions
no vote yet: Alexey Lyashkov, Andreas Dilger
patchsets:
+1 earlier PS1 08-25
PS2 08-27 PS3 08-28 PS4 08-31 PS5 08-31 Janitor Bot PS6 08-31
owner James Simmons · uploader James Simmons · PS6 uploaded 353d ago · NEW · open in Gerrit ↗
commit message
LU-19298 lod: merge different lmm handling togther.

For PFL handling the LOD has developed very similar code independently.
Besides code duplication we end up not having consistent PFL handling.
For example lod_layout_add() handling doesn't support specific OST
indexes being requested by the user for the new component. We merge
all the code into lod_comp_for_each_lcm(). In the future any change
here will impact many code paths at the same time. For EC developement
we don't need to touch any many places in the code.

Signed-off-by: James Simmons <jsimmons@infradead.org>
Change-Id: Ic2392dd84eb397e87e384d6916ccb2de04b6d083
58126 master J !B ✓T ✗2R 0/2−
LU-18725 utils: create ll_decode_lov
reviewing Sohei Koyama · awaiting review (CI not green yet)
stalled 141d 13 unresolved XL +1933 −1025
141d
janitor run: 4 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-zfs RHEL 8.10 / x86_64 ran 8 tests. 1 tests failed: sanity-quota. session
3 optional test failure(s) — informational
build #122627 SUCCESS · tests all Maloo sessions
no vote yet: Aurélien Cedeyn, Andreas Dilger, Li Xi
patchsets:
+15 earlier PS1 02-19 PS2 02-19 PS5 02-25 PS6 05-07 PS7 05-12 PS8 05-14 PS9 07-11 PS10 07-11 Janitor Bot PS11 07-11 PS12 09-30 PS13 10-29 PS14 10-29 PS15 12-18 PS16 01-07 PS17 01-09
PS18 01-09 PS19 01-09 Janitor Bot PS20 01-09 PS21 01-09 PS22 03-17
threads: 13 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS22 2026-03-17 22:39 Andreas Dilger ll_decode_lov.8:25 — (style) wrap lines <= 80 columns
Andreas Dilger PS22 · 2026-03-17 22:39
(style) wrap lines <= 80 columns
reply PS22 2026-03-17 22:39 Andreas Dilger ll_decode_lov.8:40 — (style) prefer to show YAML-formatted layout in example
Andreas Dilger PS22 · 2026-03-17 22:39
(style) prefer to show YAML-formatted layout in example

(minor) this shouldn't need root access to work?  Ah, I see that it is accessing `trusted.lov` (which does need root access), when it could be using `lustre.lov` (which allows non-root users to read the xattr).  See my later comments about this.
reply PS22 2026-03-17 22:39 Andreas Dilger ll_decode_lov.8:57 — (minor) it would be better to reference `lfs-getstripe (1)` here, instead of the generic `lfs (1)` page
Andreas Dilger PS22 · 2026-03-17 22:39
(minor) it would be better to reference `lfs-getstripe (1)` here, instead of the generic `lfs (1)` page
reply PS11 2025-07-16 07:38 Andreas Dilger ll_decode_lov.8:14 — (style) wrap lines at 80 columns, preferably at natural breaks in the sentence (e.g. after '.' or ',')
Andreas Dilger PS11 · 2025-07-16 07:38
(style) wrap lines at 80 columns, preferably at natural breaks in the sentence (e.g. after '.' or ',')
reply PS11 2025-07-16 07:38 Andreas Dilger ll_decode_lov.8:32 — If writing a new tool, it would be better to always use the YAML-style output like "lfs getstripe --yaml" so that it can be parsed and read
Andreas Dilger PS11 · 2025-07-16 07:38
If writing a new tool, it would be better to always use the YAML-style output like "lfs getstripe --yaml" so that it can be parsed and read more easily.  The "old style" output here has a lot of historical baggage (e.g. "group" doesn't really exist anymore).
reply PS22 2026-03-17 22:39 Andreas Dilger sanity.sh:19432 — (minor) This should verify that the output format is valid YAML:
Andreas Dilger PS22 · 2026-03-17 22:39
(minor) This should verify that the output format is valid YAML:

            verify_yaml_available &&
                    $LL_DECODE_LOV --yaml $DIR/$tdir/$tfile | verify_yaml ||
                    error "ll_decode_lov --yaml does not produce valid YAML output"
reply PS22 2026-03-17 22:39 Andreas Dilger sanity.sh:19442 — (style) don't need `local` again here, since `local lov` was already declared above
wc-checkpatch PS22 · 2026-03-17 06:46
(style)  line length of 86 exceeds 80 columns
Andreas Dilger PS22 · 2026-03-17 22:39
(style) don't need `local` again here, since `local lov` was already declared above
reply PS22 2026-03-17 22:39 Andreas Dilger sanity.sh:19443 — (minor) This should also verify that the output format is valid YAML.
Andreas Dilger PS22 · 2026-03-17 22:39
(minor) This should also verify that the output format is valid YAML.

Since this is a new utility, is there any benefit to *not* producing YAML output by default from the beginning?
reply PS16 2026-01-09 08:32 Andreas Dilger liblustreapi_lovea.c:1464 — (style) This could be fixed if patch is refreshed.
wc-checkpatch PS16 · 2026-01-07 07:41
(style)  Missing a blank line after declarations
Andreas Dilger PS16 · 2026-01-09 08:32
(style) This could be fixed if patch is refreshed.
reply PS22 2026-03-17 22:39 Andreas Dilger liblustreapi_lovea.c:403 — (minor) this warning is valid
wc-checkpatch PS22 · 2026-03-17 06:46
(style)  'sprintf' may be misspelled - perhaps 'snprintf'?
Andreas Dilger PS22 · 2026-03-17 22:39
(minor) this warning is valid
reply PS22 2026-03-17 22:39 Andreas Dilger liblustreapi_lovea.c:783 — (defect?) why re-declare this function, which is available in `liblustreapi.c`? It could be declared only in `lustreapi_internal.h`
Andreas Dilger PS22 · 2026-03-17 22:39
(defect?) why re-declare this function, which is available in `liblustreapi.c`?  It could be declared only in `lustreapi_internal.h`
reply PS22 2026-03-17 22:39 Andreas Dilger liblustreapi_lovea.c:1420 — (defect?) the `trusted.lov` xattr is only available to the root user. If this read the `lustre.lov` alias then regular users could use this
Andreas Dilger PS22 · 2026-03-17 22:39
(defect?) the `trusted.lov` xattr is only available to the root user.  If this read the `lustre.lov` alias then regular users could use this tool as well.  However, that wouldn't work with a local ldiskfs mount, so it probably makes sense to try `lustre.lov` and if `-ENODATA` is returned then try `trusted.lov` before returning an error (or try `trusted.lov` and if `-EACCES` is returned then try `lustre.lov`).
owner Sohei Koyama · uploader Sohei Koyama · PS22 uploaded 155d ago · NEW · open in Gerrit ↗
commit message
LU-18725 utils: create ll_decode_lov

Like ll_decode_linkea, create ll_decode_lov.
This allows us to directly scan the MDT for information that can
be obtained with lfs getstripe.

The LOV printing functions are moved from liblustreapi.c to a new
file liblustreapi_lovea.c. This includes both raw printing functions
(for xattr buffer decoding) and wrapper functions (with path lookups).

Signed-off-by: Sohei Koyama <skoyama@ddn.com>
Change-Id: I50fcb0be067a4cda80aea19fa4b64b8ccf3a9667
60716 master J ✗10B ✓T ✗3R 1/2
LU-19823 lod: move flagging ost for avoidance into a helper function
reviewing Ronnie Sahlberg · awaiting review (CI not green yet)
10 unique failures stalled 146d S +26 −22
146d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity1@ldiskfs+DNE:test_27Dseen in 50 other reviews
sanity1@zfs:test_27Dseen in 48 other reviews
sanity-hsm@zfs:test_12qseen in 17 other reviews
sanity-hsm@zfs:test_254bNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-lfsck@ldiskfs+DNE:test_20aseen in 31 other reviews
sanity-lfsck@ldiskfs+DNE:test_20bseen in 31 other reviews
sanity-lfsck@zfs:test_20aseen in 31 other reviews
sanity-lfsck@zfs:test_20bseen in 31 other reviews
sanity-pcc@zfs:test_20seen in 15 other reviews
failed enforced testplatformdetail
review-ldiskfs-dne RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm crashed RHEL 8.10 / x86_64, Rocky 9.5 / aarch64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
build #121469 SUCCESS · tests all Maloo sessions
reviews: Frederick Dilger +1 2026-03-26 17:04
no vote yet: Andreas Dilger
patchsets:
+3 earlier PS1 08-14 PS2 08-14 PS3 08-19
PS4 09-01 PS5 09-16 PS6 02-05 PS7 02-09 PS8 02-09
owner Ronnie Sahlberg · uploader Ronnie Sahlberg · PS8 uploaded 190d ago · NEW · open in Gerrit ↗
commit message
LU-19823 lod: move flagging ost for avoidance into a helper function

Test-Parameters: trivial
Signed-off-by: Ronnie Sahlberg <rsahlberg@whamcloud.com>
Change-Id: I0838b1271d48c2e157a164472870d650a9e125d8
55705 master J ✗1B ✓T ✗4R 0/2−
LU-17848 osd: don't use exports for ref counting
reviewing Timothy Day · awaiting review (CI not green yet)
1 unique failure osd-mem stalled 162d 4 unresolved L +172 −540
162d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-lnet@zfs:test_260seen in 6 other reviews
failed enforced testplatformdetail
review-dne-part-3 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-3 crashed RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: lustre-rsync-test. session
review-dne-zfs-part-3 crashed RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. %% THIS TEST SESSION CRASHED %% session
5 optional test failure(s) — informational
build #122188 SUCCESS · tests all Maloo sessions
no vote yet: Mikhail Pershin, Alex Zhuravlev
patchsets:
+4 earlier PS1 07-11 PS2 07-11 PS3 07-11 PS4 08-22
PS5 03-06 PS6 03-06 PS7 03-07 PS8 03-07 PS9 03-07
threads: 4 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS9 2026-03-09 15:03 Timothy Day patchset comment — I've been looking for ways to make the Lustre start/stop flows simpler and more robust. I've already done a bunch of work towards standardiz
Alex Zhuravlev PS9 · 2026-03-09 14:31
please clarify how it's better than the existing approach. notice we use the same mechanism for other OSD API devices like OSP
Timothy Day PS9 · 2026-03-09 15:03
I've been looking for ways to make the Lustre start/stop flows simpler and more robust. I've already done a bunch of work towards standardizing the individual device start/stop flows (i.e. https://review.whamcloud.com/c/fs/lustre-release/+/58831/3).

Lustre uses a global mutex on the server start/stop (i.e. server_start_lock). I think it would be better if we could move away from that. To get there, I think we need to stop sharing devices globally as much and keep more stuff private to the superblock of each mount.

This patch is an attempt to do that for OSD. I'm not 100% convinced yet. My main concern is that we likely want the OSD to lifetime to exist independently of the lustre_tgt superblock. I don't think anything in Lustre requires this today. But I'd like to see some kind of online OSD reader, which would require this. But even for that, I think this obd_connect()/disconnect() approach is a bit heavy. A lighter weight ref count (perhaps the lu_device ref count? Or a new refcount?) would be better.
reply PS8 2026-03-07 05:00 Andreas Dilger lod_dev.c:1963 — (style) It would be better to remove the `lod_init0()` name and use something more meaningful, since James is just trying to remove the `0`
Andreas Dilger PS8 · 2026-03-07 05:00
(style) It would be better to remove the `lod_init0()` name and use something more meaningful, since James is just trying to remove the `0` usage.
reply PS3 2024-07-11 20:03 Timothy Day mgc_request_server.c:113 — An llog_ctxt contains a disk export - so this needs a bit more reworking.
Timothy Day PS3 · 2024-07-11 20:03
An llog_ctxt contains a disk export - so this needs a bit more reworking.
reply PS3 2024-07-11 20:03 Timothy Day obd_mount.c:692 — Need to add check for dt device or similar.
Timothy Day PS3 · 2024-07-11 20:03
Need to add check for dt device or similar.
owner Timothy Day · uploader Timothy Day · PS9 uploaded 165d ago · NEW · open in Gerrit ↗
commit message
LU-17848 osd: don't use exports for ref counting

OSDs currently use OBD exports to track users. OSD consumers
obd_connect()/obd_disconnect() to hold and release references on
the OSD. This is an abuse of the OBD API and needlessly verbose.

Instead, attach the lifetime of the OSD device to the lifetime
of the lustre_tgt superblock - start the OSD first and stop it
last.

Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: Id14bc14881a3b694b214c121c7e00bfbb9b1f896
61816 b2_15 J !B ✓T ✗2R 0/1−
LU-19223 osc: stop after scanning
reviewing Etienne AUJAMES · awaiting review (CI not green yet)
stalled 191d M +100 −21
191d
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 failed 2× RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: pjdfstest. session
1 optional test failure(s) — informational
build #117419 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2026-02-07 16:29
no vote yet: Shaun Tancheff, Zhenyu Xu
patchsets: PS1 10-14 PS2 10-14
owner Etienne AUJAMES · uploader Etienne AUJAMES · PS2 uploaded 309d ago · NEW · backport · open in Gerrit ↗
commit message
LU-19223 osc: stop after scanning

Currently, the Lustre shrinker tries to scan until it has
freed the number of pages requested for scanning.  If no
pages can be freed, this can take an extremely long time,
manifesting as an almost hung system.

Also set nr_scanned so the kernel can understand what
we've done.

Lustre-change: https://review.whamcloud.com/60489
Lustre-commit: 109e32dc23c53baf0d5b8e11d34a9f5f2fce70aa

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Ic3ed85d27a785c2f722b6529b79beb3757e15549
Reviewed-by: Zhenyu Xu <bobijam@whamcloud.com>
Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Signed-off-by: Etienne AUJAMES <eaujames@ddn.com>
61813 master J !B ✓T ✗3R 0/2
LU-19469 llite: hole-aware read optimization for truncate extend
reviewing Qian Yingjin · awaiting review (CI not green yet)
stalled 196d 17 unresolved XL +1188 −30
196d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
review-dne-zfs-part-2 RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
6 optional test failure(s) — informational
build #120276 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+18 earlier PS1 10-14 PS2 10-20 PS3 10-20 PS4 10-21 PS5 10-21 PS6 10-21 PS7 10-28 PS8 10-28 PS9 10-29 PS10 10-30 PS11 10-30 PS12 10-31 PS13 10-31 PS14 10-31 PS15 11-02 PS16 11-02 PS17 11-03 PS18 01-06
PS19 01-09 PS20 01-09 PS21 01-09 PS22 01-11 PS23 01-11
threads: 17 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS23 2026-02-04 08:09 Qian Yingjin COMMIT_MSG:27 — We purge the hole extent conflicting with lock extent during the BAST of the lock in osc_dlm_blocking_ast0().
Andreas Dilger PS23 · 2026-02-03 21:25
I don't think the DLM lock association could be optional?  Otherwise, the client could cache holes that are not revoked when another client writes into that extent.
Qian Yingjin PS23 · 2026-02-04 08:09
We purge the hole extent conflicting with lock extent during the BAST of the lock in osc_dlm_blocking_ast0().
reply PS1 2025-10-20 10:19 Qian Yingjin cl_object.h:1418 — done
Andreas Dilger PS1 · 2025-10-17 04:12
(minor) it should be enough to check e.g. `cra_hole_end != 0` instead of a separate `cra_hole_found`?
Qian Yingjin PS1 · 2025-10-20 10:19
done
reply PS23 2026-02-03 21:25 Andreas Dilger cl_object.h:1391 — (style) maybe 'che_' would be a better prefix
Andreas Dilger PS23 · 2026-02-03 21:25
(style) maybe 'che_' would be a better prefix
reply PS17 2025-11-03 06:30 Andreas Dilger lustre_import.h:133 — The client should not know about the backing filesystem type.
Andreas Dilger PS17 · 2025-11-03 06:30
The client should not know about the backing filesystem type.
reply PS23 2026-02-04 08:09 Qian Yingjin obd.h:159 — It is not stable. Once it is stable, it will enable by default.
Andreas Dilger PS23 · 2026-02-03 21:25
Is there a reason not to enable hole extents by default?
Qian Yingjin PS23 · 2026-02-04 08:09
It is not stable. Once it is stable, it will enable by default.
reply PS1 2025-10-20 10:19 Qian Yingjin llite_internal.h:793 — done
Andreas Dilger PS1 · 2025-10-17 04:12
(style) align "bool" arguments to avoid making struct larger
Qian Yingjin PS1 · 2025-10-20 10:19
done
reply PS1 2025-10-20 10:19 Qian Yingjin rw.c:261 — done
Andreas Dilger PS1 · 2025-10-17 04:12
(style) better not to have "magic" numbers in different places.  Prefer some kind of constant, like `RA_PAGE_HOLE = 2` and then use that here and below.
Qian Yingjin PS1 · 2025-10-20 10:19
done
reply PS1 2025-10-17 04:12 Andreas Dilger rw.c:424 — (style) can fit on previous line
Andreas Dilger PS1 · 2025-10-17 04:12
(style) can fit on previous line
reply PS6 2025-10-22 18:45 Andreas Dilger rw.c:1827 — (style) this warning can be quieted by putting `DFID` at the end of the previous line
wc-checkpatch PS6 · 2025-10-21 09:13
(style)  line length of 165 exceeds 80 columns
Andreas Dilger PS6 · 2025-10-22 18:45
(style) this warning can be quieted by putting `DFID` at the end of the previous line
reply PS6 2025-10-22 18:45 Andreas Dilger osc_cache.c:3361 — (defect?) Somehow this change has caused a lot of test timeouts.
Andreas Dilger PS6 · 2025-10-22 18:45
(defect?) Somehow this change has caused a lot of test timeouts.
reply PS17 2025-11-03 06:30 Andreas Dilger osc_cache.c:829 — To clarify here, if there is a write to a hole extent, is the hole split/shrunk or is it removed entirely?
Andreas Dilger PS17 · 2025-11-03 06:30
To clarify here, if there is a write to a hole extent, is the hole split/shrunk or is it removed entirely?
reply PS17 2025-11-03 06:30 Andreas Dilger osc_cache.c:1370 — (defect) this functionality shouldn't depend on the backing filesystem type.
Andreas Dilger PS17 · 2025-11-03 06:30
(defect) this functionality shouldn't depend on the backing filesystem type.

The ZFS hole size is always going to be the same alignment or larger than ldiskfs (multiple of 4KiB), so I don't understand why this is here.
owner Qian Yingjin · uploader Qian Yingjin · PS23 uploaded 220d ago · NEW · open in Gerrit ↗
commit message
LU-19469 llite: hole-aware read optimization for truncate extend

A client can cache hole extent information locally and serve
zero-filled pages for hole regions avoiding long client I/O path,
without network round-trips and bulk data transfer, significantly
improving performance for sparse file read operations while
maintainint data consistency through Lustre's existing DLM
infrastructure.

This patch implements hole-aware read optimization for the holes
generated by extended truncate().

The hole extents are managed using the existing @osc_extent data
structure with the following enhancements:
- hole marker: Add a flag (oe_hole) to distinguish hole extents
  from regular data extents;
- Rbtree integration: Store hole extents in the same osc_object->
  oo_root tree alongside regular extents;
- State management: define specific states for hole extent
  lifecycle (e.g., OES_CACHE with oe_hole=1);
- Lock association (optional): Maintain association between hole
  extents and protecting DLM locks;

The hole extent will be inserted into per-object extent rbtree
when a client executed extended truncate operation and extended
the file beyond current size.
Page read or readahead will try to check the OSC object's extent
tree. If found a matched hole extent, directly zero-fill pages
for the hole regions and mark pages as uptodate.
The hole extent will be removed when detect the write operations
overlapping with the cached hole extent.
Lock blocking AST will also remove conflicting hole extents from
the rbtree of the object.

Add sanity/test_856{a/b/c/d/e} to verify it.

Signed-off-by: Yingjin Qian <qian@ddn.com>
Change-Id: I53ffaded1bc92fb60ceecf6b3acc78e979713953
29117 master J –B ✓T ✗0R 0/2−
LU-10013 llite: Atomic usage cleanups
reviewing Patrick Farrell · awaiting review (CI not green yet)
stalled 215d 5 unresolved M +76 −88
215d
reviews: Alex Zhuravlev -1 2017-09-22 08:17
no vote yet: Dmitry Eremin, Arshad Hussain
threads: 5 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS3 2025-08-01 05:17 Arshad Hussain COMMIT_MSG:9 — This patch is a improvement even if it does do "There are a lot of places in Lustre where we use more than one atomic operation where one wi
Arshad Hussain PS3 · 2025-08-01 05:17
This patch is a improvement even if it does do "There are a lot of places in Lustre where we use more than one atomic operation where one will do".
reply PS3 2025-08-01 04:52 Arshad Hussain lib-lnet.h:420 — IMO, to change read + check for zero then increment like below...
Arshad Hussain PS3 · 2025-08-01 04:52
IMO, to change read + check for zero then increment like below...

ASSERT(atomic_read(&lp->lpni_refcount) > 0);
atomic_inc(&lp->lpni_refcount);

is to change to 

LASSERT(atomic_inc_not_zero(&hdev->ibh_ref));

since we do not want to always increment. But only increment if the value is not zero. Else it is error condition
reply PS3 2025-08-01 05:17 Arshad Hussain import.c:1380 — same...
Arshad Hussain PS3 · 2025-08-01 05:17
same...
reply PS3 2025-08-01 05:17 Arshad Hussain service.c:1386 — this looks correct
Arshad Hussain PS3 · 2025-08-01 05:17
this looks correct
reply PS3 2025-08-01 05:17 Arshad Hussain lquota_entry.c:126 — this is definitely a win... others also
Arshad Hussain PS3 · 2025-08-01 05:17
this is definitely a win... others also
owner Patrick Farrell · uploader Patrick Farrell · PS3 uploaded 3255d ago · NEW · open in Gerrit ↗
commit message
LU-10013 llite: Atomic usage cleanups

There are a lot of places in Lustre where we use more than
one atomic operation where one will do. The compiler can't
fix this for us, since usage of atomics is mostly exempt
from optimization.

This patch cleans up many of those cases. In a few places,
this has a measurable benefit.  (lu_object_get can use
atomic_inc_return for the ASSERT, and this nets a few %
improvement on single process reads).  The change to
osc_update_pending is expected to net a few % on shared
file workloads.

Signed-off-by: Patrick Farrell <paf@cray.com>
Change-Id: Ie2b0b4a7fac4e544a66746c95e496071765070a3
49342 master J ✗1B ✓T ✗10R 0/2−
LU-16355 osc: batch dirty buffered write of small files
reviewing Qian Yingjin · awaiting review (CI not green yet)
1 unique failure stalled 284d 3 unresolved XL +1317 −331
284d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_127eNEW unique failure for this branch in the last 30 days, and was seen 5 times across 1 other branches 1 reviews
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
6 optional test failure(s) — informational
build #117686 SUCCESS · tests all Maloo sessions
no vote yet: Sohei Koyama, Andreas Dilger
patchsets:
+11 earlier PS1 12-08 PS2 12-08 PS3 12-08 PS4 12-08 PS5 12-26 PS6 12-26 PS7 04-28 PS8 08-27 PS9 10-15 Sohei Koyama PS10 10-16 Sohei Koyama PS11 10-16 Sohei Koyama
PS12 10-16 Sohei Koyama PS13 10-17 Sohei Koyama PS14 10-20 Sohei Koyama PS15 10-21 Sohei Koyama PS16 10-22 Sohei Koyama
threads: 3 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS12 2025-10-17 00:29 Andreas Dilger COMMIT_MSG:11 — This really needs a longer description of how the batch IO is implemented.
Andreas Dilger PS12 · 2025-10-17 00:29
This really needs a longer description of how the batch IO is implemented.

Do merged writes all have to be from the same UID/GID/PROJID to manage quota properly?  Do all of the writes have independent timestamps and other attributes?  How are checksums, transno, etc. handled?  Out of space for some of the writes?

Are all of the writes completely independent, but just batched into a single RPC over the wire?
reply PS12 2025-10-17 00:29 Andreas Dilger COMMIT_MSG:13 — I don't think that discontiguous short IO is a priority to implement. Virtually all small-file writes will be contiguous.
Andreas Dilger PS12 · 2025-10-17 00:29
I don't think that discontiguous short IO is a priority to implement.  Virtually all small-file writes will be contiguous.
reply PS12 2025-10-17 00:29 Andreas Dilger lustre_idl.h:854 — (defect) I would expect a new `OBD_CONNECT2_BATCH_WRITE` or similar connect flag is needed to verify protocol compatibility for this on the
Andreas Dilger PS12 · 2025-10-17 00:29
(defect) I would expect a new `OBD_CONNECT2_BATCH_WRITE` or similar connect flag is needed to verify protocol compatibility for this on the server...
owner Qian Yingjin · uploader Sohei Koyama · PS16 uploaded 301d ago · NEW · open in Gerrit ↗
commit message
LU-16355 osc: batch dirty buffered write of small files

This patch implements dirty write batch I/O for small files to
improve the small write I/O performance using the existed short
I/O mechanism via batching.

TODO: discontinuous short I/O support.

Signed-off-by: Qian Yingjin <qian@ddn.com>
Signed-off-by: Sohei Koyama <skoyama@ddn.com>
Change-Id: Ib63710afec65fa17c58186a793cae4442df95af3
Test-Parameters: fortestonly
59862 master J !B ✓T ✗13R 0/2−
LU-17493 mdc: restore LDLM cancel on blocking callback
reviewing kg.xu · awaiting review (CI not green yet)
stalled 295d 2 unresolved M +168 −22
295d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-5 RHEL 8.10 / x86_64 ran 5 tests. 2 tests failed: sanityn, recovery-small. session
review-dne-part-5 RHEL 9.5 / x86_64 ran 5 tests. 2 tests failed: sanityn, recovery-small. session
review-dne-part-6 RHEL 9.5 / x86_64 ran 6 tests. 1 tests failed: replay-single. session
review-dne-selinux-ssk-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: recovery-small. session
review-dne-zfs-part-1 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-3 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-zfs-part-5 RHEL 8.10 / x86_64 ran 5 tests. 3 tests failed: sanityn, recovery-small, lustre-rsync-test. session
review-ldiskfs RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs failed 2× RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #114694 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger, Lai Siyao, Oleg Drokin
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS3 2025-10-24 23:15 Andreas Dilger sanityn.sh:330 — (minor) up to .59 now
Andreas Dilger PS3 · 2025-10-24 23:15
(minor) up to .59 now
reply PS3 2025-10-24 23:15 Andreas Dilger sanityn.sh:340 — (style) no need for linefeed escape '\' after "||" or "&&" at end of line
Andreas Dilger PS3 · 2025-10-24 23:15
(style) no need for linefeed escape '\' after "||" or "&&" at end of line
owner kg.xu · uploader kg.xu · PS3 uploaded 414d ago · NEW · open in Gerrit ↗
commit message
LU-17493 mdc: restore LDLM cancel on blocking callback

In highly contended directories like ROOT/, /home, /projects,
abnormal clients holds LCK_PR executing 'ls' may block all
other operations. To prevent this, we can prioritize directory
modification responsiveness over strict readdir() cache coherency.
This approach is supported by the POSIX standard, which does not
require full cache coherency for readdir() across processes on the
same node (discussed in LU-3308).

A directory is considered 'contended' if it falls into one of the
following three categories:
1. Critical directories: essential system directories like
ROOT/, /home, and /projects.
2. Directories with racing locks: directories experiencing
significant lock contention can be identified by checking
ldlm_res_check_contention().

To improve performance in these situations, we can yield the CPU
during ll_iterate() -> xxx -> mdc_read_page() using the lock flags
LDLM_FL_CANCEL_ON_BLOCK and LDLM_FL_CANCEL_ON_CONTEND.
- Client-side: The client checks for conditions 1 and sets the
  LDLM_FL_CANCEL_ON_BLOCK flag.
- MDS-side: MDS has complete lock contention information, this could
  be used to set the LDLM_FL_CANCEL_ON_CONTEND flag on locks.
By setting these flags, the LDLM will release the 'ls' locks and
quickly grant other pending locks for modifications, ensuring a more
responsive system.

Note.1: ll_getattr() that satifies condiction 1&2 has been updated
accordingly as well. Since its lock:LCK_PR(UPDATE|PERM) encompasses
the lock:LCK_PR(UPDATE) required by ll_iterate(), it's preferrable
to set CANCEL_ON_BLOCK at the first place in ll_getattr(). Failing
to do so would result in this flag being absent from ll_iterate()'s
lock.
Note.2: we've leave ll_lookup as is. When ll_lookup() is invoked, it
lacks the necessary information (specifically, dir_depth) to verify
condition 1.

Signed-off-by: Keguang Xu <squalfof@gmail.com>
Change-Id: I90163f2bba64f7955cec0d538724ad363eed9abb
37088 master J !B ✓T ✗1R 0/2
LU-12325 ldlm: mode downgrade, server handler changes
reviewing Mikhail Pershin · awaiting review (CI not green yet)
stalled 328d M +106 −40
328d
janitor run: 4 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 2 tests failed: sanity-sec, sanity-lnet. session
3 optional test failure(s) — informational
build #116905 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger, Vitaly Fertman, Oleg Drokin
patchsets: PS4 06-05 PS5 06-06 PS6 06-21 PS7 09-24
owner Mikhail Pershin · uploader Mikhail Pershin · PS7 uploaded 329d ago · NEW · open in Gerrit ↗
commit message
LU-12325 ldlm: mode downgrade, server handler changes

Extend lock convert with mode downgrade ability. It can be used
in various scenarios when lock is not needed in some strict mode
anymore but still can be useful in cache with lower mode

Patch contains:
 - sanity check for new mode
 - server convert handler allows mode downgrade
 - enable related connection flag on server

Signed-off-by: Mikhail Pershin <mpershin@whamcloud.com>
Change-Id: I7de64736fed40761cf7b528687ae9a4ffa9ad40e
51239 master J ✗1B ✓T ✗1R 0/2
LU-12325 ldlm: mode convert client changes
reviewing Mikhail Pershin · awaiting review (CI not green yet)
1 unique failure stalled 328d M +70 −14
328d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_64dseen in 3 other reviews
failed enforced testplatformdetail
review-dne-zfs-part-5 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanityn. session
4 optional test failure(s) — informational
build #116907 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets:
+1 earlier PS1 06-06
PS2 06-07 PS3 06-08 PS4 06-09 PS5 06-21 PS6 09-24
owner Mikhail Pershin · uploader Mikhail Pershin · PS6 uploaded 329d ago · NEW · open in Gerrit ↗
commit message
LU-12325 ldlm: mode convert client changes

Client part for mode convert:
- ldlm_cli_inodebits_convert() support for mode
- ldlm_cli_convert_req() is updated
- enable connection flag on client side and add
  interoperability checks
- implicit mode convert when DoM bit is dropped
  to keep remaining bits in less strict PR mode

Test-Parameters: testlist=dom-performance
Signed-off-by: Mikhail Pershin <mpershin@whamcloud.com>
Change-Id: I50abde0f14adbf8bfe162c1dcd77fb973ae0cc11
60933 b2_15 J ✗1B ✓T ✗2R 0/1
LU-17454 nodemap: allow mapping for root
reviewing Sebastien Buisson · awaiting review (CI not green yet)
1 unique failure stalled 356d M +90 −2
356d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-sec@ldiskfs+DNE:test_59bNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-zfs-part-1 failed 4× RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 failed 2× RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: pjdfstest. session
1 optional test failure(s) — informational
build #116063 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
owner Sebastien Buisson · uploader Sebastien Buisson · PS1 uploaded 357d ago · NEW · backport · open in Gerrit ↗
commit message
LU-17454 nodemap: allow mapping for root

Allow an id mapping for root, to match what is implemented for regular
users, with the following behavior:
- if admin property is set, root remains root.
- if admin property is not set, the idmap for '0' is taken into
  account.
- if admin property is not set and there is no idmap for '0' and
  deny_unknown property is not set, root is squashed to the squash
  uid/gid.
- if admin property is not set and there is no idmap for '0' and
  deny_unknown property is set, root is blocked.

Note that map_mode remains ignored for root. Also, capabilities are
not dropped for root when mapped, just like it is done for regular
users. If admins want to drop root capabilities, root must be
squashed.

sanity-sec test_15 is updated to test root mapping.

Lustre-change: https://review.whamcloud.com/53870
Lustre-commit: b4a336d0ce91c05ae48544b3fd2e56f0bcb0a8cf

Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Change-Id: Id2e950b99e3b3ba27179408c647e1f7b7c49e32e
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
49715 master J !B ✓T ✗1R 1/2
LU-16495 libcfs: expand debug mask
reviewing Serguei Smirnov · awaiting review (CI not green yet)
stalled 372d M +177 −38
372d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-6 CentOS 8.5/x86_64 ran 4 tests. 2 tests failed: ost-pools, replay-single. session
2 optional test failure(s) — informational
build #91902 SUCCESS · tests all Maloo sessions
reviews: Frank Sehr +1 2025-08-11 22:10
no vote yet: Gian-Carlo DeFazio, Arshad Hussain, Andreas Dilger
patchsets: PS1 01-19 PS2 01-24 PS3 01-25 PS4 01-26
owner Serguei Smirnov · uploader Serguei Smirnov · PS4 uploaded 1301d ago · NEW · open in Gerrit ↗
commit message
LU-16495 libcfs: expand debug mask

Introduce debug mask expansion option with additional 32 bits to use.
This allows for more custom debug message types per subsystem.
To take advantage of the expanded mask, subsystem needs to define
its own interpretation of the expanded mask bits and manage it
via corresponding lctl option. For example:

        lctl set_param debug_lnet=+msgtrk

	CDEBUG(D_NET | (D_LNET_MSGTRK >> 32), "message");

The default behavior remains unchanged: the expanded mask is optional.

Signed-off-by: Serguei Smirnov <ssmirnov@whamcloud.com>
Change-Id: I41481566530b21574db0990798b803544d802a6c
54528 master J !B ✓T ✗2R 0/2−
LU-17663 osc: extent find only care for write
reviewing Zhenyu Xu · awaiting review (CI not green yet)
stalled 379d S +4 −29
379d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-ldiskfs RHEL 8.9 / x86_64, RHEL 9.3 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 9.3 / x86_64 ran 5 tests. 1 tests failed: sanity. session
2 optional test failure(s) — informational
build #108831 SUCCESS · tests all Maloo sessions
reviews: Alexey Lyashkov -1 2024-11-05 18:38
no vote yet: Qian Yingjin, Andreas Dilger
patchsets: PS1 03-22 PS2 07-31 PS3 09-18 PS4 11-05
owner Zhenyu Xu · uploader Zhenyu Xu · PS4 uploaded 652d ago · NEW · open in Gerrit ↗
commit message
LU-17663 osc: extent find only care for write

Don't use read lock in extent, read with different regions have
different compatible read locks.

Fixes: 67aca1fcc6 ("LU-16160 osc: take ldlm lock when queue sync pages")
Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: Iceb05eb22744debc2e8122ef3ee451d149d79195
57676 master J !B ✓T ✗2R 1/2−
LU-18615 mdt: setup protocal for super hide
reviewing Zanhua Huang · awaiting review (CI not green yet)
stalled 379d 1 unresolved S +20 −2
379d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-1 RHEL 9.4 / x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
1 optional test failure(s) — informational
build #110251 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2025-01-16 17:09 · Timothy Day +1 2025-01-15 17:04
no vote yet: James Simmons
patchsets: PS1 01-07 PS2 01-07 PS3 01-13 PS4 01-13
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS4 2025-01-16 17:09 Andreas Dilger layout.c:735 — I don't think we should have a dedicated RPC just to set this one bit.
Timothy Day PS4 · 2025-01-15 17:04
Perhaps we could use an already existing request format? Curious if anyone else has thoughts.
Andreas Dilger PS4 · 2025-01-16 17:09
I don't think we should have a dedicated RPC just to set this one bit.
owner Zanhua Huang · uploader Zanhua Huang · PS4 uploaded 583d ago · NEW · open in Gerrit ↗
commit message
LU-18615 mdt: setup protocal for super hide

This is the first patch to implement "lfs hide [path]". With this cmd,
[path] will be hidden from directory listing "ls -a". Similar to
.lustre.

We mark a file/directory as hidden by setting a one-bit flag in the
lma_compact of trusted.lma. Here in this patch, we reset this bit as
	LMAC_HIDDEN = 0x00000080
in enum lma_compat.

The "lfs hide [path]" cmd will be run from a lustre client. Therefore,
this patch also reserves the new ptlrpc req_format to be sent between
clients and MDSs.
1. We reserve "MDS_HIDE = 65" in "enum mds_cmd"
2. We "#define OBD_FAIL_MDS_HIDE_NET 0x2410"

We also provide the new req_format "RQF_MDS_HIDE" in this patch.

Signed-off-by: Zanhua Huang <zanhua@amazon.com>
Change-Id: I797ae49d74c95fac7aa765ed83cda0c4603a7aa3
44453 master J !B ✓T ✗1R 1/2
LU-14901 cli: consume grants if async write fallback sync io
reviewing Wang Shilong · awaiting review (CI not green yet)
stalled 380d S +18 −3
380d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-zfs CentOS 8.5/x86_64 ran 10 tests. 1 tests failed: replay-single. session
3 optional test failure(s) — informational
build #89649 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2022-09-19 20:20
no vote yet: Wang Shilong, Hongchao Zhang
patchsets: PS3 08-15 PS4 08-22 PS5 09-19 Andreas Dilger
owner Wang Shilong · uploader Andreas Dilger · PS5 uploaded 1430d ago · NEW · open in Gerrit ↗
commit message
LU-14901 cli: consume grants if async write fallback sync io

In vvp_io_write_commit() if out of quota, it will try
sync write. However in osc_queue_sync_pages(), space
grant will be only consumed with DIO, introduce a
new flag to indicate consuming grants needed.

Signed-off-by: Wang Shilong <wangshilong1991@gmail.com>
Change-Id: I6f4389704dc549d266f8fdcc0a5dbe17bf1fb37c
46569 master J !B ✓T ✗7R 0/2−
LU-15578 readahead: hold the lock reference for readahead
reviewing Yang Sheng · awaiting review (CI not green yet)
stalled 380d 1 unresolved M +131 −45
380d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-2 RHEL 8.6/x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-selinux-ssk-part-2 CentOS 8.5/x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-2 CentOS 8.5/x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-4 CentOS 8.5/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-zfs-part-5 crashed CentOS 8.5/x86_64 ran 6 tests. 1 tests failed: sanityn. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-arm RHEL 8.6/aarch64, RHEL 8.6/x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
review-ldiskfs-ubuntu CentOS 8.5/x86_64, Ubuntu 20.04/x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
3 optional test failure(s) — informational
build #90571 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger -1 2023-02-23 23:29
no vote yet: Qian Yingjin, Wang Shilong, Zhenyu Xu
patchsets:
+9 earlier PS1 02-21 PS2 02-22 PS3 02-23 PS4 02-23 PS5 02-23 PS6 02-23 PS7 02-23 PS8 02-23 PS9 02-25
PS10 02-26 PS11 02-27 PS12 03-08 PS13 03-14 PS14 11-11 Andreas Dilger
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS14 2022-11-11 19:31 Patrick Farrell (personal) rw.c:1771 — This seems like a long-winded way to say "not the first page"? But of course what's a shorter way to do it... Huh.
Patrick Farrell (personal) PS14 · 2022-11-11 19:31
This seems like a long-winded way to say "not the first page"?  But of course what's a shorter way to do it...  Huh.
owner Yang Sheng · uploader Andreas Dilger · PS14 uploaded 1377d ago · NEW · open in Gerrit ↗
commit message
LU-15578 readahead: hold the lock reference for readahead

While the readahead is working as separate thread, we should
hold the lock reference of ldlm lock to avoid it was canceled.

  LustreError: (osc_object.c:396:osc_req_attr_set()) uncovered page!
  BUG: unable to handle kernel NULL pointer dereference at 000000016
  IP: ldlm_resource_dump+0x86/0x420 [ptlrpc]
  Oops: 0000 [#1] SMP
  Call Trace:
  osc_req_attr_set+0x3ec/0x620 [osc]
  cl_req_attr_set+0x63/0x160 [obdclass]
  osc_build_rpc+0x483/0x1070 [osc]
  osc_io_unplug0+0xc22/0x1910 [osc]
  brw_interpret+0x34b/0xea0 [osc]
  ptlrpc_check_set.part.23+0x481/0x1df0 [ptlrpc]
  ptlrpc_check_set+0x5b/0xe0 [ptlrpc]
  ptlrpcd_check+0x4ab/0x590 [ptlrpc]
  ptlrpcd+0x29b/0x560 [ptlrpc]

Fixes: c2791674260 ("LU-12043 llite: improve single-thread read performance")
Signed-off-by: Yang Sheng <ys@whamcloud.com>
Change-Id: Id8c3b8544ef5652693746471f41c938566875857
51412 master J !B ✓T ✗14R 1/2−
LU-16847 ldiskfs: reduce a memory usage by ost IO threads
reviewing Alexey Lyashkov · awaiting review (CI not green yet)
stalled 380d L +303 −370
380d
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-1 crashed RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-part-2 RHEL 8.8/x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-part-4 crashed RHEL 8.8/x86_64 ran 9 tests. 1 tests failed: sanity-quota. %% THIS TEST SESSION CRASHED %% session
review-dne-part-5 crashed RHEL 8.8/x86_64 ran 8 tests. 2 tests failed: sanityn, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-part-6 crashed RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: replay-single. %% THIS TEST SESSION CRASHED %% session
review-dne-selinux-ssk-part-1 crashed RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-dne-selinux-ssk-part-2 crashed RHEL 8.8/x86_64 ran 7 tests. 2 tests failed: sanity-sec, recovery-small. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs crashed RHEL 8.8/x86_64, SLES 15.4/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.8/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 9.2/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.8/x86_64, SLES 15.5/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs crashed RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 7 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-arm crashed RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 8 tests. 2 tests failed: sanity-sec, sanity. %% THIS TEST SESSION CRASHED %% session
4 optional test failure(s) — informational
build #100803 SUCCESS · tests all Maloo sessions
reviews: Andrew Perepechko +1 2024-02-13 16:36 · Andreas Dilger -1 2024-02-15 05:16
no vote yet: Qian Yingjin, Oleg Drokin, Li Dongyang
patchsets: PS1 06-22 PS2 11-20 PS3 12-08 PS4 12-12
owner Alexey Lyashkov · uploader Alexey Lyashkov · PS4 uploaded 981d ago · NEW · open in Gerrit ↗
commit message
LU-16847 ldiskfs: reduce a memory usage by ost IO threads

sectors array don't needs at modern time but large IO generate
a large memory consumption. 
BIO creation code simplified dramatically.


Signed-off-by: Alexey Lyashkov <alexey.lyashkov@hpe.com>
Change-Id: I7da65929f10f1439ef9f3c80094c2300a1df9822
52711 master J ✗1B ✓T ✗4R 0/2
LU-17190 osc: force I/O when all RPC slots used out by DIO
reviewing Qian Yingjin · awaiting review (CI not green yet)
1 unique failure stalled 380d S +32 −7
380d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_398cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-3 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-part-4 RHEL 8.8/x86_64 ran 9 tests. 1 tests failed: sanity-hsm. session
review-dne-zfs-part-1 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.8/x86_64, RHEL 9.2/x86_64 ran 5 tests. 1 tests failed: sanity. session
2 optional test failure(s) — informational
build #99449 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
owner Qian Yingjin · uploader Qian Yingjin · PS1 uploaded 1038d ago · NEW · open in Gerrit ↗
commit message
LU-17190 osc: force I/O when all RPC slots used out by DIO

Once all RPC slots are used out by parallel DIOs, force to send
I/O RPCs to OST even it exceeds the limit of @max_rpcs_in_flight.

This should be a temporary solution for the deadlock caused by
parallel DIO. It will send DIO to OST without any throttle when
all I/O processes are doing direct I/O. In this case, the RPCs in
flight are out of the control of @max_rpcs_in_flight. It may
overwhelm the OSS with lots of requests.

Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: I0c4346b3f14e70a11226997a2664f197066bcbbe
53065 master J ✗1B ✓T ✗3R 0/2−
LU-17190 test: parallel DIO should not cause deadlock
reviewing Qian Yingjin · awaiting review (CI not green yet)
1 unique failure stalled 380d M +66 −0
380d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@zfs:test_441NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
custom-1001 RHEL 8.8/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs-dne RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-dne-arm RHEL 8.8/aarch64, RHEL 8.8/x86_64 ran 5 tests. 1 tests failed: sanity. session
build #100268 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
owner Qian Yingjin · uploader Qian Yingjin · PS1 uploaded 1013d ago · NEW · open in Gerrit ↗
commit message
LU-17190 test: parallel DIO should not cause deadlock

This patch adds sanity/test_441 to reproduce the deadlock problem
caused by parallel lockless DIO.

Test-Parameters: trivial
Test-Parameters: testlist=sanity env=ONLY=441,ONLY_REPEAT=20
Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: Ie7e51d79d46bb8cb7e1cc275211066d1386ad6f8
39926 master J ✓B ✓T ✗3R 1/2−
LU-13669 readahead: increase ra window progressively
reviewing Wang Shilong · awaiting review (CI not green yet)
stalled 387d S +15 −2
387d
failed enforced testplatformdetail
review-dne-part-1 CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 crashed CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanity. %% THIS TEST SESSION CRASHED %% session
review-ldiskfs-arm CentOS 8.3/aarch64, CentOS 8.3/x86_64 ran 6 tests. 1 tests failed: sanity. session
build #81939 SUCCESS · tests all Maloo sessions
reviews: Qian Yingjin +1 2021-07-14 02:01 · Andreas Dilger -1 2021-07-14 02:01
no vote yet: Shuichi Ihara, Zhenyu Xu
owner Wang Shilong · uploader Wang Shilong · PS2 uploaded 1862d ago · NEW · open in Gerrit ↗
commit message
LU-13669 readahead: increase ra window progressively

For KX applications(https://kx.com), use default read ahead
per window will hurt performance, we only get good numbers with
1M window size.

The reason behind that is it is not really sequenetial mmap read,
however sequential read RPC size increased as one RPC size even
first time, this potentially cause a lot of page discard.

To overcome problem like above, RPC size will be started as 32K
and increased twice every time before it reach RPC size(16M etc).

Once we reach RPC size, it will grow one RPC size each time as before.
With this patch, we got same performance numbers with 1M and 64M
read_ahead_per_file_mb.

Signed-off-by: Wang Shilong <wshilong@ddn.com>
Change-Id: I147aafefb66b574a9b130786597018d079553727
49006 master J ✗1B ✓T ✗8R 0/2
LU-16285 ldlm: prolong the bl timeout
reviewing Yang Sheng · awaiting review (CI not green yet)
1 unique failure stalled 387d 8 unresolved S +20 −5
387d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-quota@zfs:test_7aseen in 13 other reviews
failed enforced testplatformdetail
review-dne-part-2 RHEL 8.6/x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-part-5 RHEL 8.6/x86_64 ran 8 tests. 1 tests failed: recovery-small. session
review-dne-selinux-ssk-part-2 CentOS 8.5/x86_64 ran 9 tests. 2 tests failed: sanity-sec, recovery-small. session
review-dne-zfs-part-2 CentOS 8.5/x86_64 ran 7 tests. 1 tests failed: sanity-sec. session
review-dne-zfs-part-5 CentOS 8.5/x86_64 ran 8 tests. 1 tests failed: recovery-small. session
review-dne-zfs-part-6 CentOS 8.5/x86_64 ran 4 tests. 2 tests failed: ost-pools, replay-single. session
review-ldiskfs-arm RHEL 8.6/aarch64, RHEL 8.6/x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
review-ldiskfs-ubuntu CentOS 8.5/x86_64, Ubuntu 20.04/x86_64 ran 6 tests. 1 tests failed: sanity-sec. session
3 optional test failure(s) — informational
build #90440 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger, Alex Zhuravlev
patchsets: PS1 11-01 PS2 11-08 PS3 11-09
threads: 8 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2022-11-08 18:58 Andreas Dilger ldlm_lockd.c:315 — (style) one fewer tabs indentation
Andreas Dilger PS2 · 2022-11-08 18:58
(style) one fewer tabs indentation
reply PS2 2022-11-10 22:27 Yang Sheng ldlm_lockd.c:316 — I was been working for client side patch, will submit a initial patch shortly as a discussion base.
Andreas Dilger PS2 · 2022-11-08 18:58
(defect) I really don't think that exp_last_request_time can be used to prolong a lock, since even a ping will be enough to keep updating it.  It should only be the write RPCs that are prolonging the lock in this way, with a new "exp_last_write_time" field.
Yang Sheng PS2 · 2022-11-09 07:47
I am not so clear why only write RPCs can be considered? In fact, we should wait BL callback so long as client still alive(e.g some locks cover big file queued up before us and they located on other OSTs). Of course, we should cease a upper limitation since the BL ack could be lost. But it should be rare.
Andreas Dilger PS2 · 2022-11-10 08:38
My concern here is that some client has a bug and the page flush or lock cancellation is broken (e.g. client-side deadlock, LBUG, etc) and no progress is made flushing pages to the OST, but the thread sending OBD_PING RPCs is still working.  If *only* ping or read or statfs RPCs are being sent, then the client is broken and no longer making progress to flush dirty pages and release the DLM lock.

The current lock timeout extension code is only doing this for *writes* under the *same* DLM lock, but clearly this is not enough in this case.  The next step to relax this would be to do lock timeout extension for writes under *any* DLM lock, since that at least makes it clear that the client is still working to clear up the dirty pages under the DLM locks.

In the client debug logs that you looked at, do you know how many locks on the client were seeing BL callbacks?  Were there a large number of such blocked locks in the HP list in osc_check_rpcs(), or RPCss that are taking a long time to complete?  Looking at osc_check_rpcs() it looks like it is already sending round-robin RPCs for each object in the high priority list, so if the OST is not getting any RPCs from the BL object, then there must be a lot of objects in the HP list.

Also, do you know why BL locks were sent to the client?  My understanding is that this is a single-client workload, so there shouldn't be lock contention from other clients, and there shouldn't be blocking callbacks on the lock.  One possibility is that there are two threads enqueuing locks at the same time on the same object?
Yang Sheng PS2 · 2022-11-10 22:27
I was been working for client side patch, will submit a initial patch shortly as a discussion base.

From 10.12 log, more than 500000 locks in the bl queue. But not clear how many in priority queue, since not count it separately. But about 2316 locks added to priority queue in 24s. Also not found obvious long time RPCs. 
I was also tried to find the reason that BL lock was sent. But even still no luck since limit logs. It need a longer time to collect since the lock timeout can be prolong.
reply PS2 2022-11-09 07:47 Yang Sheng ldlm_lockd.c:317 — Will do.
Andreas Dilger PS2 · 2022-11-08 18:58
(style) there is no need to check "match == 0" here, since it isn't harmful to set "match = 1" twice
Yang Sheng PS2 · 2022-11-09 07:47
Will do.
reply PS2 2022-11-09 07:47 Yang Sheng ldlm_lockd.c:383 — We have two call path relate to expand the timeout. The ldlm_lock_prolong_one and ldlm_refresh_waiting_lock. I add code in there can be unif
Andreas Dilger PS2 · 2022-11-08 18:58
I would rather no mess with the timeouts down here.  This will be confusing because the caller is using "ldlm_bl_timeout()" or "ldlm_bl_timeout_by_rpc()" to calculate "delay", but the code is essentially ignoring "delay" and working out its own timeout.

It would be more clear IMHO to further improve ldlm_bl_timeout() and/or ldlm_bl_timeout_by_rpc() from LU-16062 to take into account the last time the export was sending or processing a write RPC (with a new exp_last_write_time), and then using that to extend the timeout value returned.

That keeps the lock timeout calculation consistent in one place, and immediately works wherever ldlm_bl_timeout() is called.
Yang Sheng PS2 · 2022-11-09 07:47
We have two call path relate to expand the timeout. The ldlm_lock_prolong_one and ldlm_refresh_waiting_lock. I add code in there can be unify those two. We also can move it to ldlm_refresh_waiting_lock.
reply PS2 2022-11-09 07:47 Yang Sheng ldlm_lockd.c:402 — It is my fault, I will keep l_callback_timestamp & timeout sync.
Andreas Dilger PS2 · 2022-11-08 18:58
(defect?) the old code set the timer on the lock exactly at "l_callback_timestamp", but now l_callback_timestamp is "delay" seconds in the future, but the timer is set at "delay + scrap / 8", which is strange.
Yang Sheng PS2 · 2022-11-09 07:47
It is my fault, I will keep l_callback_timestamp & timeout sync.
reply PS2 2022-11-09 07:47 Yang Sheng ldlm_lockd.c:405 — Will do.
Andreas Dilger PS2 · 2022-11-08 18:58
(style) "scrap" is always >= 0, so this  check is not needed.
Yang Sheng PS2 · 2022-11-09 07:47
Will do.
reply PS2 2022-11-09 07:47 Yang Sheng ldlm_lockd.c:407 — Keep sync l_callback_timestamp & timeout should avoid such issue.
Andreas Dilger PS2 · 2022-11-08 18:58
OBD_RECOVERY_TIME_HARD is 900s by default, which might be OK by itself (though the same could be done by setting "echo 900 > /sys/modules/ptlrpc/parameters/ldlm_enqueue_min" or similar).  However, this is also only adding scrap/8 of the BL AST age, so the client eviction could be extended as much as 7200s (2h)?  That seems far too long.
Yang Sheng PS2 · 2022-11-09 07:47
Keep sync l_callback_timestamp & timeout should avoid such issue.
reply PS2 2022-11-08 18:58 Andreas Dilger ldlm_lockd.c:603 — (defect) floating point does not work in the kernel. It might be that CPP is handling this itself because OBD_RECOVERY_TIME_HARD is a const
Andreas Dilger PS2 · 2022-11-08 18:58
(defect) floating point does not work in the kernel.  It might be that CPP is handling this itself because OBD_RECOVERY_TIME_HARD is a constant, but it would be better to use "* 3 / 4" (which will work in all cases).
owner Yang Sheng · uploader Yang Sheng · PS3 uploaded 1379d ago · NEW · open in Gerrit ↗
commit message
LU-16285 ldlm: prolong the bl timeout

Don't evict the client when BL timeout if the client still
busy to work. Also accumulate the time while the lock was
refreshed many times. Stop to expand the value if it big
than certain limitation.

Signed-off-by: Yang Sheng <ys@whamcloud.com>
Change-Id: I6fb5b4499259ef993bd8fd7e369889ea9fe5be4d
55199 b2_15 J ✗1B –T –R 1/1
LU-9839 clio: lov active ios accounting fix
reviewing Andreas Dilger · awaiting review (CI not green yet)
1 unique failure LTS15 stalled 639d S +16 −8
639d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanityn@ldiskfs+DNE:test_80bNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
reviews: James Simmons +1 2024-11-05 17:42
no vote yet: Alexander Zarochentsev
patchsets: PS1 05-25 PS2 06-15 PS3 11-05
owner Andreas Dilger · uploader Andreas Dilger · PS3 uploaded 652d ago · NEW · backport · open in Gerrit ↗
commit message
LU-9839 clio: lov active ios accounting fix

ASSERT(atomic_read(&lov->lo_active_ios)==0) is triggered due to a
bug in active_ios accounting. For some cl_io_init(,CIT_MISC,,)
calls increment the lov_active_ios counter is not protected by the
layout lock. So the checks for active_ios != 0 are racy and not
preventing another thread from starting new cl_io and incrementing
the active_ios counter after any check but before the assertion.

The lov_active_ios counter increment should be done under the
same condition as taking the layout type lock.
The ci_type=CIT_MISC and ci_ignore_layout=1 should not be used
in ll_dom_finish_open() as the I/O doesn't come
"from the osc layer" and may race with a layout change.

Lustre-change: https://review.whamcloud.com/51638
Lustre-commit: 5bc1dd825b700677b002a43463a463c3ccb665ec

HPE-bug-id: LUS-11628
Signed-off-by: Alexander Zarochentsev <alexander.zarochentsev@hpe.com>
Change-Id: I35fda85b968b847a87e73dd36bbb1648c744d62c
Reviewed-by: Mikhail Pershin <mpershin@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Vitaly Fertman <vitaly.fertman@hpe.com>
57050 master J !B ✓T ✗2R 0/2
LU-18452 osc: configuration of checksums on recovery
reviewing Shaun Tancheff · awaiting review (CI not green yet)
stalled 640d M +134 −3
640d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-3 RHEL 8.9 / x86_64 ran 3 tests. 1 tests failed: conf-sanity. session
review-dne-zfs-part-5 RHEL 8.9 / x86_64 ran 6 tests. 1 tests failed: sanityn. session
3 optional test failure(s) — informational
build #109016 SUCCESS · tests all Maloo sessions
owner Shaun Tancheff · uploader Shaun Tancheff · PS1 uploaded 641d ago · NEW · open in Gerrit ↗
commit message
LU-18452 osc: configuration of checksums on recovery

Enable mount and sysfs flags to enable or disable the feature
to fixup checksums during recovery.

Check:
  lctl get_param osc.*.checksum_fix mdc.*.checksum_fix \
                 llite.*.checksum_fix
Enable:
  lctl set_param -P osc.*.checksum_fix=1 mdc.*.checksum_fix=1 \
                    llite.*.checksum_fix=1
Disable:
  lctl set_param -P osc.*.checksum_fix=0 mdc.*.checksum_fix=0 \
                    llite.*.checksum_fix=0

HPE-bug-id: LUS-12605
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Ia42f740012dd829f455fef09b37d824df994a2c8
55866 b2_15 J ✓B ✓T ✗1R 0/1
LU-17833 ptlrpc: Check lru_resize during connection
reviewing Gian-Carlo DeFazio · awaiting review (CI not green yet)
stalled 754d M +62 −4
754d
failed enforced testplatformdetail
review-dne-zfs-part-4 RHEL 8.9/x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
build #106364 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger, wangdi
owner Gian-Carlo DeFazio · uploader Gian-Carlo DeFazio · PS1 uploaded 755d ago · NEW · backport · open in Gerrit ↗
commit message
LU-17833 ptlrpc: Check lru_resize during connection

Since the parameter log processing might finish before connection
is established, so it should check if lru size has been disabled
by parameters log in ptlrpc_connect_set_flags().

Lustre-change: https://review.whamcloud.com/55060
Lustre-commit: d79bbae7a6e22b576e0d06f1d4eba28daf11456e

OCI-bug-id: LFS-229
Signed-off-by: Di Wang <di.d.wang@oracle.com>
Change-Id: I246fcbcd17aa201f80b6950d8eff57489dc81645
Reviewed-by: Patrick Farrell <patrick.farrell@oracle.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Gian-Carlo DeFazio <defazio1@llnl.gov>
51262 master J ✗5B ✓T ✗7R 0/2−
LU-12325 mdc: reduce DoM lock mode on file close
reviewing Mikhail Pershin · awaiting review (CI not green yet)
5 unique failures stalled 1162d M +146 −42
1162d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity2@ldiskfs+DNE:test_160nseen in 1 other review
sanity2@ldiskfs+DNE:test_271aseen in 1 other review
sanity2@ldiskfs+DNE:test_271cseen in 3 other reviews
sanity2@zfs:test_271aseen in 1 other review
sanity2@zfs:test_271cseen in 1 other review
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.7/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-dne-part-5 RHEL 8.7/x86_64 ran 6 tests. 1 tests failed: sanityn. session
review-dne-selinux-ssk-part-1 RHEL 8.7/x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 RHEL 8.7/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs RHEL 8.7/x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.7/aarch64, RHEL 8.7/x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.7/x86_64, Ubuntu 20.04/x86_64 ran 6 tests. 1 tests failed: sanity. session
4 optional test failure(s) — informational
build #95447 SUCCESS · tests all Maloo sessions
reviews: Mikhail Pershin -1 2023-06-14 15:49
no vote yet: Qian Yingjin, Andreas Dilger
patchsets: PS1 06-09 PS2 06-09 PS3 06-09
owner Mikhail Pershin · uploader Mikhail Pershin · PS3 uploaded 1167d ago · NEW · open in Gerrit ↗
commit message
LU-12325 mdc: reduce DoM lock mode on file close

When file is closed and there are no reader/writer then
downgrade DoM lock mode to less strict PR mode. That can
help the other client to read file data at open and also
that keeps any combined bits also in friendly PR mode

MDT logic to choose DOM lock mode is changed, now it
try to get PR lock on open if there are other PR locks

Test-Parameters: testlist=dom-performance
Signed-off-by: Mikhail Pershin <mpershin@whamcloud.com>
Change-Id: I949a804d1429181dc80a29c5e2021cbc0c08d4f1
49138 master J !B ✓T ✗2R 0/2
LU-16285 ldlm: flush the page out for bl lock
reviewing Yang Sheng · awaiting review (CI not green yet)
stalled 1272d 6 unresolved M +196 −9
1272d
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-selinux-ssk-part-2 CentOS 8.5/x86_64 ran 5 tests. 1 tests failed: recovery-small. session
review-dne-zfs-part-4 CentOS 8.5/x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
2 optional test failure(s) — informational
build #90833 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger, Zhenyu Xu
patchsets: PS1 11-11 PS2 11-16 PS3 11-23
threads: 6 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2022-11-23 19:45 Andreas Dilger COMMIT_MSG:12 — This is a good explanation, but it needs to be added into the commit message so that it can be found in the future, not in a Gerrit comment
Andreas Dilger PS2 · 2022-11-22 03:56
Can you please expand the description of what this patch is doing.  It looks like there is a separate thread or timer that is generating RPCs for high priority locks, but I don't understand why this is much different from the current client RPC generation engine?

I'm wondering if we are missing something simple in the current RPC engine that it doesn't keep on sending new RPCs for blocked locks when the current RPCs have completed.  Maybe something like the high-priority locks/object are being blocked by rpcs_in_flight or similar?
Yang Sheng PS2 · 2022-11-23 16:02
Yes, I set a timer if the bl queue depth has reached a limitation while a blwi insert. Then start flushing out the pages after the timer fired if the blwi still in queue. 
The different than usual RPC engine is that current engine only consider flush whole range of lock but we need only flush part pages(only one RPC in this patch).
Andreas Dilger PS2 · 2022-11-23 19:45
This is a good explanation, but it needs to be added into the commit message so that it can be found in the future, not in a Gerrit comment on an old version of the patch.

My main concern is that having two separate RPC engines may cause other issues (eg. overflow of max_rpcs_in_flight, fragmented RPCs, etc).  My preference would be to update the current RPC generation to round-robin over HP objects/locks when there is a large HP object/lock that is taking too long to flush. 

I'm thinking something like limiting the number of RPCs for each object at one time to max(1, max_rpcs_in_flight / 4), and doing a pass over all HP locks and sending an RPC for those that have not had any RPCs sent in some time (obd_timeout / 4). This will ensure that there are no locks left idle for a long time, and if there are many small files that can be written with a few RPCs they will be finished quickly, and the large files that take thousands of RPCs to flush will still have occasional RPCs sent to keep the locks alive. If there are only the large files in the HP list then they will be processed more quickly.
reply PS2 2022-11-23 16:02 Yang Sheng ldlm_lockd.c:2873 — I was thinking no possible to divide zero since jiffies should change rapidly. But in fact it really crash on divide zero.
Andreas Dilger PS2 · 2022-11-22 03:56
Is there a danger that this could ever divide by zero?  I don't think so, (blp_proc_time should always be <= jiffies, so I guess the "+1" is to handle the == case) but it isn't totally obvious.
Yang Sheng PS2 · 2022-11-23 16:02
I was thinking no possible to divide zero since jiffies should change rapidly. But in fact it really crash on divide zero.
reply PS2 2022-11-23 16:02 Yang Sheng ldlm_lockd.c:3026 — Since bl queue is accessed as FIFO in bl thread. But we need flush the pages as a reverse order(All of blwis before blp_echo_item are older
Andreas Dilger PS2 · 2022-11-22 03:56
(style) it would be more understandable if this was written like "list_for_each_entry()" or similar.
Yang Sheng PS2 · 2022-11-23 16:02
Since bl queue is accessed as FIFO in bl thread. But we need flush the pages as a reverse order(All of blwis before blp_echo_item are older than it).
Since the start pointer is different than end pointer. Seem no stand api can be used. But i'll try to find it.
reply PS2 2022-11-23 16:02 Yang Sheng ldlm_lockd.c:3039 — It is my fault. I should set the pos as blp_echo_item->prev. So it was moved one step forward in worst case. Will update.
Andreas Dilger PS2 · 2022-11-22 03:56
(defect?) I don't understand why this does not just lloop on the same blwi entry each time?  The item is not being removed from the list or moved to the end (AFAICS), so it definitely has some danger.
Yang Sheng PS2 · 2022-11-23 16:02
It is my fault. I should set the pos as blp_echo_item->prev. So it was moved one step forward in worst case. Will update.
reply PS2 2022-11-22 03:56 Andreas Dilger ldlm_lockd.c:3051 — (style) remove extra blank space
Andreas Dilger PS2 · 2022-11-22 03:56
(style) remove extra blank space
reply PS2 2022-11-22 03:56 Andreas Dilger osc_lock.c:350 — (style) only one space between variable type and name for local variable declarations
Andreas Dilger PS2 · 2022-11-22 03:56
(style) only one space between variable type and name for local variable declarations
owner Yang Sheng · uploader Yang Sheng · PS3 uploaded 1365d ago · NEW · open in Gerrit ↗
commit message
LU-16285 ldlm: flush the page out for bl lock

The client could be evicted if it is no chance to write out
the dirty data and cancel the lock in timely manner. So we
made some IO for locks which still in BL queue. The timeout
can be prolong to avoid eviction.

Signed-off-by: Yang Sheng <ys@whamcloud.com>
Change-Id: I7349d45e565cade7581fb756eee448356c6d91f7

Voted on current patchset

(12)
53080 master J !B ✓T ✓R 1/2−
LU-17281 ofd: use correct lock end for ladvise
reviewing Li Xi · you voted +1 on current PS
XS +1 −1
19d
janitor run: 1 failing config(s), none unique to this patch — janitor results
1 optional test failure(s) — informational
build #100281 SUCCESS · tests all Maloo sessions
reviews: Timothy Day -1 2026-07-31 17:10 · Patrick Farrell +1 2023-11-10 17:32
no vote yet: Li Dongyang
owner Li Xi · uploader Li Xi · PS1 uploaded 1013d ago · NEW · open in Gerrit ↗
commit message
LU-17281 ofd: use correct lock end for ladvise

In ofd_ladvise_hdl(), tgt_extent_lock() shouldn't use end - 1 as the
end value of the range. When willread has no range argument, the ladivse
end will be EOF, and this mistake will generate lock end with value
EOF - 1.

Change-Id: Ie5acdb7ef36a051a4c01da73e937c0b051d4864c
Signed-off-by: Li Xi <lixi@ddn.com>
61211 master J ✗1B ✓T ✓R 2/2−
LU-19335 llite: Convert lli_layout_lock to rwlock_t
reviewing Shaun Tancheff · you voted -1 on current PS
1 unresolved S +6 −6
26d
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
recovery-small@zfs:test_155NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
5 optional test failure(s) — informational
build #120803 SUCCESS · tests all Maloo sessions
reviews: Qian Yingjin +1 2026-07-24 01:20 · Patrick Farrell -1 2026-07-24 19:33 · Timothy Day +1 2026-07-24 01:23
patchsets: PS1 09-09 PS2 09-10 PS3 01-22
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2025-09-10 10:33 Alexander Zarochentsev llite_internal.h:498 — does it need a protection at all?
Alexander Zarochentsev PS2 · 2025-09-10 10:33
does it need a protection at all?
owner Shaun Tancheff · uploader Shaun Tancheff · PS3 uploaded 209d ago · NEW · open in Gerrit ↗
commit message
LU-19335 llite: Convert lli_layout_lock to rwlock_t

Convert lli_layout_lock to rwlock_t

HPE-bug-id: LUS-13043
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: I3db5aa21ac749c19dbd3816079fae66c4606ee43
62667 master J !B ✓T ✓R 1/2−
LU-19622 llite: mmap read fault hint readahead
reviewing Shaun Tancheff · you voted +1 on current PS
2 unresolved S +7 −3
97d
janitor run: 2 failing config(s), none unique to this patch — janitor results
1 optional test failure(s) — informational
build #118880 SUCCESS · tests all Maloo sessions
reviews: Jinshan Xiong -1 2026-05-14 17:05 · Patrick Farrell +1 2025-11-23 17:26
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-05-14 17:05 Jinshan Xiong llite_mmap.c:114 — (defect?) I tend to think both 'VM_RAND_READ' and 'VM_SEQ_READ' are just kernel hints. It's fine to have no hints and I don't think it is co
Jinshan Xiong PS1 · 2026-05-14 17:05
(defect?) I tend to think both 'VM_RAND_READ' and 'VM_SEQ_READ' are just kernel hints. It's fine to have no hints and I don't think it is correct by implying the IO pattern to be sequential.
reply PS1 2026-05-14 17:05 Jinshan Xiong llite_mmap.c:124 — We probably need to move it out and revise the `ll_ras_enter()` to take the hints above into consideration.
Jinshan Xiong PS1 · 2026-05-14 17:05
We probably need to move it out and revise the `ll_ras_enter()` to take the hints above into consideration.
owner Shaun Tancheff · uploader Shaun Tancheff · PS1 uploaded 269d ago · NEW · open in Gerrit ↗
commit message
LU-19622 llite: mmap read fault hint readahead

Default to sequential reads when VM_RAND_READ / MADV_RANDOM
is not advised.

Read fault hint ll_ras_enter with RA_MIN_MMAP_RANGE_PAGES
for sequential reads.

HPE-bug-id: LUS-12841
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Ic73ecb985b9a4360b693bc56a07d932e97c2f19c
58765 master J !B ✓T ✗2R 2/2
LU-13814 llite: pass cl_dio_pages
reviewing Shaun Tancheff · you voted +1 on current PS
stalled 379d 1 unresolved S +19 −8
379d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-4 RHEL 9.4 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-dne-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
1 optional test failure(s) — informational
build #112478 SUCCESS · tests all Maloo sessions
reviews: Timothy Day +1 2025-04-15 15:07 · Patrick Farrell +1 2025-04-14 19:08
no vote yet: Qian Yingjin
patchsets: PS1 04-13 PS2 04-13
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2025-04-15 15:07 Timothy Day cl_io.c:1542 — Is npages argument really needed here? cl_dio_pages has cdp_count? I think a small refactor could remove this argument.
Timothy Day PS2 · 2025-04-15 15:07
Is npages argument really needed here? cl_dio_pages has cdp_count? I think a small refactor could remove this argument.
owner Shaun Tancheff · uploader Shaun Tancheff · PS2 uploaded 493d ago · NEW · open in Gerrit ↗
commit message
LU-13814 llite: pass cl_dio_pages

Rather than passing an array of struct page prefer the
struct cl_dio_pages to ensure the page array is released
and the state is up-to-date.

Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Idb958683d2e1197e70291e750721c470de6582a9
53739 master J !B ✓T ✓R 3/2−
LU-17446 ldlm: Do not wait for BL AST RPC completion on cancel
reviewing Oleg Drokin · you voted +1 on current PS
pfx stalled 379d 1 unresolved M +126 −16
379d
janitor run: 5 failing config(s), none unique to this patch — janitor results
build #101695 SUCCESS · tests all Maloo sessions
reviews: Yang Sheng +1 2024-02-01 14:16 · Andreas Dilger +1 2024-01-27 18:25 · Vitaly Fertman -1 2024-02-08 17:34 · Patrick Farrell +1 2024-01-31 22:31
no vote yet: Qian Yingjin, Alex Zhuravlev
patchsets:
+7 earlier PS1 01-19 PS2 01-19 PS3 01-19 PS4 01-20 PS5 01-20 PS6 01-22 PS7 01-22
PS8 01-22 PS9 01-23 PS10 01-23 PS11 01-24 PS12 01-27 Andreas Dilger
threads: 1 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS12 2024-02-08 17:34 Vitaly Fertman ldlm_lockd.c:912 — ldlm_lock_cancel() sets it to LCK_MINMODE, why NL here ?
Vitaly Fertman PS12 · 2024-02-08 17:34
ldlm_lock_cancel() sets it to LCK_MINMODE, why NL here ?
owner Oleg Drokin · uploader Andreas Dilger · PS12 uploaded 935d ago · NEW · open in Gerrit ↗
commit message
LU-17446 ldlm: Do not wait for BL AST RPC completion on cancel

If we have sent an AST RPC to the client and while it's in flight
the client sent in the cancel, sometimes (esp. if AST or reply
to it are lost) even though the lock is already cancelled, whoever
is waiting on it is still stuck while trying to resend ASTs.
And in the end the client is not even evicted because the lock cancel
did come and all is fine, but it can add over a hundred seconds
to lock granting process in some non-ideal circumstances.

For simplicity we only treat Blocking ASTs like this, since we
can only have a single one of this kind.

This is adding additional pointer to struct ldlm_lock, but that is
already 560 bytes so does not really mean much.

Change-Id: Id2231bc3bfc3e094faae2872fe09f3c330d441df
Signed-off-by: Oleg Drokin <green@whamcloud.com>
53849 master J ✗3B ✓T ✗3R 0/2−
LU-17292 osc: refine cl page references
reviewing Alexey Lyashkov · you voted -1 on current PS
3 unique failures stalled 379d M +33 −27
379d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-lnet@zfs:test_219seen in 2 other reviews
sanity-pcc@ldiskfs+DNE:test_7bseen in 9 other reviews
sanity-quota@ldiskfs+DNE:test_1gseen in 10 other reviews
failed enforced testplatformdetail
review-dne-part-5 RHEL 8.8/x86_64 ran 6 tests. 1 tests failed: sanityn. session
review-dne-part-8 RHEL 8.8/x86_64 ran 4 tests. 1 tests failed: replay-vbr. session
review-ldiskfs failed 2× crashed RHEL 9.2/x86_64 ran 2 tests. 1 tests failed: lustre-initialization. %% THIS TEST SESSION CRASHED %% session
1 optional test failure(s) — informational
build #101788 SUCCESS · tests all Maloo sessions
reviews: Patrick Farrell -1 2024-02-01 15:45
patchsets: PS1 01-29 PS2 02-01
owner Alexey Lyashkov · uploader Alexey Lyashkov · PS2 uploaded 930d ago · NEW · open in Gerrit ↗
commit message
LU-17292 osc: refine cl page references

Page should be pinned for radix tree independed from a transfer.

Signed-off-by: Alexey Lyashkov <alexey.lyashkov@hpe.com>
Change-Id: I9f4e07d909df86787ec8706aa781bb7fa5ad8066
47376 master J !B ✓T ✗1R 1/2
LU-15866 llite: remove unstable page accounting
reviewing John Hammond · you voted +1 on current PS
stalled 380d L +8 −385
380d
janitor run: 3 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-4 failed 2× CentOS 8.5/x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
build #87489 SUCCESS · tests all Maloo sessions
reviews: Patrick Farrell +1 2022-05-18 16:05
patchsets: PS1 05-17 PS2 05-17
owner John Hammond · uploader John Hammond · PS2 uploaded 1555d ago · NEW · open in Gerrit ↗
commit message
LU-15866 llite: remove unstable page accounting

Unstable page accounting is disabled by default due to its performance
impact and has no test coverage. So remove it.

Signed-off-by: John L. Hammond <jhammond@whamcloud.com>
Change-Id: I073b7f9bb0fedf925605172accb597a5863cc709
50407 master J ✗1B ✓T ✗1R 0/2−
LU-16665 llite: check whether page under I/O in releasepage()
reviewing Qian Yingjin · you voted -1 on current PS
1 unique failure stalled 380d 6 unresolved M +52 −7
380d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-flr@zfs:test_200seen in 29 other reviews
failed enforced testplatformdetail
review-dne-selinux-ssk-part-1 CentOS 8.5/x86_64 ran 3 tests. 1 tests failed: sanity. session
2 optional test failure(s) — informational
build #93282 SUCCESS · tests all Maloo sessions
reviews: Patrick Farrell -1 2023-04-19 21:54
no vote yet: Andreas Dilger, Zhenyu Xu
patchsets: PS1 03-24 PS2 03-27
threads: 0 need your reply · 1 waiting on others · 5 own notes · 0 bot
note PS1 2023-03-24 14:20 Patrick Farrell file.c:2084 — A general thought - I think it would be better to fall back to slow read on error here, rather than add this cost to the fast read path ever
Patrick Farrell PS1 · 2023-03-24 14:20
A general thought - I think it would be better to fall back to slow read on error here, rather than add this cost to the fast read path every time.

In fact, I think we should probably just fall back to slow read on *any* error from fast read.
note PS2 2023-04-19 21:54 Patrick Farrell file.c:2091 — Hmm, is tiny_write an issue as well? (see ll_file_write_iter)
Patrick Farrell PS2 · 2023-04-19 21:54
Hmm, is tiny_write an issue as well?  (see ll_file_write_iter)
note PS2 2023-04-19 21:54 Patrick Farrell llite_mmap.c:311 — don't we need to do this for mkwrite as well?
Patrick Farrell PS2 · 2023-04-19 21:54
don't we need to do this for mkwrite as well?
note PS1 2023-03-24 14:22 Patrick Farrell rw.c:1643 — That caching would be tricky, now that I think about it. Maybe not worth the trouble.
Patrick Farrell PS1 · 2023-03-24 14:20
So we're going to do this for every page.  If there are many readers moving many pages, I think this will get *expensive* quickly, because there will be several LCCs, and we will check all of them for every page.

Basically, we're taking an inode level rwlock for every page we move, and then walking a list.  That list won't have thousands of members, but it could have 10s or 100s of members, and if it's being updated a lot (which would happen with many readers), it would be taking the 'write' lock a lot.

If we really want to go this route, it might make sense to cache the most recently used lcc and check it first?
Patrick Farrell PS1 · 2023-03-24 14:22
That caching would be tricky, now that I think about it.  Maybe not worth the trouble.
note PS2 2023-04-19 21:54 Patrick Farrell rw.c:1643 — I remain worried about cost of this; I think it's correct but I'm worried about the cost...
Patrick Farrell PS2 · 2023-04-19 21:54
I remain worried about cost of this; I think it's correct but I'm worried about the cost...
owner Qian Yingjin · uploader Qian Yingjin · PS2 uploaded 1241d ago · NEW · open in Gerrit ↗
commit message
LU-16665 llite: check whether page under I/O in releasepage()

We use seqlock to check if a page has been deleted on this inode
during the fault process, allowing us to catch an erronous short
read or EIO and retry the I/O.

However, the newer kernel (such as Unbutu 2204) introduces
@mapping->invalidate_lock. By using this lock, we could get rid of
all these seqlock check for the newer kernel which may have impact
on the performance.

A user can use drop_caches or DONTNEED fadvise to drop unused page
cache. In kernel it calls invalidate_mapping_pages() to release
pages that are not in use or under I/O. And this function is
called without invalidate_lock held.

Thus it needs to check wether the current page trying to release
in ->releasepage() is under I/O or not.
In ->releasepage(), we check whether the current page is under I/O
by check whether it is in the I/O range of the read/fault I/O
context in the list @lli_lccs(ll_cl_context). The page can only be
released if it is not under I/O or in use.

Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: I281c0815e79ab800944700451c4a168ebddbc7c8
54478 master J –B ✓T ✓R 2/2
LU-10499 pcc: Add dio support for data copy during attach
reviewing Qian Yingjin · you voted +1 on current PS
stalled 688d L +926 −50
688d
failed enforced testplatformdetail
review-dne-subtest-change RHEL 9.3/x86_64 ran 3 tests. 1 tests failed: sanity-pcc. session
review-dne-zfs-part-6 RHEL 8.9/x86_64 ran 4 tests. 1 tests failed: replay-single. session
6 optional test failure(s) — informational
build #107919 SUCCESS · tests all Maloo sessions
reviews: Feng Lei +1 2024-09-30 01:51 · Patrick Farrell +1 2024-09-30 03:35
no vote yet: James Simmons, Andreas Dilger
patchsets: PS1 03-21 PS2 09-23 PS3 09-24 PS4 09-26
owner Qian Yingjin · uploader Qian Yingjin · PS4 uploaded 692d ago · NEW · open in Gerrit ↗
commit message
LU-10499 pcc: Add dio support for data copy during attach

PCC attach performance is bottlenecked by single threaded
buffered I/O performance.  We could do multi-threading, but
multi-threaded buffered I/O to one file has a very low
performance ceiling.  In order to significantly speed up
PCC attach performance, we need to switch to DIO.

DIO cannot be done from kernel memory due to various
restrictions, so we call out to a usermode helper.

Note that the helper uses open by fid because given a
file pointer, it's not possible to reliably generate the
path to a file on Lustre due to container namespace issues.
Specifically, the path used by the user may not work for
our helper program due to namespace differences.  So we
must use open by fid for the Lustre side of the copy.

This patch improves attach performance from about 1 GiB/s
to about 5 GiB/s.  This performance figure includes time to
read the data from Lustre *and* to write it out to PCC.

EX-5014 pcc: avoid deadlock during DIO open attach on rhel7

The Maloo testing fails with sanity-pcc/45 due to the following
deadlock on rhel7 kernel:

ll_fid_path_cop D ffff9a32db5eb180     0 10783  10782 0x00000080
Call Trace:
schedule_preempt_disabled+0x29/0x70
__mutex_lock_slowpath+0xc7/0x1d0
mutex_lock+0x1f/0x2f
lookup_slow+0x33/0xa7
link_path_walk+0x80f/0x8b0
path_openat+0xae/0x5a0
do_filp_open+0x4d/0xb0
do_sys_open+0x124/0x220
SyS_open+0x1e/0x20

dd              D ffff9a32fb5b6300     0 10779  10755 0x00000080
Call Trace:
wait_for_completion+0xfd/0x140
call_usermodehelper_exec+0x179/0x1a0
call_usermodehelper+0x40/0x60
pcc_copy_data_dio+0x267/0x340 [lustre]
pcc_attach_data_archive+0x6ff/0xe80 [lustre]
pcc_readonly_attach+0x3d2/0xad0 [lustre]
pcc_readonly_attach_sync+0x205/0x260 [lustre]
pcc_file_open+0x798/0xdd0 [lustre]
ll_atomic_open+0xd80/0x1780 [lustre]
do_last+0xa53/0x1340
path_openat+0xcd/0x5a0
do_filp_open+0x4d/0xb0
do_sys_open+0x124/0x220
SyS_open+0x1e/0x20

This bug only happened on el7 kernel which uses mutex for inode
locking.
During ->ll_atomic_open(), the kernel will take this mutex on the
parent inode. However, when copy data via the user space helper
program ll_fid_path_copy, it will also try to obtain this mutex
lock on the parent inode during lookup, resulting in deadlock.
Was-Change-Id: I384c7b1979d93183b86bbde311d29a50346a8d56

EX-5014 pcc: minor fixes for parameter checks

Improve console message when out-of-range pcc_dio_attach_size_mb
values are supplied.

Fix sanity-pcc test_49b to allow future limit changes
Was-Change-Id: I2bf7d0bf564c954318980f7a09d8713a70f37db9

Test-Parameters: clientdistro=el8.9 mdscount=2 mdtcount=4 testlist=sanity-pcc env=ONLY=45,ONLY_REPEAT=10
EX-bug-id: EX-5014
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Qian Yingjin <qian@ddn.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: Idb2a12296c3e4778763c9b576bbb0ecd2570a458
50423 master J !B ✓T ✗2R 1/2
LU-16665 llite: remove lli_page_inv_lock in newer kernel
reviewing Qian Yingjin · you voted +1 on current PS
stalled 1218d 2 unresolved S +28 −2
1218d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-1 RHEL 8.6/x86_64 ran 4 tests. 1 tests failed: sanity. session
review-ldiskfs CentOS 8.5/x86_64 ran 5 tests. 1 tests failed: sanity. session
1 optional test failure(s) — informational
build #93286 SUCCESS · tests all Maloo sessions
reviews: Patrick Farrell +1 2023-04-19 21:52
no vote yet: Andreas Dilger, Zhenyu Xu
patchsets: PS1 03-27 PS2 03-27 PS3 03-27
threads: 0 need your reply · 0 waiting on others · 2 own notes · 0 bot
note PS3 2023-04-19 21:52 Patrick Farrell vvp_io.c:923 — This needs to be rebased - not urgently or anything, but I see it's missing the latest version of the patch which added this
Patrick Farrell PS3 · 2023-04-19 21:52
This needs to be rebased - not urgently or anything, but I see it's missing the latest version of the patch which added this
note PS3 2023-04-19 21:52 Patrick Farrell vvp_page.c:89 — [minor]
Patrick Farrell PS3 · 2023-04-19 21:52
[minor]
Maybe split this comment to "clearpageuptodate" and "seqlock" parts and move the clearpageuptodate part above the #ifdef?

It would be sad if we removed the whole comment when we (some day!) remove the lli_page_inv_lock code completely
owner Qian Yingjin · uploader Qian Yingjin · PS3 uploaded 1241d ago · NEW · open in Gerrit ↗
commit message
LU-16665 llite: remove lli_page_inv_lock in newer kernel

This patch remove @lli_page_inv_lock in newer kernel as
@mapping->invalidate_lock can achieve the same effect.

Test-Parameters: testlist=sanityn clientdistro=ubuntu2204 env=ONLY="16f 16g 95b",ONLY_REPEAT=10
Signed-off-by: Qian Yingjin <qian@ddn.com>
Change-Id: I5a26ce366817b3a92f9fe1ca9724ab5a9e13f999
48181 b2_12 J !B ✓T ✓R 2/1
LU-14021 llite: don't touch vma after filemap_fault
reviewing Etienne AUJAMES · you voted +1 on current PS
stalled 1469d S +8 −3
1469d
janitor run: 1 failing config(s), none unique to this patch — janitor results
build #88940 SUCCESS · tests all Maloo sessions
reviews: Andrew Perepechko +1 2022-08-10 18:04 · Patrick Farrell +1 2022-08-11 15:10
no vote yet: Alexander Boyko
owner Etienne AUJAMES · uploader Etienne AUJAMES · PS1 uploaded 1470d ago · NEW · backport · open in Gerrit ↗
commit message
LU-14021 llite: don't touch vma after filemap_fault

In case of error filemap_fault unlock mutex vma->vm_mm->mmap_sem,
so touching vma is dangerous, it could be reused or freed.
The patch uses local file variable to skip vma.

Lustre-change: https://review.whamcloud.com/44558
Lustre-commit: 0f5d3c4b954da2f6b880da243dacec52cb4011a6

HPE-bug-id: LUS-10240
Signed-off-by: Alexander Boyko <alexander.boyko@hpe.com>
Change-Id: I72cd086645061819fab5b8595a880db64cfb9ff7
Reviewed-by: Andrew Perepechko <andrew.perepechko@hpe.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Signed-off-by: Etienne AUJAMES <eaujames@ddn.com>
46855 b2_14 B ✓T ✓R 1/1
LU-15608 sec: fix DIO for encrypted files
reviewing Sebastien Buisson · you voted +1 on current PS
stalled 1616d M +96 −58
1616d
1 optional test failure(s) — informational
build #86681 SUCCESS · tests all Maloo sessions
reviews: Patrick Farrell +1 2022-03-17 15:29
no vote yet: Andreas Dilger
owner Sebastien Buisson · uploader Sebastien Buisson · PS1 uploaded 1616d ago · NEW · backport · open in Gerrit ↗
commit message
LU-15608 sec: fix DIO for encrypted files

With Direct IO, we do not have proper page cache pages. So we need to
retrieve by ourselves the page mapping and the page index of the page
to be encrypted/decrypted.

For the index, we need to use the offset of the page within the file,
and not the object.
So we rename cl_page's cp_osc_index to cp_page_index for that purpose.
cp_osc_index is redundant with osc_async_page's oap_obj_off and only
used by osc_index(), so we also adapt this function.
cp_page_index is initialized in cl_page_alloc(), and accessed in
the OSC layer where the llcrypt primitives are called.

For the mapping, problem is page->mapping is not set to NULL on page
allocation, so it cannot safely be used to see if a page is a direct
I/O page.
Use cl_page for direct I/O and page->mapping for buffered
I/O.  (clpage->cp_inode is only set for direct I/O and
cannot easily be always set.)
Without this, we sometimes get panics when page2inode is
used in the OSC layer.  (Note the remaining use in dom is
safe because ll_dom_readpage is a page cache helper and
will never see DIO pages.)

Lustre-commit: 966ca46e4aa2eb39c70e49648ffe6fcaaf475536
Lustre-change: https://review.whamcloud.com/46664

Fixes: a71e0dd7f7 ("LU-14306 sec: get rid of bad rss-counter state messages")
Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: Icb53a4e45463b8d3febc2e6212b39dc25719d866

CC'd — on your radar, review not requested

(17)
62859 master J ✓B ✓T ✗5R 0/2
LU-12668 ec: Add tests for computing the parity coverage
cc Ronnie Sahlberg ·
ec2 pt_ecro L +460 −0
2h
failed enforced testplatformdetail
custom-1001 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity-ec. session
custom-1002 RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity-ec. session
review-dne-subtest-change failed 2× RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity-ec. session
review-dne-zfs-subtest-change failed 7× RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity-ec. session
review-ldiskfs-dne-arm RHEL 8.10 / x86_64, Rocky 9.5 / aarch64 ran 5 tests. 1 tests failed: sanity. session
build #127014 SUCCESS · tests all Maloo sessions
no vote yet: Keguang Xu, Qian Yingjin, Marc Vef, Maximilian Dilger
patchsets:
+42 earlier PS1 12-03 PS2 12-03 PS3 12-03 PS4 12-03 PS5 12-03 Patrick Farrell PS6 12-03 Patrick Farrell PS7 12-03 Patrick Farrell PS8 12-04 Patrick Farrell PS9 12-04 PS10 12-04 Patrick Farrell PS11 12-04 Patrick Farrell PS12 12-05 PS13 12-05 PS14 12-05 PS15 12-05 PS16 12-06 PS17 12-09 PS18 12-09 Patrick Farrell PS19 12-09 Patrick Farrell PS20 12-10 PS21 12-10 Patrick Farrell PS22 12-10 PS23 12-10 PS24 12-11 PS25 12-12 Patrick Farrell PS26 12-15 PS27 12-15 PS28 12-16 Patrick Farrell PS29 01-13 Patrick Farrell PS30 01-13 Patrick Farrell PS31 01-14 Patrick Farrell PS32 01-15 Patrick Farrell PS33 01-16 Patrick Farrell PS34 01-29 Patrick Farrell PS35 03-29 Patrick Farrell PS36 03-29 Patrick Farrell PS37 03-31 Patrick Farrell PS38 04-08 Patrick Farrell PS39 04-09 Patrick Farrell PS40 04-10 Patrick Farrell PS41 04-21 Zhenyu Xu PS42 05-05 Patrick Farrell
PS43 05-06 PS44 05-14 Marc Vef PS45 05-20 Marc Vef PS46 06-22 Marc Vef PS47 06-26 Marc Vef
tags: pt_ecro
owner Ronnie Sahlberg · uploader Marc Vef · PS47 uploaded 54d ago · NEW · open in Gerrit ↗
commit message
LU-12668 ec: Add tests for computing the parity coverage

When we write or verify the parities we no longer
use the whole stripe, instead we compute the coverage
of what ranges of parity is important and what can be
ignored.
This is based on SEEK_DATA/SEEK_HOLE and EOF.

Add tests that we compute these ranges correctly.

Test-Parameters: trivial
Test-Parameters: testlist=sanity-ec
Test-Parameters: testlist=sanity-ec fstype=zfs
Signed-off-by: Ronnie Sahlberg <rsahlberg@whamcloud.com>
Change-Id: Iaee9d0ccb0875f6d515a8adc322fa3cd37bfe0f6
64919 master J !B ✓T ↻R 0/2
LU-12668 lov: proactive dead-OST detection for degraded reads
cc Maximilian Dilger ·
pt_ecro 16 unresolved M +167 −9
5h
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-2 retesting RHEL 9.7 / x86_64 ran 11 tests. 1 tests failed: replay-dual. session
review-dne-zfs-part-2 retesting RHEL 10.1 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-ldiskfs-ubuntu retesting RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity-lnet. session
build #129693 SUCCESS · tests all Maloo sessions
no vote yet: Andreas Dilger
patchsets:
+42 earlier PS1 03-26 PS2 03-26 PS3 03-29 Andreas Dilger PS4 03-29 Patrick Farrell PS5 03-29 Patrick Farrell PS6 03-29 Patrick Farrell PS7 03-29 Ronnie Sahlberg PS8 03-30 Ronnie Sahlberg PS9 03-31 Ronnie Sahlberg PS10 03-31 Patrick Farrell PS11 03-31 Ronnie Sahlberg PS12 04-01 Ronnie Sahlberg PS13 04-01 Ronnie Sahlberg PS14 04-07 Ronnie Sahlberg PS15 04-08 Patrick Farrell PS16 04-09 Patrick Farrell PS17 04-09 Patrick Farrell PS18 04-09 Patrick Farrell PS19 04-09 Patrick Farrell PS20 04-09 Patrick Farrell PS21 04-09 Patrick Farrell PS22 04-09 Patrick Farrell PS23 04-09 Patrick Farrell PS24 04-10 Patrick Farrell PS25 04-10 Patrick Farrell PS26 04-10 Patrick Farrell PS27 04-10 Patrick Farrell PS28 04-10 Patrick Farrell PS29 04-14 Patrick Farrell PS30 04-14 Patrick Farrell PS31 04-14 Patrick Farrell PS32 04-15 Patrick Farrell PS33 04-15 Patrick Farrell PS34 04-15 Patrick Farrell PS35 04-21 PS36 04-25 PS37 05-04 PS38 05-20 Marc Vef PS39 06-04 Ronnie Sahlberg PS40 07-13 Marc Vef PS41 07-13 Marc Vef PS42 07-13 Marc Vef
PS43 07-15 Marc Vef PS44 07-26 Marc Vef PS45 07-26 Marc Vef PS46 08-04 PS47 08-19
threads: 15 need your reply · 1 waiting on others · 0 own notes · 0 bot
reply PS46 2026-08-05 12:45 Gerrit AI review for Lustre COMMIT_MSG:70 — (minor) The ll_readahead_handle_work() piece fixes a pre-existing bug that has nothing to do with EC: ll_ra_count_get() reserves the pages a
Gerrit AI review for Lustre PS46 · 2026-08-05 12:45
(minor) The ll_readahead_handle_work() piece fixes a pre-existing bug that has nothing to do with EC: ll_ra_count_get() reserves the pages and nothing puts them back when cl_io_rw_init() fails, and ll_ra_count_put() is the only decrement of ra_cur_pages. A Fixes: line would let the maintenance branches pick it up:

    Fixes: c2791674260b ("LU-12043 llite: improve single-thread read performance")
reply PS47 2026-08-19 15:33 Gerrit AI review for Lustre COMMIT_MSG:51 — (defect) The lov_io_set_range() hunk fixes an LBUG that 84c1a4a074 introduced, and that commit is three patches back in this same unlanded s
Gerrit AI review for Lustre PS47 · 2026-08-19 15:33
(defect) The lov_io_set_range() hunk fixes an LBUG that 84c1a4a074 introduced, and that commit is three patches back in this same unlanded series. That leaves 84c1a4a074, 13af17f231 and b718cadc7b each panicking the client on a two-component EC layout, so the series is not bisectable and those revisions cannot be tested on their own.

Can the clamp be folded into 84c1a4a074 instead? If it has to stay a separate patch, it needs its own tag alongside the existing one:

    Fixes: 84c1a4a07423 ("LU-12669 ec: recover data from parity")
reply PS46 2026-08-05 12:45 Gerrit AI review for Lustre rw.c:725 — (minor) This label bypasses cl_io_fini(). cl_io_init()'s contract is that the caller calls cl_io_fini() no matter what it returned, and the
Gerrit AI review for Lustre PS46 · 2026-08-05 12:45
(minor) This label bypasses cl_io_fini(). cl_io_init()'s contract is that the caller calls cl_io_fini() no matter what it returned, and the commit message points out that this exit stops being rare once a dead import can fail an EC read at init. Should the new path run cl_io_fini(env, io) before dropping the reservation?
reply PS46 2026-08-05 12:45 Gerrit AI review for Lustre lov_io.c:2807 — (defect) On a component with lsme_dstripe_count == 0 this can push eoff well past lio->lis_endpos.
Gerrit AI review for Lustre PS46 · 2026-08-05 12:45
(defect) On a component with lsme_dstripe_count == 0 this can push eoff well past lio->lis_endpos.

Neither place that sets the cycle end rounds it to a recovery group on that branch: lov_io_set_range() skips its end-rounding block when dstripe_count == 0, and lov_io_ec_rd_iter_init() only rounds when dstripe_count > 1. So lis_endpos is just the request end, while eoff becomes soff + RGs, and RGs there is ss * 4 (or ss * lo_nr).

lov_ec_read_stripe_pages() classifies pages against eoff alone, so the pages in [lis_endpos, soff + RGs) are grabbed and submitted. lov_io_lock() enqueued only [ec_inner.crw_pos, +crw_bytes) for this cycle, and lov_ecio_add_data_sub() skipped those stripes (lov_stripe_intersects() false against the cycle extent), so lov_sub_get() allocates a fresh sub-IO with no DLM lock -- the same "uncovered page!" LBUG in osc_req_attr_set() that the lov_io_set_range() hunk is fixing.

Worked example, layout "-E 128M --ec 4+2 -E 512M -c 4" (EC component followed by a plain one, as in the mirror layouts in this suite), read [0, 130M) with a dead OST:

    cycle in the plain component: lis_pos 128M, lis_endpos 130M
    dcount 4, ss 1M => RGs 4M, soff 128M
    eoff was min(132M, 130M) = 130M, now min(132M, 512M) = 132M
    stripes 2 and 3 cover [130M, 132M) -- outside the enqueued lock

Before the change those pages were EC_DPG_ZERO and never touched. Should the clamp stay bounded by lio->lis_endpos on the dcount == 0 branch, where there is no recovery group to complete?
reply PS47 2026-08-19 15:33 Gerrit AI review for Lustre lov_io.c:844 — (minor) The sibling switch below clears the retry count before returning:
Gerrit AI review for Lustre PS47 · 2026-08-19 15:33
(minor) The sibling switch below clears the retry count before returning:

    io->ci_switch_ec_io = 1;
    io->ci_need_restart = 1;
    io->ci_ndelay_tried = 0;
    RETURN(-ENODATA);

This one leaves ci_ndelay_tried alone, and ll_file_io_generic() carries it across the restart (retried = io->ci_ndelay_tried). So if the read had already restarted once before the import went invalid, the CIT_EC_RD pass lands on ndelay_tried: with a non-zero count and can still take the 10 ms schedule_timeout_interruptible() and set ci_tried_all_mirrors -- the backoff the commit message says this path avoids. Should it reset the count too?
reply PS41 2026-07-13 16:49 Misc Code Checks Robot (Gatekeeper helper) lov_lock.c:305 — error: lov_lock_enqueue():'osc' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) PS41 · 2026-07-13 16:49
error: lov_lock_enqueue():'osc' dereferencing possible ERR_PTR()
reply PS42 2026-07-13 17:52 Misc Code Checks Robot (Gatekeeper helper) lov_lock.c:305 — error: lov_lock_enqueue():'osc' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) PS42 · 2026-07-13 17:52
error: lov_lock_enqueue():'osc' dereferencing possible ERR_PTR()
reply PS43 2026-07-17 15:03 Marc Vef lov_lock.c:294 — [AI review - fable] (defect) Including CIT_READ here looks dangerous. After the continue, the top lock is granted without covering this stri
Marc Vef PS43 · 2026-07-17 15:03
[AI review - fable] (defect) Including CIT_READ here looks dangerous. After the continue, the top lock is granted without covering this stripe, and nothing in the normal read path checks lso_status (only the EC_RD and LSEEK paths do), so pages on the dead stripe are still generated and submitted, and osc_build_rpc() -> cl_req_attr_set() -> osc_req_attr_set() hits the "uncovered page!" LBUG in osc_object.c when osc_dlmlock_at_pgoff() finds nothing - the very crash the commit message wants to avoid.

The lov_io_mirror_init() check does not guard this path when ci_cross_ec is unset (a read of a non-EC component of a file whose layout has parity entries elsewhere - lov_lsm_has_parity() is file-wide, and lov_io_ec_rd_start() explicitly supports dcount == 0 components), or when the import goes inactive after cl_io_init(). Before this change the enqueue failed fast with -ESHUTDOWN and the IO returned an error or restarted into EC_RD instead of crashing.

Should the skip be limited to CIT_EC_RD, letting CIT_READ fail the enqueue so the existing restart logic switches to EC_RD? As a side effect the CIT_READ marking also leaves a stale LSS_READ_ERR on the lovsub (the normal read path never resets it), which lov_io_lseek_end() then treats as degraded even after the OST is reactivated.
reply PS43 2026-07-15 17:53 Misc Code Checks Robot (Gatekeeper helper) lov_lock.c:305 — error: lov_lock_enqueue():'osc' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) PS43 · 2026-07-15 17:53
error: lov_lock_enqueue():'osc' dereferencing possible ERR_PTR()
reply PS44 2026-07-26 10:31 Misc Code Checks Robot (Gatekeeper helper) lov_lock.c:305 — error: lov_lock_enqueue():'osc' dereferencing possible ERR_PTR()
Misc Code Checks Robot (Gatekeeper helper) PS44 · 2026-07-26 10:31
error: lov_lock_enqueue():'osc' dereferencing possible ERR_PTR()
reply PS45 2026-07-28 16:35 Gerrit AI review for Lustre lov_lock.c:21 — (style) This isn't a bug, but the include groups are inverted here - `<lustre_osc.h>` is a lustre header and belongs before the local `"lov_
Gerrit AI review for Lustre PS45 · 2026-07-28 16:35
(style) This isn't a bug, but the include groups are inverted here - `<lustre_osc.h>` is a lustre header and belongs before the local `"lov_cl_internal.h"`. The same include added to lov_io.c in this patch is ordered that way.
reply PS45 2026-07-28 16:35 Gerrit AI review for Lustre lov_lock.c:296 — (minor) `lov_lsm_has_parity()` walks all `lsm_entry_count` entries and is loop-invariant, but it now runs once per sub-lock inside the `lls_
Gerrit AI review for Lustre PS45 · 2026-07-28 16:35
(minor) `lov_lsm_has_parity()` walks all `lsm_entry_count` entries and is loop-invariant, but it now runs once per sub-lock inside the `lls_nr` loop on every read enqueue. Previously it was only reached from the `rc != 0` LSEEK path. Worth hoisting it above the loop?
tags: pt_ecro
owner Maximilian Dilger · uploader Maximilian Dilger · PS47 uploaded 19h ago · NEW · open in Gerrit ↗
commit message
LU-12668 lov: proactive dead-OST detection for degraded reads

Instead of letting a read proceed to an inactive OST and fail deep in
the BRW/lock path, detect dead imports during mirror selection and
route to the EC recovery path.

- lov_io_mirror_init() rejects a candidate mirror that has a data
  stripe on a deactivated or invalid import, so FLR rotation can still
  pick an intact mirror.  Only when no mirror is intact does it set
  ci_switch_ec_io, which also skips the FLR backoff sleep -- we
  already know the OSTs are dead.  The scan covers the whole mirror
  rather than just the stripes the I/O touches: see the comment on
  lov_ec_has_inactive_stripe() for why bounding it to the I/O extent
  is not safe until the size path handles unreachable stripes.
- lov_ecio_add_data_sub() marks such stripes errored up front, so the
  recovery loop reconstructs them instead of building a sub-IO that
  cl_io_iter_init() or the lock enqueue would reject.

lov_io_set_range() rounded the CIT_EC_RD range end up to a raid-set
boundary using the geometry of the component holding the read end, but
that rounded value can land past the component.  The next component
anchors its raid sets at its own e_start, so the end fell mid-raid-set
there: lov_io_ec_rd_iter_init() cut the cycle short at it while
lov_io_ec_rd_start() still read a whole recovery group, leaving pages
outside the lock lov_io_lock() had enqueued.  osc_req_attr_set() then
LBUGged ("uncovered page!") from brw_queue_work and panicked the
client.  Clamp the rounded end at the component boundary; the read
cannot need data past it, since the request itself ended inside that
component and each component is erasure coded independently.
Reproduced with a -E 4M -c 3 --ec 2+1, -E -1 -c 5 --ec 4+1 layout.

ll_readahead_handle_work() leaked its ra_cur_pages reservation when
cl_io_rw_init() failed.  That exit is rare today but becomes routine
once a dead import can fail an EC read at init, and ll_ra_count_put()
is the counter's only decrement, so readahead would stop for the whole
mount and never recover.  Release the reservation from a single exit
label that every path past ll_ra_count_get() reaches, and call
cl_io_fini() on the failed init, which cl_io_init() requires no matter
what it returned.

Assisted-by: ClaudeCode:Opus-5 llm_code_and_review_tools
Test-Parameters: testlist=sanity-ec ostcount=8
Test-Parameters: testlist=sanity-ec ostcount=8 fstype=zfs
Test-Parameters: testlist=sanity ostcount=8
Fixes: c2791674260b ("LU-12043 llite: improve single-thread read performance")
Signed-off-by: Maximilian Dilger <mdilger@whamcloud.com>
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I0913e1ee977c9850193c92835edb185b0aedc6d4
65094 master J !B ✓T ✗2R 0/2
LU-19895 llite: prepare multi-order folios
cc Shaun Tancheff ·
18 unresolved XL +2101 −1111
1d
janitor run: 2 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-zfs-part-1 RHEL 10.1 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-ldiskfs-arm RHEL 8.10 / x86_64, Rocky 9.5 / aarch64 ran 6 tests. 1 tests failed: sanity-sec. session
build #129591 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin
patchsets:
+23 earlier PS1 04-04 PS2 04-05 PS3 04-06 PS4 04-06 PS5 04-07 PS6 04-08 PS7 04-11 PS8 04-13 PS9 04-24 PS10 05-07 PS11 05-09 PS12 05-11 PS13 05-12 PS14 05-12 PS15 05-12 PS16 05-15 PS17 05-17 PS18 05-17 PS19 05-21 PS20 05-22 PS21 05-26 PS22 05-26 PS23 05-27
PS24 05-27 PS25 06-19 PS26 06-19 PS27 08-06 PS28 08-17
threads: 18 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS27 2026-08-07 06:00 Gerrit AI review for Lustre COMMIT_MSG:21 — (minor) The body doesn't account for everything in the diff. Hunks I couldn't tie back to it:
Gerrit AI review for Lustre PS27 · 2026-08-07 06:00
(minor) The body doesn't account for everything in the diff. Hunks I couldn't tie back to it:

- lproc_llite.c adds `folios_order_min` and `folios_order_max` in addition to `large_folios`, but only `large_folios` is described.
- obdclass/obd_sysfs.c adds a new read-only `lustre.dirty_pages` attribute.
- llite_mmap.c wraps ll_page_mkwrite() in sb_start_pagefault()/sb_end_pagefault().
- pcc.c adds folio_order_adjust() and a new pcc_mmap_pages_convert() implementation.
- obd_support.h adds OBD_FAIL_OSC_LRU_UNRESERVE_DELAY and sanity.sh test_277 is reworked.

Could these be described, or split out into their own changes?
reply PS28 2026-08-18 09:51 Gerrit AI review for Lustre COMMIT_MSG:7 — (style) The component tag says llite, but the bulk of the diff is under lustre/osc/ (osc_cache.c, osc_request.c and osc_io.c together are ro
Gerrit AI review for Lustre PS28 · 2026-08-18 09:51
(style) The component tag says llite, but the bulk of the diff is under lustre/osc/ (osc_cache.c, osc_request.c and osc_io.c together are roughly 1900 of the changed lines, against about 670 in lustre/llite/). Since the change spans llite/vvp down to osc, would `clio:` be the more accurate tag?
reply PS28 2026-08-18 09:51 Gerrit AI review for Lustre obd.h:110 — (defect) bp_pgno was s32 in brw_page and is s16 here, but the value assigned to it is not narrowed anywhere upstream: cl_dio_pages::cdp_pgno
Gerrit AI review for Lustre PS28 · 2026-08-18 09:51
(defect) bp_pgno was s32 in brw_page and is s16 here, but the value assigned to it is not narrowed anywhere upstream: cl_dio_pages::cdp_pgno and cl_page::cp_pgno are both still s32, and cl_page.c fills cdp_pgno[] from folio_page_idx(), which for a DIO buffer backed by a 1G hugetlb page reaches 262143.

osc_prep_async_page() and osc_page_submit() then do `oap->oap_brw.bp_pgno = cl_page->cp_pgno`, so the index truncates and brw_folio_page()/brw_kmap_local() land on the wrong page - silently wrong data on O_DIRECT. Can bp_pgno stay s32, or does the DIO path need a bound check?
reply PS28 2026-08-18 09:51 Gerrit AI review for Lustre obd.h:145 — (style) This isn't a bug in itself, but WARN() taints the kernel and is not rate limited, and brw_bytes() is called once per brw_ext in seve
Gerrit AI review for Lustre PS28 · 2026-08-18 09:51
(style) This isn't a bug in itself, but WARN() taints the kernel and is not rate limited, and brw_bytes() is called once per brw_ext in several tight loops (osc_desc_add_brw(), osc_checksum_bulk*(), the short-io copy), so a single bad extent would flood the log. If the state is genuinely impossible an LASSERTF() reads better; if it is possible, the fall-through returns a negative byte count that callers feed straight into min_t() and memcpy() lengths.
reply PS27 2026-08-07 06:00 Gerrit AI review for Lustre llite_mmap.c:475 — (minor) Adding superblock freeze protection to the mkwrite path is a real behaviour change and doesn't seem related to multi-order folios. W
Gerrit AI review for Lustre PS27 · 2026-08-07 06:00
(minor) Adding superblock freeze protection to the mkwrite path is a real behaviour change and doesn't seem related to multi-order folios. Would it be better as its own patch, so the interaction with the DLM locking and RPCs done under __ll_page_mkwrite() gets reviewed on its own?
reply PS27 2026-08-07 06:00 Gerrit AI review for Lustre lproc_llite.c:993 — (minor) New tunables need a man page in the same patch - Documentation/man4/ has llite.sync_on_close.4 and llite.enable_setstripe_gid.4 as t
Gerrit AI review for Lustre PS27 · 2026-08-07 06:00
(minor) New tunables need a man page in the same patch - Documentation/man4/ has llite.sync_on_close.4 and llite.enable_setstripe_gid.4 as the pattern to follow. Could llite.large_folios.4, llite.folios_order_min.4 and llite.folios_order_max.4 be added (and lustre.dirty_pages for the new obd_sysfs.c attribute)?
reply PS28 2026-08-18 09:51 Gerrit AI review for Lustre pcc.c:3030 — (defect) On the failure path filemap_add_folio() has already done __folio_clear_locked() before returning, so this unlocks a folio that is n
Gerrit AI review for Lustre PS28 · 2026-08-18 09:51
(defect) On the failure path filemap_add_folio() has already done __folio_clear_locked() before returning, so this unlocks a folio that is not locked - VM_BUG_ON_FOLIO() on a CONFIG_DEBUG_VM build, and a stray clear_bit_unlock() plus wakeup otherwise. Should the unlock move below the `if (rc) break;`?

    rc = filemap_add_folio(...);
    folio_put(folio);
    if (rc)
        break;
    folio_unlock(folio);
reply PS27 2026-08-06 12:24 Misc Code Checks Robot (Gatekeeper helper) rw.c:1851 — warn: __use_fast_io():missing conversion: 'ras->ras_window_start_idx + ras->ras_window_pages' 'unit_byte + unit_page'
Misc Code Checks Robot (Gatekeeper helper) PS27 · 2026-08-06 12:24
warn: __use_fast_io():missing conversion: 'ras->ras_window_start_idx + ras->ras_window_pages' 'unit_byte + unit_page'
reply PS27 2026-08-06 12:24 Misc Code Checks Robot (Gatekeeper helper) rw.c:1852 — warn: __use_fast_io():comparing different units: 'ras->ras_window_start_idx + ras->ras_window_pages < ras->ras_next_readahead_idx + skip_pag
Misc Code Checks Robot (Gatekeeper helper) PS27 · 2026-08-06 12:24
warn: __use_fast_io():comparing different units: 'ras->ras_window_start_idx + ras->ras_window_pages < ras->ras_next_readahead_idx + skip_pages' 'unit_byte < unit_page'
reply PS28 2026-08-17 04:32 Misc Code Checks Robot (Gatekeeper helper) rw.c:1851 — warn: __use_fast_io():missing conversion: 'ras->ras_window_start_idx + ras->ras_window_pages' 'unit_byte + unit_page'
Misc Code Checks Robot (Gatekeeper helper) PS28 · 2026-08-17 04:32
warn: __use_fast_io():missing conversion: 'ras->ras_window_start_idx + ras->ras_window_pages' 'unit_byte + unit_page'
reply PS28 2026-08-17 04:32 Misc Code Checks Robot (Gatekeeper helper) rw.c:1852 — warn: __use_fast_io():comparing different units: 'ras->ras_window_start_idx + ras->ras_window_pages < ras->ras_next_readahead_idx + skip_pag
Misc Code Checks Robot (Gatekeeper helper) PS28 · 2026-08-17 04:32
warn: __use_fast_io():comparing different units: 'ras->ras_window_start_idx + ras->ras_window_pages < ras->ras_next_readahead_idx + skip_pages' 'unit_byte < unit_page'
reply PS27 2026-08-07 06:00 Gerrit AI review for Lustre vvp_io.c:1560 — (defect) This sleeps 1ms on every fault that lands on a multi-page folio, in the page-fault path. Combined with the comment ("induce a small
Gerrit AI review for Lustre PS27 · 2026-08-07 06:00
(defect) This sleeps 1ms on every fault that lands on a multi-page folio, in the page-fault path. Combined with the comment ("induce a small delay for memory copy into folio") this reads as debug scaffolding rather than something intended to ship. Should it be dropped?
owner Shaun Tancheff · uploader Shaun Tancheff · PS28 uploaded 2d ago · NEW · open in Gerrit ↗
commit message
LU-19895 llite: prepare multi-order folios

Handle multi-order folios from user pages (DIO) tracking one
PAGE_SIZE chunk per cl_page.

Prepare for multi-order folios allocation tracking each folio
and number of pages though osc_extent to brw_ext.

This enables allocation of large folios on buffered write path

Large folio supported is available with Linux kernels 6.12 and later

Enable large folio support via mount and get/set param:
   lctl get_param llite.*.large_folios
   lctl set_param llite.*.large_folios=[0|1]

Default is enabled.

Adjust folio order max:
   lctl get_param llite.*.folio_order_max
   lctl set_param llite.*.folio_order_max=[0-MAX], default is MAX

View folio order min:
   lctl get_param llite.*.folio_order_min

Maximum order equates to a 1M folio, explicitly (20 - PAGE_SHIFT)
which is 8 on 4k page platforms and 4 on 64k page platforms.

Test-Parameters: optional clientdistro=el10.0
Test-Parameters: clientdistro=el10.1
HPE-bug-id: LUS-13263
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: I5c83d9555a2563c764ef6ec12d227b4890db3f5e
64441 master J !B ✓T ✗1R 0/2
LU-12187 lov: MDS layout pattern negotiation
cc Maximilian Dilger ·
pt_ecro 5 unresolved L +807 −29
4d
janitor run: 1 failing config(s), none unique to this patch — janitor results
failed enforced testplatformdetail
review-dne-part-2 RHEL 9.7 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
build #129430 SUCCESS · tests all Maloo sessions
no vote yet: Marc Vef, Andreas Dilger, Zhenyu Xu, Oleg Drokin
patchsets:
+14 earlier PS1 03-09 PS2 03-12 PS3 03-12 PS4 03-12 PS5 03-15 PS6 03-26 PS7 04-10 PS8 04-23 PS9 04-23 Andreas Dilger PS10 04-24 Andreas Dilger PS11 05-04 Andreas Dilger PS12 06-03 PS13 06-05 PS14 06-08
PS15 06-24 PS16 06-25 PS17 07-09 PS18 07-10 PS19 08-13
threads: 5 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS19 2026-08-15 14:01 Gerrit AI review for Lustre mdt.pattern_types.4:53 — (minor) "stop handing out EC layouts" doesn't quite match the code. mdt_pattern_types is only read in mdt_connect_internal(); nothing in mdt
Gerrit AI review for Lustre PS19 · 2026-08-15 14:01
(minor) "stop handing out EC layouts" doesn't quite match the code. mdt_pattern_types is only read in mdt_connect_internal(); nothing in mdt/ or lod/ consults it when a layout is created, so an MDT with parity removed will still create EC layouts on request.

What it stops is clients *using* parity components, and only for clients that mount afterwards. Worth noting too that the negotiated mask does not gate creation on the client either: with lustre.enable_flr_ec=0 (the default) a client can still create an EC file via llite.*.enable_erasure_coding and then get -EIO writing it. Should layout creation be gated on the negotiated mask as well?
reply PS19 2026-08-15 14:01 Gerrit AI review for Lustre lustre_user.h:816 — This baseline omits LOV_PATTERN_COMPRESS, but lov_pattern_supported() right below still lists `LOV_PATTERN_RAID0 | LOV_PATTERN_COMPRESS` as
Gerrit AI review for Lustre PS19 · 2026-08-15 14:01
This baseline omits LOV_PATTERN_COMPRESS, but lov_pattern_supported() right below still lists `LOV_PATTERN_RAID0 | LOV_PATTERN_COMPRESS` as a pattern this client's IO stack handles.

So for a compressed component lov_lsme_usable() -> lov_pattern_available_mds() computes

    pattern_base = 0x801
    0x801 & ~LOV_MDS_PATTERN_SUPPORT_217 = 0x800   /* != 0 */

and returns false, on both branches: the compat branch uses this macro, and the negotiated branch uses the MDS mask, which is capped by MDT_PATTERN_TYPES_SUPPORTED = baseline | PARITY. There is no value of mdt.*.pattern_types that can put COMPRESS back (conf-sanity test_163a asserts `+compress` is silently dropped).

The result is that lov_init_composite() leaves every compressed component !lle_valid and skips lco_init(), so lov_io_rw_iter_init() returns -EAGAIN/-EIO for a plain compressed file. This is reachable today: lsme_unpack() accepts COMPRESS components when llite.*.enable_compression is set (lov_ea.c), and lod_generate_lovea() packs them.

Should the mask be derived from what the client actually supports (i.e. include COMPRESS in both the 2.17 baseline and MDT_PATTERN_TYPES_SUPPORTED), rather than a hard-coded RAID0/MDT/OVERSTRIPING set?
reply PS19 2026-08-15 14:01 Gerrit AI review for Lustre lustre_user.h:819 — (style) F_HOLE and F_RELEASED are layout flags rather than pattern types, and every consumer strips them first (`pattern & ~LOV_PATTERN_F_MA
Gerrit AI review for Lustre PS19 · 2026-08-15 14:01
(style) F_HOLE and F_RELEASED are layout flags rather than pattern types, and every consumer strips them first (`pattern & ~LOV_PATTERN_F_MASK` in lov_pattern_available_mds(), `& ~(F_RELEASED | F_MASK)` in lov_pattern_supported()). lov_pattern_bit2str() also has no names for bits 30/31, so they never show up in mdt.*.pattern_types or lov.*.mds_pattern_support.

They only put two bits nobody reads on the wire in ocd_pattern_support. Could the macro just be RAID0 | MDT | OVERSTRIPING?
reply PS19 2026-08-15 14:01 Gerrit AI review for Lustre llite_lib.c:744 — (minor) `data` here comes from obd_get_info(KEY_CONN_DATA) on sbi->ll_md_exp, which is the LMV export, and lmv_get_info() forwards that key
Gerrit AI review for Lustre PS19 · 2026-08-15 14:01
(minor) `data` here comes from obd_get_info(KEY_CONN_DATA) on sbi->ll_md_exp, which is the LMV export, and lmv_get_info() forwards that key to `lmv_tgt(lmv, 0)` only.

So on DNE the stored mask is whatever MDT index 0 negotiated; mdt.<fs>-MDT0001.pattern_types has no effect on any client, even though the parameter is per-MDT and the man page shows a single-MDT example. Should the client intersect the masks from all MDTs, or should the caveat be documented?
reply PS19 2026-08-15 14:01 Gerrit AI review for Lustre conf-sanity.sh:12765 — (minor) This version gate was flagged on an earlier patchset ("this version should be updated when the patch is refreshed") and answered "Do
Gerrit AI review for Lustre PS19 · 2026-08-15 14:01
(minor) This version gate was flagged on an earlier patchset ("this version should be updated when the patch is refreshed") and answered "Done", but it is still 2.17.52.224 here and in test_163a/test_163b.

The things these tests check (`pattern_support` in the mdc/osc import, mdt.*.pattern_types) only exist from this patch, so any server in 2.17.53..2.17.57 passes the gate without the feature. The tests do fall through to a skip on the missing parameter, but the gate should be the version this lands in.
tags: pt_ecro
owner Maximilian Dilger · uploader Maximilian Dilger · PS19 uploaded 6d ago · NEW · open in Gerrit ↗
commit message
LU-12187 lov: MDS layout pattern negotiation

Add 'obd_connect_data::ocd_pattern_support' to allow the client
and MDS to negotiate the file layout patterns that they support.
This prevents clients from trying to use layout types not
recognized by the MDS, and allows the MDS to (potentially)
convert/filter existing file layouts to a format that the
client understands.

This will be used by FLR-EC to negotiate whether the client
and MDS support LOV_PATTERN_PARITY layouts, and others in
the future.

Add LOV_MDS_PATTERN_SUPPORT_217 for compat with pre-2.18
MDS that do not send ocd_pattern_support. Generalize
lov_pattern_available_mds() to check all patterns against
the MDS-negotiated mask. The client sends its supported patterns
to the MDS, which responds with the intersection of both sets.

The client stores the negotiated mask only when the server
grants OBD_CONNECT2_FLR_EC. target_handle_connect() echoes
un-negotiated ocd fields back from the request, so an ungated
store would let the client's own request value defeat the
pre-2.18 fallback.

Gate pattern usability at layout init rather than at parse time:
lov_init_composite() consults lov_lsme_usable() (pattern support
intersected with the MDS-negotiated mask), and leaves unusable
components un-initialized and !lle_valid, the same as components
with an unknown pattern. Parsing itself stays pattern-agnostic
to preserve lsme alloc/free symmetry.

Adds mdt.*.pattern_types which gives an administrator the
ability to enable or disable layout types at runtime, and a
read-only lov.*.mds_pattern_support which exposes the
effective negotiated mask on the client.  The mdt_enable_flr_ec
module parameter now only sets the initial pattern_types value
when an MDT starts up, so mdt.*.pattern_types is what changes
the advertised types at runtime.  Add man pages for both
parameters and for the renamed lustre.enable_flr_ec parameter.

Rename the 'llite_enable_flr_ec' module parameter to
'enable_flr_ec', so it is accessed as 'lustre.enable_flr_ec'
per LU-14144 convention.  Add the 'lustre' module to the libcfs
parameter path list so the client module parameters are reachable
via 'lctl {get,set}_param --module' instead of a hard-coded
/sys/module path.

Assisted-by: ClaudeCode:Opus-5 llm_code_and_review_tools
Test-Parameters: testlist=sanity-ec
Test-Parameters: testlist=conf-sanity env=ONLY="163 163a 163b"
Signed-off-by: Maximilian Dilger <mdilger@whamcloud.com>
Change-Id: Iaef716e28014be5b91dd50b117dd0881f5c37f37
62748 master J !B ✓T ✓R 0/2−
LU-16518 osc: fix -Wunused-but-set-variable warnings
cc Timothy Day ·
8 unresolved S +7 −7
6d
janitor run: 3 failing config(s), none unique to this patch — janitor results
build #129110 SUCCESS · tests all Maloo sessions
reviews: Timothy Day -1 2026-08-13 19:51
no vote yet: James Simmons, Arshad Hussain, Andreas Dilger
patchsets: PS1 11-26 PS2 08-05 James Simmons PS3 08-11 James Simmons
threads: 8 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2026-08-06 03:48 Gerrit AI review for Lustre COMMIT_MSG:10 — (defect) The body only describes removing unused variables, but the osc_page.c hunk also adds a new early return when the LRU wait is interr
Gerrit AI review for Lustre PS2 · 2026-08-06 03:48
(defect) The body only describes removing unused variables, but the osc_page.c hunk also adds a new early return when the LRU wait is interrupted. That is a behaviour change, not a variable removal, and nothing in the message accounts for it.

Could the message describe the new abort path (and why it is correct) so a reader isn't surprised by it? If the intent is really just to silence the warning, the alternative would be to drop the assignment entirely and leave the retry loop as-is.
reply PS2 2026-08-06 03:48 Gerrit AI review for Lustre COMMIT_MSG:11 — (minor) If the abort-on-signal behaviour is intentional, this is a fix for a loop that could not be interrupted, and it would help to carry
Gerrit AI review for Lustre PS2 · 2026-08-06 03:48
(minor) If the abort-on-signal behaviour is intentional, this is a fix for a loop that could not be interrupted, and it would help to carry a Fixes: tag pointing at the commit that added the uninterruptible retry:

    Fixes: e8b421531c16 ("LU-6271 osc: further OSC cleanup after eviction")
reply PS3 2026-08-11 22:04 Gerrit AI review for Lustre COMMIT_MSG:15 — (minor) This sha doesn't look like the origin of the bug. osc_lru_reserve() as added by e8b421531c16 had no retry loop at all - a single bes
Gerrit AI review for Lustre PS3 · 2026-08-11 22:04
(minor) This sha doesn't look like the origin of the bug. osc_lru_reserve() as added by e8b421531c16 had no retry loop at all - a single best-effort cmpxchg, returning 0 when it could not reserve, and no `rc` variable.

The `again:` loop over an unchecked l_wait_event_abortable() came in later:

    2a34dc95bd10 ("LU-12142 clio: fix hang on urgent cached pages")

and `rc` only became set-but-unused when 776e163cf542 ("LU-17180 ptlrpc: don't block ptlrpcd too long") replaced `rc = ptlrpcd_queue_work(cli->cl_writeback_work); if (rc) return 0;` with a plain schedule_work().

Since the substance of this hunk is making the wait abortable again, 2a34dc95bd10 looks like the right target:

    Fixes: 2a34dc95bd10 ("LU-12142 clio: fix hang on urgent cached pages")
reply PS1 2026-08-02 23:34 James Simmons osc_page.c:1131 — Agree about the __must_check. I think we should check rc and break like the above code.
Andreas Dilger PS1 · 2025-12-02 04:48
It isn't clear from this patch whether this is an "unused variable" or a bug that "rc" is not being checked when the wait is interrupted?  One of the main reasons for `l_wait_event_abortable()` is to allow users/applications to gracefully CTRL-C some thread stuck in the syscall for a long time waiting for the server.

If `rc` is not being checked here, then this just becomes a busy loop that cannot be interrupted.  However, it doesn't look like this function allows an error return (and it is not checked in the caller), so maybe this is the best we can do.

Maybe @bobijam@whamcloud.com or @pfarrell@whamcloud.com have an opinion here?
Timothy Day PS1 · 2025-12-03 05:18
This is a good point. Either way, this patch would be wrong. If we don't check rc, then this shouldn't be abortable. I think l_wait_event_abortable should be marked __must_check to prevent this type of bug.
James Simmons PS1 · 2026-08-02 23:34
Agree about the __must_check. I think we should check rc and break like the above code.
reply PS1 2025-12-02 04:48 Andreas Dilger osc_page.c:1079 — Up here the `rc` is checked and the loop is aborted if the wait is interrupted.
Andreas Dilger PS1 · 2025-12-02 04:48
Up here the `rc` is checked and the loop is aborted if the wait is interrupted.
reply PS2 2026-08-07 05:06 Arshad Hussain osc_page.c:1154 — > (defect) osc_lru_reserve() returns unsigned long, and its value is the number of pages reserved - there is no error channel. Returning -EI
Gerrit AI review for Lustre PS2 · 2026-08-06 03:48
(defect) osc_lru_reserve() returns `unsigned long`, and its value is the number of pages reserved - there is no error channel. Returning -EINTR here hands the caller (unsigned long)-4, i.e. 0xfffffffffffffffc.

osc_io_lru_reserve() stores it verbatim and discards nothing:

    oio->oi_lru_reserved = osc_lru_reserve(osc_cli(osc), npages);
    RETURN(0);

So the I/O keeps running with a bogus reservation, and two things follow.

osc_lru_alloc() takes the reserved-slot shortcut for every page of the I/O:

    if (oio->oi_lru_reserved > 0) {
            --oio->oi_lru_reserved;
            goto out;
    }

cl_lru_busy is incremented but cl_lru_left is never debited, so the LRU budget is bypassed for the rest of the I/O.

Then osc_io_rw_iter_fini() gives the remainder back:

    if (oio->oi_lru_reserved > 0)
            osc_lru_unreserve(osc_cli(osc), oio->oi_lru_reserved);

and osc_lru_unreserve() does atomic_long_add(npages, cli->cl_lru_left) - the huge unsigned value converts to a large negative long, so cl_lru_left is permanently reduced by roughly (4 + pages touched). cl_lru_left points into the mount-wide cl_cache->ccc_lru_left, so every OSC on the mount is affected, and once it goes negative the next unreserved allocation trips

    LASSERT(atomic_long_read(cli->cl_lru_left) >= 0);

in osc_lru_alloc(). The trigger is a fatal signal delivered while a writer waits for LRU slots, which is exactly the case l_wait_event_abortable() exists for.

Would `return 0;` (nothing reserved) work here instead? osc_lru_alloc() then does its own per-page reservation and already handles the abort correctly with `rc = -EINTR; break;`. Alternatively, propagate the failure through osc_io_lru_reserve()'s int return so the I/O actually stops - but that needs the callers of cio_lru_reserve to honour it.
Arshad Hussain PS2 · 2026-08-07 05:06
> (defect) osc_lru_reserve() returns unsigned long, and its value is the number of pages reserved - there is no error channel. Returning -EINTR here hands the caller (unsigned long)-4, i.e. 0xfffffffffffffffc.

This look correct. I think even coverity will flag this. (-1 just to highlight this)
reply PS3 2026-08-11 22:04 Gerrit AI review for Lustre osc_page.c:1154 — (style) Not a bug, but there's a stray `;` left after the comment:
Gerrit AI review for Lustre PS3 · 2026-08-11 22:04
(style) Not a bug, but there's a stray `;` left after the comment:

    return 0; /* reserve nothing */;
reply PS1 2025-12-02 04:48 Andreas Dilger osc_request.c:2308 — I think in the old days the cksum_counter was used to change the `CDEBUG(D_PAGE)` into `CDEBUG(D_ERROR)` when the number of errors exceeded
Arshad Hussain PS1 · 2025-11-27 03:49
(Your thoughts?) Tim, looks like cksum_counter is already being calculated on successful read. Why not (debug)print it below along with client_cksum. Instead of deleting it completely.? This can give us number of successful read's inbetween failures where it is reset to 0.
Timothy Day PS1 · 2025-11-27 04:49
I'm skeptical it would be useful. We could get similar info (i.e. number of successful reads vs failures) by comparing llite stats to the number of error/debug messages. Plus, static variables like this aren't thread safe. The stat may not be reliable anyway.
Andreas Dilger PS1 · 2025-12-02 04:48
I think in the old days the cksum_counter was used to change the `CDEBUG(D_PAGE)` into `CDEBUG(D_ERROR)` when the number of errors exceeded some threshold?  I see something similar below with `cksum_missed`.

That said, I don't think there is much value to keeping this anymore, just overhead that doesn't provide any value.
owner Timothy Day · uploader James Simmons · PS3 uploaded 8d ago · NEW · open in Gerrit ↗
commit message
LU-16518 osc: fix -Wunused-but-set-variable warnings

Remove unused variables in osc. Clang emits a warning on set
but unused variables, so remove them. For osc_lru_reserve() we don't
handle the rc returned by l_wait_event_abortable(). If we do get
an interruption abort and report we reserved nothing.

Test-Parameters: trivial
Fixes: e8b421531c16 ("LU-6271 osc: further OSC cleanup after eviction")
Signed-off-by: Timothy Day <timday@thelustrecollective.com>
Change-Id: I7cbfbb937ba5b9947bf685fbd3bbff2b6f3b461d
65392 master J ✗2B ✓T ✓R 1/2
LU-20156 lov: dont check layout rdonly for OSC page discard
cc Qian Yingjin ·
5 unresolved XS +4 −2
7d
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
racer@ldiskfs+DNE:test_2seen in 65 other reviews
sanity-lfsck@ldiskfs+DNE:test_18eseen in 12 other reviews
7 optional test failure(s) — informational
build #129029 SUCCESS · tests all Maloo sessions
reviews: Zhenyu Xu +1 2026-08-10 15:11
no vote yet: Andreas Dilger
patchsets: PS1 04-17 PS2 08-10
threads: 5 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2026-08-10 20:31 Gerrit AI review for Lustre COMMIT_MSG:9 — (defect) The description says the read-only state is not checked for page discard coming in as CIT_MISC+ignore_layout, but the code does not
Gerrit AI review for Lustre PS2 · 2026-08-10 20:31
(defect) The description says the read-only state is not checked for page discard coming in as CIT_MISC+ignore_layout, but the code does not key on that at all - lsm_is_rdonly() is still called for that I/O type whenever `lo_lsm` happens to be non-NULL. The skip is keyed on the pointer, not on the I/O type.

Could the body also say why `lo_lsm` can be NULL here? The OSC path runs without lo_type_guard, so lov_layout_change() can be sitting between lov_fini_composite() and the new llo_init(). Without that, a later reader cannot tell what the NULL case corresponds to.
reply PS2 2026-08-10 20:31 Gerrit AI review for Lustre COMMIT_MSG:14 — (style) Change-Id: normally sits after Signed-off-by: - that is the order the Lustre commit-msg hook produces.
Gerrit AI review for Lustre PS2 · 2026-08-10 20:31
(style) Change-Id: normally sits after Signed-off-by: - that is the order the Lustre commit-msg hook produces.
reply PS1 2026-08-10 09:09 Qian Yingjin lov_io.c:527 — done
Patrick Farrell PS1 · 2026-04-17 14:02
Should we skip this for any other cases as well?
Qian Yingjin PS1 · 2026-04-23 03:12
You mean only check for type CIT_READ CIT_WRITE CIT_SETATTR CIT_FAULT and skip other types?
Zhenyu Xu PS1 · 2026-08-10 06:00
I think the more appropriate change is to check lo_lsm before checking the rdonly state, as CIT_MISC+ignore_layout is called from the OSC, and the object's lo_lsm could have already been freed by then.
Qian Yingjin PS1 · 2026-08-10 09:09
done
reply PS2 2026-08-12 02:15 Timothy Day lov_io.c:727 — Maybe have a copy of the line `rdonly = lsm_is_rdonly(obj->lo_lsm);` in every case of the switch-case that needs it?
Gerrit AI review for Lustre PS2 · 2026-08-10 20:31
(defect) This is a test and then a separate dereference of a field that nothing on this path serializes. LOV_2DISPATCH_MAYLOCK() in lov_io_init() deliberately skips lov_conf_freeze() for CIT_MISC+ci_ignore_layout, and lov_io_init_composite() does not bump lo_active_ios for it, so lov_layout_wait() never waits on this I/O.

lov_free_memmd() does:

    *lsmp = NULL;
    kref_put(&lsm->lsm_refc, lsm_free);

A read that lands just before that store still returns a pointer that lsm_free() can release before lsm_is_rdonly() gets to `lsm_is_rdonly`. Does this shrink the race window rather than close it?

The CIT_MISC+ignore_layout case never touches lo_lsm anywhere else - it returns at the ci_ignore_layout test further down, before the lo_lsm users. So keying the skip off the I/O type would keep that path from reading lo_lsm at all, and would match what the commit message describes:

    if (!(io->ci_ignore_layout && io->ci_type == CIT_MISC))
        rdonly = lsm_is_rdonly(obj->lo_lsm);
Timothy Day PS2 · 2026-08-12 02:15
Maybe have a copy of the line `rdonly = lsm_is_rdonly(obj->lo_lsm);` in every case of the switch-case that needs it?
reply PS2 2026-08-10 08:28 Qian Yingjin lov_io.c:745 — null obj->lo_lsm is usually coming from CIT_MISC
Misc Code Checks Robot (Gatekeeper helper) PS2 · 2026-08-10 08:25
error: lov_io_slice_init():we previously assumed 'obj->lo_lsm' could be null (see line 727)
Qian Yingjin PS2 · 2026-08-10 08:28
null obj->lo_lsm is usually coming from CIT_MISC
owner Qian Yingjin · uploader Qian Yingjin · PS2 uploaded 9d ago · NEW · open in Gerrit ↗
commit message
LU-20156 lov: dont check layout rdonly for OSC page discard

It should not check the read-only state of the LOV layout for
page discard from OSC layer via CIT_MISC+ignore_layout as it
does not care/access LOV layout related info.

Fixes: ce98bfe5f72 ("LU-10499 pcc: add readonly mode for PCC")
Change-Id: I18506033ed53fbc6376fc8db546efbc0bfc9e350
Signed-off-by: Yingjin Qian <qian@ddn.com>
48102 master J ✗2B ✓T ✗2R 0/2−
LU-16064 ldlm: postpone lock cancellation
cc Alex Zhuravlev ·
2 unique failures 14 unresolved M +109 −8
22d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-slow@ldiskfs+DNE:test_255cseen in 2 other reviews
sanityn@ldiskfs+DNE:test_121seen in 5 other reviews
failed enforced testplatformdetail
review-dne-zfs-part-1 RHEL 9.7 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 RHEL 10.1 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
build #127492 SUCCESS · tests all Maloo sessions
reviews: Vitaly Fertman -1 2026-07-13 08:57
no vote yet: Qian Yingjin, Alexey Lyashkov, Andreas Dilger, Mikhail Pershin, Zhenyu Xu
patchsets:
+67 earlier PS1 08-01 PS2 08-01 PS3 08-02 PS4 08-02 PS5 08-02 PS6 08-02 PS7 08-03 PS8 08-18 PS9 08-18 PS10 08-22 PS11 08-23 PS12 08-30 PS13 09-05 PS14 09-05 PS15 09-23 Colin Faber PS16 11-28 PS17 01-17 Andreas Dilger PS18 03-04 PS19 04-24 PS20 05-09 PS21 05-11 PS22 06-01 PS23 06-12 PS24 06-15 PS25 06-28 PS26 06-30 PS27 08-01 PS28 08-20 PS29 08-22 PS30 09-23 PS31 09-24 PS32 10-06 PS33 10-16 PS34 10-25 PS35 11-03 PS36 11-09 PS37 11-19 PS38 11-30 PS39 01-06 PS40 04-30 PS41 05-11 PS42 06-10 PS43 06-19 PS44 06-21 PS45 07-09 PS46 07-27 PS47 02-06 PS48 02-14 PS49 02-19 PS50 03-27 PS51 04-10 PS52 04-18 PS53 05-18 PS54 06-05 PS55 06-16 PS56 06-18 PS57 06-30 PS58 07-09 PS59 07-15 PS60 11-04 PS61 11-26 PS62 12-12 PS63 12-24 PS64 01-06 PS65 01-09 PS66 01-28 PS67 02-18
PS68 02-22 PS69 03-18 PS70 04-15 PS71 06-23 PS72 07-13
threads: 12 need your reply · 0 waiting on others · 2 own notes · 0 bot
reply PS72 2026-07-28 05:23 Gerrit AI review for Lustre COMMIT_MSG:11 — The body explains the postponement, but three parts of the diff are not accounted for.
Gerrit AI review for Lustre PS72 · 2026-07-28 05:23
The body explains the postponement, but three parts of the diff are not accounted for.

The biggest one is the MDT exclusion in obd_stale_export_get(): the fix is deliberately disabled for MDT exports, so DoM writes from an evicted client are still exposed. That limitation belongs in the message rather than only in an XXX comment.

The new OBD_FAIL_OST_PAUSE_COMMITRW fault point in ofd_commitrw_write() and the two new replay-dual subtests are also unmentioned.
reply PS61 2025-12-01 18:52 Alex Zhuravlev patchset comment — we can't grab a lock on both server and client. marking makes no sense as few RPCs can be covered by a single lock.
Vitaly Fertman PS61 · 2025-12-01 18:37
> > we can do what is enough to resolve the problem. to grab. or to mark individual locks as not to be cancelled on eviction - so that you know which ones to leave on the export in ldlm_bl_thread_exports.

> this is what the patch does - do not cancel on eviction and wait for all the export's RPC to complete.

no, the patch postpones all the locks on the export from being cancelled, what I suggested above is to grab/mark only involved locks in ptlrpc_server_request_add for the on-going IO. others can be cancelled immediately.

> > > once IO (in ofd) started we don't check locks until the operation is done.

> > we prolong locks twice in advance in ptlrpc_server_request_add() and at the end in ptlrpc_server_finish_request()

> we do, but eviction can happen during bulk, for example which may take dozen on seconds and during this time the corresponding thread just sleeps being unable to check/prolong locks.

bulk starts after ptlrpc_server_request_add() which prolongs locks where I suggested to grab to corresponding locks, thus at the time of the eviction it will be clear which one are not to be cancelled. 1 operation under 1 lock should not block for dozen of seconds other 1000 locks on the same export which can be cancelled immediately.

btw, there is another thread which is able to prolong if there is an IO under an expired lock - see expired_lock_main->ldlm_lock_busy. this loop could be optimised here as well.
Alex Zhuravlev PS61 · 2025-12-01 18:52
we can't grab a lock on both server and client. marking makes no sense as few RPCs can be covered by a single lock.
reply PS72 2026-07-28 05:23 Gerrit AI review for Lustre obd_class.h:364 — (style) `exp` is used bare here while every other reference in this macro is parenthesised as `(exp)`. Worth matching the rest of the macro
Gerrit AI review for Lustre PS72 · 2026-07-28 05:23
(style) `exp` is used bare here while every other reference in this macro is parenthesised as `(exp)`. Worth matching the rest of the macro so a non-trivial argument expression can't bind wrongly.
reply PS72 2026-07-28 05:23 Gerrit AI review for Lustre obd_class.h:365 — ldlm_bl_thread_wakeup() is only declared in lustre/ldlm/ldlm_internal.h, which is a module-private header, and it has no EXPORT_SYMBOL. obd_
Gerrit AI review for Lustre PS72 · 2026-07-28 05:23
ldlm_bl_thread_wakeup() is only declared in lustre/ldlm/ldlm_internal.h, which is a module-private header, and it has no EXPORT_SYMBOL. obd_class.h is a public header included all over the tree.

It builds today only because the two users of class_export_rpc_dec() (ptlrpc/service.c via ptlrpc_internal.h, and ldlm/ldlm_lib.c) both happen to pull in ldlm_internal.h and both live in ptlrpc.ko. The first caller added from ofd/mdt/obdclass gets an implicit-declaration error, or an unresolved symbol at modpost.

Would it be better to declare the wakeup in a public header (or route this through a small obdclass helper) so the macro stands on its own?
note PS29 2023-08-28 19:19 Patrick Farrell ldlm_lockd.c:2982 — Is this really just unique to the MDS?
Patrick Farrell PS29 · 2023-08-28 19:19
Is this really just unique to the MDS?

What about OSTs where we're running clients for hot pools?
note PS29 2023-08-28 19:19 Patrick Farrell ldlm_lockd.c:2987 — Maybe I'm misunderstanding this, but isn't this making a very large change - We will now not do lock cancellation while there are any RPCs r
Patrick Farrell PS29 · 2023-08-28 19:19
Maybe I'm misunderstanding this, but isn't this making a very large change - We will now not do lock cancellation while there are any RPCs running?  But on a busy system there will be RPCs ~all the time, so this seems like it would be a very big behavior change with possible performance impacts?
reply PS39 2024-04-30 07:37 Alex Zhuravlev ldlm_lockd.c:3003 — I tend to agree, but we'd block anyway? and we have few threads to handle this?
Vitaly Fertman PS39 · 2024-01-15 13:43
this way the thread cannot take another job to handle. this check should be done right in ldlm_bl_get_work
Alex Zhuravlev PS39 · 2024-04-30 07:37
I tend to agree, but we'd block anyway? and we have few threads to handle this?
reply PS72 2026-07-28 05:23 Gerrit AI review for Lustre genops.c:1924 — (minor) The loop always breaks immediately after list_del_init(), so nothing is iterated past a removal and `tmp` is never used for its purp
Gerrit AI review for Lustre PS72 · 2026-07-28 05:23
(minor) The loop always breaks immediately after list_del_init(), so nothing is iterated past a removal and `tmp` is never used for its purpose. Plain list_for_each_entry() would say what this does more clearly.
reply PS72 2026-07-28 05:23 Gerrit AI review for Lustre genops.c:1925 — This carries forward an open question from patchset 29 that the current revision still doesn't answer, with some extra detail.
Gerrit AI review for Lustre PS72 · 2026-07-28 05:23
This carries forward an open question from patchset 29 that the current revision still doesn't answer, with some extra detail.

The comment says an MDS can deadlock because RPC handling may need to evict its own client. The same shape looks reachable on an OST: a service thread holds exp_rpc_count on E and blocks in tgt_extent_lock()/ldlm_cli_enqueue_local() on a lock that conflicts with one of E's own granted locks; E's locks are only dropped by ldlm_bl_thread_exports(), which now can't get E because exp_rpc_count > 0. What structurally prevents that cycle on OST that doesn't hold on MDT?

There is also no bound and no fallback wake here. If exp_rpc_count never returns to zero the export stays on obd_stale_exports forever, which keeps it on obd_unlinked_exports, and target cleanup then spins in obd_exports_barrier() printing "Is it stuck?" (and obd_zombie_impexp_stop() asserts the list is empty). Previously the export was always picked up.
reply PS72 2026-07-28 05:23 Gerrit AI review for Lustre genops.c:1930 — Matching on obd_name means the fix silently turns itself off for the OSTs of any filesystem whose name contains "MDT" - `mkfs.lustre --fsnam
Gerrit AI review for Lustre PS72 · 2026-07-28 05:23
Matching on obd_name means the fix silently turns itself off for the OSTs of any filesystem whose name contains "MDT" - `mkfs.lustre --fsname=testMDT` gives obd_name "testMDT-OST0000", and strstr() finds it.

The device type is what's actually being tested here, so comparing the type would be exact:

    strcmp(exp->exp_obd->obd_type->typ_name, LUSTRE_MDT_NAME) != 0

That is the idiom used elsewhere, e.g. tgt_handler.c:973. It also avoids running strstr() over every stale export on every scan while holding obd_stale_export_lock.
reply PS72 2026-07-28 05:23 Gerrit AI review for Lustre replay-dual.sh:1347 — (style) Test preconditions in this suite read as the positive condition that must hold:
Gerrit AI review for Lustre PS72 · 2026-07-28 05:23
(style) Test preconditions in this suite read as the positive condition that must hold:

    [[ "$ost1_FSTYPE" == ldiskfs ]] || skip "needs ldiskfs backend"

The negated `&&` form is what the tree is moving away from.
reply PS72 2026-07-28 05:23 Gerrit AI review for Lustre replay-dual.sh:1363 — (minor) The suggestion to use /dev/urandom instead of /dev/random was raised on patchsets 38 and 39 and marked resolved, but both dd calls h
Gerrit AI review for Lustre PS72 · 2026-07-28 05:23
(minor) The suggestion to use /dev/urandom instead of /dev/random was raised on patchsets 38 and 39 and marked resolved, but both dd calls here (and in test_34b) still read /dev/random.
owner Alex Zhuravlev · uploader Alex Zhuravlev · PS72 uploaded 37d ago · NEW · open in Gerrit ↗
commit message
LU-16064 ldlm: postpone lock cancellation

until all export's RPCs are complete, otherwise lock can be granted to
another client and then RPC processing from just evicted client can
break data consistency.

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: Id7944cb5583cbe5997e96ee413f7ec70d3faf287
63307 master J ✓B ✓T ✗1R 0/2−
LU-19769 lnet: simplify lnet_net_show_dump
cc Oleg Drokin ·
3 unresolved L +354 −229
39d
failed enforced testplatformdetail
review-dne-selinux-ssk-part-2 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-sec. session
5 optional test failure(s) — informational
build #120267 SUCCESS · tests all Maloo sessions
no vote yet: James Simmons, Chris Horn
threads: 3 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-01-13 04:05 Oleg Drokin COMMIT_MSG:9 — Auggie is Augment's cli tool you can run in a terminal, much better than mucking around with vs code and such: https://docs.augmentcode.com/
Andreas Dilger PS1 · 2026-01-13 03:05
(minor) "Augment"?
Oleg Drokin PS1 · 2026-01-13 04:05
Auggie is Augment's cli tool you can run in a terminal, much better than mucking around with vs code and such: https://docs.augmentcode.com/cli/overview
reply PS1 2026-04-14 16:45 James Simmons api-ni.c:5873 — Not properly aligned.
James Simmons PS1 · 2026-04-14 16:45
Not properly aligned.
reply PS1 2026-04-14 16:45 James Simmons api-ni.c:5983 — Better would be
James Simmons PS1 · 2026-04-14 16:45
Better would be

if (!lnd || !lnd->lnd_nl_get || !lnd->lnd_keys)
    return rc;
    
It removed one level of indentation and the checkpatch issue below.
owner Oleg Drokin · uploader Oleg Drokin · PS1 uploaded 220d ago · NEW · open in Gerrit ↗
commit message
LU-19769 lnet: simplify lnet_net_show_dump

This is 100% agent-refactoring using auggie and whatever
default model they use underneath.

1. Reduced Function Size: The main function went from ~363 lines to
~142 lines (61% reduction)

2. Created 7 Helper Functions:
• lnet_ni_format_cpts() - Formats CPT list as a string
• lnet_ni_show_basic_info() - Outputs NID, status, and interface
  info
• lnet_ni_show_stats() - Outputs basic send/recv/drop statistics
• lnet_ni_show_msg_stats_type() - Outputs detailed message
  statistics
• lnet_ni_show_health_stats() - Outputs health monitoring
  statistics
• lnet_ni_show_tunables() - Outputs network and LND tunables
• lnet_ni_show_extended() - Orchestrates all extended information
  output

3. Improved Code Quality:
• Reduced nesting depth from 6 to 4 levels
• Better separation of concerns
• Each function has a single, clear responsibility
• Comprehensive documentation for all helper functions
• Improved error handling and propagation

4. Reusability Analysis:
• Several helper functions (CPT formatting, basic info, stats,
  health stats) can be reused in other parts of the codebase
• The message stats function is specific to network interface dump
  but follows a pattern that could be applied to similar functions
  like lnet_peer_ni_show_dump()

Change-Id: I0843206c84da5f53c48550ef1ec047a3c50b39f9
Signed-off-by: Oleg Drokin <green@whamcloud.com>
65122 master J !B ✓T ✓R 0/2−
LU-20085 llite: client vfs rename hang
cc Alexander Zarochentsev ·
5 unresolved S +45 −0
58d
janitor run: 6 failing config(s), none unique to this patch — janitor results
build #123634 SUCCESS · tests all Maloo sessions
reviews: James Simmons -1 2026-04-10 00:55
no vote yet: Andrew Perepechko, Andreas Dilger
patchsets: PS1 04-06 PS2 04-07 PS3 04-09
threads: 5 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS1 2026-04-07 15:29 Andreas Dilger namei.c:616 — (style) should be named `ll_d_ancestor()` so that it is more clear where it came from
Andreas Dilger PS1 · 2026-04-07 15:29
(style) should be named `ll_d_ancestor()` so that it is more clear where it came from

(minor) should have a configure check for d_ancestor() export in case that is changed in upstream kernels.
reply PS1 2026-04-09 16:25 Oleg Drokin namei.c:643 — note it's client console, but the usefullness is still questionable.
Andreas Dilger PS1 · 2026-04-07 15:29
(defect) This is OK for testing, but it isn't helpful to print this on the server console every time that someone passes the wrong arguments to `mv`. This should *at the very most* be CWARN(), but probably be a CDEBUG() since it could happen during normal operation and there isn't anything "wrong" with the filesystem that the admin needs to fix.
Oleg Drokin PS1 · 2026-04-09 16:25
note it's client console, but the usefullness is still questionable.
reply PS1 2026-04-07 22:06 Alexander Zarochentsev namei.c:644 — sorry. wrong reply :-) Andreas, your comment is right.
Andreas Dilger PS1 · 2026-04-07 15:29
(defect) this is accessing "new" and "inode" after `dput(new)` and `iput(inode)` above. This should be printed first
Alexander Zarochentsev PS1 · 2026-04-07 17:25
ah yes. thanks!
Alexander Zarochentsev PS1 · 2026-04-07 21:53
seems not, new dentry (which is actually the "old" dentry found by the alias search, but the naming comes from d_splice_alias) has an extra ref from the search,
Alexander Zarochentsev PS1 · 2026-04-07 22:06
sorry. wrong reply :-) Andreas, your comment is right.
reply PS1 2026-04-10 00:55 James Simmons sanity.sh:45 — I once suggested removing .lustre/fid and boy did I get hate.
Patrick Farrell PS1 · 2026-04-06 17:14
?  We should fix this test?
Alexander Zarochentsev PS1 · 2026-04-06 17:34
I do not know, it is a way to create nested aliases to directories. I think maybe it is not a good idea to allow access to .lustre by its fid in ./lustre/fid/FID
Andreas Dilger PS1 · 2026-04-07 15:29
That should be disabled as part of this patch?  If you can do open-by-FID you shouldn't ever need to do that inside the `.lustre/fid/` directory.
Oleg Drokin PS1 · 2026-04-09 16:25
Yes, I guess that's a good question, why do we even need .lustre/fid nowadays?
James Simmons PS1 · 2026-04-10 00:55
I once suggested removing .lustre/fid and boy did I get hate.
reply PS2 2026-04-09 16:16 James Simmons sanity.sh:45 — If test 233b is not a problem then I can push what Neil did to fix this problem years ago. The only reason I didn't push the LU-11501 fix ye
James Simmons PS2 · 2026-04-07 18:40
This really shows this patch breaks things.
Alexander Zarochentsev PS2 · 2026-04-07 21:53
yes, it is possible to fix as the Lustre root case,
but really , is it important to have an access to .lustre/ and .lustre/fid 
using .lustre/fid/* ?  

> No modern kernel allows multiple alias to the same directory.

not sure what do you mean, but VFS tries to eliminate the extra dir aliases since this  issue  https://bugzilla.kernel.org/show_bug.cgi?id=7178 in 2006.. the mentioned code fix now is in d_splice_alias().

I see in 7.0-rc the d_splice_alias_ops() still has the code to eliminate extra dir aliases.

the problem might be that the my fix doesn't do it with the same level of atomicity as d_splice_alias() does.  
Well I think it is fixable I can try call d_splice_alias() for all dir dentries except the Lustre ROOT one (and probably .lustre & .lustre/fid).
Andreas Dilger PS2 · 2026-04-08 07:31
James, it isn't clear if the sanity test_233b represents a valid use case or not.  I can understand that "open-by-FID" should work for the `.lustre` and `./lustre/fid` *FIDs* (and should find the already-instantiated dentries/inodes for those FIDs), but it isn't clear that `$MOUNT/.lustre/fid/OBF_FID` should work via the pathname, so skipping test_233b seems reasonable.

On the flip side, this is fixing a real issue that has nothing to do with .lustre/fid, but can be triggered with regular filesystem operations.
James Simmons PS2 · 2026-04-08 17:58
Yes its important. Its not just about test 233b. Its about open(/lustre/.lustre/fid/OBF_FID") which is done by HSM. This patch impacts the atomic open path. If 233b is broken I doubt HSM will survive this change.
Andreas Dilger PS2 · 2026-04-09 08:55
`open("$MOUNT/.lustre/fid/OBF_FID")` doesn't make sense.  You could just use `open("/lustre/.lustre/fid")` to get a handle on the open-by-fid directory, or `llapi_open_by_fid(OBF_FID)` (which would do `dfd = open("$MOUNT")` then `open_by_handle_at(dfd, OBF_FID)` to get a handle on the open-by-fid directory.

From a consistency point of view I guess it is good to be flexible, but this could also be special-cased in the code if `$MOUNT/.lustre/lustre/fid` is being used to lookup itself, then just return the parent directly?
Alexander Zarochentsev PS2 · 2026-04-09 10:39
James,
no, it is only  about test 233b. the test accesses .lustre/ by .lustre/fid/<FID of .lustre>. It creates a loop in dcache because .lustre is a parent of .lustre/fid/<FID of .lustre> and the result of the lookup gets rejected by the code I added. The same goes for .lustre/fid, but there are no more exceptions, other objects do not have "nested aliases" and can be accessed by .lustre/fid/<whatever Lustre object FID> .
James Simmons PS2 · 2026-04-09 16:16
If test 233b is not a problem then I can push what Neil did to fix this problem years ago. The only reason I didn't push the LU-11501 fix years ago was due to RHEL7 being to old to handle the dcache handling changes.
owner Alexander Zarochentsev · uploader Alexander Zarochentsev · PS3 uploaded 132d ago · NEW · open in Gerrit ↗
commit message
LU-20085 llite: client vfs rename hang

ll_splice_alias doesn't try to reuse an existing dir alias
if its name is not equal to the new one.
It leads to a deadlock during rename when VFS tries to lock
inodes to both names/dentries, the same inode getting locked twice.

The code makes an exception for accessing Lustre ROOT inode
by .lustre/fid/<ROOT_FID>, but doesn't allow the same for
.lustre and .lustre/fid, these objects became not accessible
by their FIDs using .lustre/fid/, the corresponding test case
gets disabled.

HPE-bug-id: LUS-13174
Signed-off-by: Alexander Zarochentsev <alexander.zarochentsev@hpe.com>
Change-Id: I280c016208ecdc529d7735abb36dba3dc3d15df9
65482 master J !B ✗T –R 0/2
LU-20178 osc: compression engine and BRW integration
cc Brian Barbisch ·
stalled 116d 4 unresolved XL +6450 −3805
116d
janitor run: build failed — no tests ran — janitor results
build #124294 FAILURE
threads: 3 need your reply · 0 waiting on others · 1 own notes · 0 bot
reply PS1 2026-04-23 23:23 Andreas Dilger lproc_osc.c:685 — (defect) the `connect_flags` parameter already prints `connect_flags2`
Andreas Dilger PS1 · 2026-04-23 23:23
(defect) the `connect_flags` parameter already prints `connect_flags2`
reply PS1 2026-04-23 23:23 Andreas Dilger osc_compress.c:23 — ... interesting ...
Andreas Dilger PS1 · 2026-04-23 23:23
... interesting ...
note PS1 2026-04-25 17:52 Patrick Farrell osc_request.c:1 — OK, we've got some substantial formatting issues generating this huge diff, I see
Patrick Farrell PS1 · 2026-04-25 17:52
OK, we've got some substantial formatting issues generating this huge diff, I see
reply PS1 2026-04-23 23:23 Andreas Dilger osc_request.c:1560 — Hmm, shouldn't this be "BEFORE encryption"?
Andreas Dilger PS1 · 2026-04-23 23:23
Hmm, shouldn't this be "BEFORE encryption"?
owner Brian Barbisch · uploader Brian Barbisch · PS1 uploaded 118d ago · NEW · open in Gerrit ↗
commit message
LU-20178 osc: compression engine and BRW integration

Implement the core client-side compression engine and integrate
it into the OSC bulk read/write (BRW) path:

- New osc_compress.c: page-based compression/decompression
  using lz4, lz4hc, and lzo with configurable chunk sizes
  from 64KB to 4MB. Handles multi-page chunk assembly,
  bounce page allocation, and partial-chunk edge cases.
- New osc_compress.h: internal API for the compression engine
  including chunk iterators and helper macros.
- osc_request.c refactor: split osc_brw_prep_request into
  modular helpers for page preparation, encryption, compression,
  NIO buffer packing, and short I/O. Write path compresses
  before sending; read path decompresses after receiving.
  Added compression statistics tracking.
- osc_io.c: set compression parameters on cl_page from
  the layout's per-component compression settings.
- cl_object.h/cl_object.c: add compression type and chunk
  size fields to cl_page for per-page compression context.

Signed-off-by: Brian Barbisch <brbarbis@microsoft.com>
Test-Parameters: Ignore
Change-Id: I5321248314db9d9d4f9a3daa97fb34126b236753
62140 master J ✗29B ✓T ✗15R 0/2−
LU-19520 ec: don't read parity comp on old clients
cc Zhenyu Xu ·
29 unique failures ec2 stalled 118d 3 unresolved M +66 −27
118d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity3@ldiskfs+DNE:test_272cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity3@ldiskfs+DNE:test_272dNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity3@ldiskfs+DNE:test_430aseen in 1 other review
sanity3@zfs:test_272cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity3@zfs:test_272dNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@ldiskfs+DNE:test_36aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@ldiskfs+DNE:test_38seen in 1 other review
sanity-flr@ldiskfs+DNE:test_41NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@ldiskfs+DNE:test_44aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@ldiskfs+DNE:test_50bNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@ldiskfs+DNE:test_50dNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@ldiskfs+DNE:test_61aseen in 45 other reviews
sanity-flr@ldiskfs+DNE:test_200aseen in 4 other reviews
sanity-flr@ldiskfs+DNE:test_200bseen in 2 other reviews
sanity-flr@ldiskfs+DNE:test_204aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@ldiskfs+DNE:test_204cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@ldiskfs+DNE:test_204eNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@ldiskfs+DNE:test_204fNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@zfs:test_36aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@zfs:test_38seen in 1 other review
sanity-flr@zfs:test_41NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@zfs:test_61aseen in 45 other reviews
sanity-flr@zfs:test_200aseen in 1 other review
sanity-flr@zfs:test_200bseen in 3 other reviews
sanity-flr@zfs:test_204aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@zfs:test_204cNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@zfs:test_204eNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-flr@zfs:test_204fNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanityn@ldiskfs+DNE:test_71aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-1 failed 7× RHEL 9.5 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-1 failed 8× RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-part-2 failed 4× RHEL 9.5 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-dne-part-2 failed 7× RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-dne-part-4 failed 7× RHEL 9.5 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-part-4 failed 8× RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-dne-selinux-ssk-part-1 failed 7× RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-1 failed 8× RHEL 8.10 / x86_64 ran 3 tests. 1 tests failed: sanity. session
review-dne-zfs-part-2 failed 7× RHEL 8.10 / x86_64 ran 11 tests. 1 tests failed: sanity-lfsck. session
review-dne-zfs-part-4 failed 7× RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-flr. session
review-ldiskfs failed 8× RHEL 8.10 / x86_64, RHEL 9.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs failed 8× RHEL 8.10 / x86_64, SLES 15.5 / x86_64 ran 5 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 22.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
review-zfs failed 7× RHEL 8.10 / x86_64 ran 8 tests. 1 tests failed: sanity-flr. session
28 optional test failure(s) — informational
build #118188 SUCCESS · tests all Maloo sessions
patchsets: PS1 10-31 PS2 10-31 PS3 11-01 PS4 11-03
threads: 3 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS4 2026-02-20 21:12 Andreas Dilger lustre_user.h:815 — It would be better to name this function more clearly, like `lov_pattern_supported_server()` or similar. Possibly this needs to take an exp
Andreas Dilger PS4 · 2026-02-20 21:12
It would be better to name this function more clearly, like `lov_pattern_supported_server()` or similar.  Possibly this needs to take an export or `struct obd_connect_data` argument so that the supported layout types can be determined by the client's feature support?
reply PS4 2026-04-12 06:48 Andreas Dilger lustre_user.h:816 — The patch https://review.whamcloud.com/64441 ("LU-12187 lov: MDS layout pattern negotiation") is implementing proper layout pattern negotiat
Andreas Dilger PS4 · 2026-04-12 06:48
The patch https://review.whamcloud.com/64441 ("LU-12187 lov: MDS layout pattern negotiation") is implementing proper layout pattern negotiation between the MDS and client.
reply PS4 2026-02-20 21:12 Andreas Dilger lov_internal.h:208 — This check on the client is useful to add for future incompatible layouts, but does not help *existing* clients that don't understand `LCME_
Andreas Dilger PS4 · 2026-02-20 21:12
This check on the client is useful to add for future incompatible layouts, but does not help *existing* clients that don't understand `LCME_FL_PARITY` or `LOV_PATTERN_PARITY` layouts.
owner Zhenyu Xu · uploader Zhenyu Xu · PS4 uploaded 289d ago · NEW · open in Gerrit ↗
commit message
LU-19520 ec: don't read parity comp on old clients

* Add layout_pattern_supported() so that it allows clients to set
  new type of layout and server also use it to check the validity
  of the layout passed by clients.

* Clients then use lov_pattern_supported() to check what type of
  layout pattern it understand to exercise IO upon it.

* CLIO also checks whether it understand the component by
  lov_supported_comp_flags(), as parity component would also set
  LCME_FL_PARITY in its component flags.

Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: I173fc93b5ccb1d99c154d77a96a146c96bcab81a
61061 master J ✗1B ✓T ✗3R 0/2−
LU-19318 clob: convert coh_attr_guard to rwlock_t
cc Shaun Tancheff ·
1 unique failure stalled 195d 2 unresolved M +109 −116
195d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
conf-sanity-slow@ldiskfs+DNE:test_69NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
review-dne-part-2 crashed RHEL 8.10 / x86_64 ran 13 tests. 1 tests failed: sanity-lfsck. %% THIS TEST SESSION CRASHED %% session
review-dne-zfs-part-4 RHEL 8.10 / x86_64 ran 9 tests. 1 tests failed: sanity-quota. session
review-ldiskfs-ubuntu RHEL 8.10 / x86_64, Ubuntu 24.04 / x86_64 ran 6 tests. 1 tests failed: sanity. session
2 optional test failure(s) — informational
build #120802 SUCCESS · tests all Maloo sessions
patchsets: PS1 09-02 PS2 09-02 Janitor Bot PS3 09-09 PS4 09-15 PS5 01-22
threads: 2 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2025-09-09 09:34 Shaun Tancheff patchset comment — With:
Patrick Farrell PS2 · 2025-09-02 18:01
I've done this once (twice?) before and didn't notice any actual improvement in performance. Thoughts?  I'd want to see something to make the change I think
Shaun Tancheff PS2 · 2025-09-09 09:34
With:
https://review.whamcloud.com/c/fs/lustre-release/+/60942
https://review.whamcloud.com/c/fs/lustre-release/+/61061
https://review.whamcloud.com/c/fs/lustre-release/+/61211

We got 15% improvement of a specific workload [2 threads per core single shared file 8k reads from system cache].
reply PS5 2026-01-22 18:18 Shaun Tancheff patchset comment — Yes, this is incremental and there are other spinlock_t cases on this path that go hot (There are a couple other patches that address those
Patrick Farrell PS5 · 2026-01-22 17:19
Shaun,

I said this before, but I'll say it again: I have written this exact patch in the past because I saw this contention, but when I actually benchmarked it I saw no improvement.  The contention simply relocated to other nearby harder-to-improve structures with no overall benefit.  So I'm very open to this change, but we will have to provide concrete numbers showing improvement.
Shaun Tancheff PS5 · 2026-01-22 18:18
Yes, this is incremental and there are other spinlock_t cases on this path that go hot (There are a couple other patches that address those separately).

This does cumulatively have an effect when doing small reads from cache (~5% improvement) although the larger fix is:
   https://review.whamcloud.com/c/fs/lustre-release/+/61230
which is responsible for a 20% performance regression doing small (8k) reads from cache.
owner Shaun Tancheff · uploader Shaun Tancheff · PS5 uploaded 209d ago · NEW · open in Gerrit ↗
commit message
LU-19318 clob: convert coh_attr_guard to rwlock_t

Move the spin_lock out of contention nn read heavy shared file
workloads with lots of small reads.

HPE-bug-id: LUS-13035
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: I005b5cbb1f463b7898f84b6fe1cae92cfbc940e8
60773 master J ✗9B ✓T ✗1R 0/2
LU-19266 pcc: ensure pcci is available post cache eviction
cc Shaun Tancheff ·
9 unique failures stalled 201d 4 unresolved S +18 −3
201d
janitor flagged test failures unique to this patch — full janitor results
unique failing testhistory
sanity-pcc@ldiskfs+DNE:test_15NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-pcc@ldiskfs+DNE:test_16NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-pcc@ldiskfs+DNE:test_17NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-pcc@ldiskfs+DNE:test_40seen in 12 other reviews
sanity-pcc@ldiskfs+DNE:test_101aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-pcc@zfs:test_15NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-pcc@zfs:test_16NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-pcc@zfs:test_17NEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
sanity-pcc@zfs:test_101aNEW unique failure for this branch in the last 30 days, and was seen 0 times across 0 other branches 0 reviews
failed enforced testplatformdetail
custom-1001 RHEL 8.10 / x86_64 ran 5 tests. 1 tests failed: sanity-pcc. session
build #121065 SUCCESS · tests all Maloo sessions
no vote yet: Qian Yingjin, Andreas Dilger
patchsets: PS1 08-18 PS2 08-19 PS3 01-29 PS4 01-30 PS5 01-30
threads: 4 need your reply · 0 waiting on others · 0 own notes · 0 bot
reply PS2 2025-08-25 00:33 Andreas Dilger patchset comment — Yingjin, the problem appears to be that "lfs pcc state" does not return useful information if the inode is not in cache on the client. It s
Qian Yingjin PS2 · 2025-08-20 02:40
I do not understand the purpose of this patch...
Does it solve any bug in PCC?

IMHO, we do not need to initialize PCC inode for IOCTL call, this patch is useless...
Shaun Tancheff PS2 · 2025-08-20 05:10
Currently the ldlm shrinker math reserves a minimum of 99 'unused' locks, dropping this implicit reservation from:

ldlm_cli_pool_shrink() ...
`return (unused / 100) * sysctl_vfs_cache_pressure;`

with the change to use:
`return vfs_pressure_ratio(unused);`

which is effectively avoiding the integer truncation (unused / 100):
`(sysctl_vfs_cache_pressure * unused) / 100;`

breaks sanity-pcc/20 due to `ll_i2pcci(inode)` being NULL.


Alternatively we can deny the IOCTL on a directory?
Andreas Dilger PS2 · 2025-08-25 00:33
Yingjin, the problem appears to be that "lfs pcc state" does not return useful information if the inode is not in cache on the client.  It should read the inode from PCC storage to determine the state. 

Shaun, Yingjin, does the dcache store the FID for a dentry name that this could be used to look up the file in the PCC cache without having to do an extra RPC to the MDS?
reply PS2 2026-01-30 02:12 Shaun Tancheff ldlm_pool.c:532 — This change is to fix:
Shaun Tancheff PS2 · 2025-08-20 05:31
This changes breaks sanity-pcc/20 and sanity-flr/33c and hangs on sanity-flr/34a

Retaining 100 feels like a magic number
Patrick Farrell PS2 · 2026-01-30 01:57
Why is this in this change?
Shaun Tancheff PS2 · 2026-01-30 02:12
This change is to fix:
   sysctl -w vm.drop_caches=3

Currently Lustre keeps 100 ... this logic is introduced in
  https://review.whamcloud.com/c/fs/lustre-release/+/59970

it is written to maintain compatibility with:
  return (unused / 100) * sysctl_vfs_cache_pressure;

Which looks like a truncation. vfs_pressure_ratio() is equivalent to:
  return (unused * sysctl_vfs_cache_pressure) / 100;
which minimizes truncation.

In this PCC case the non-truncate logic does *not* evict the unused dentry
being tested in sanity-pcc/20 where the test is not 'valid' because
the test is verifying that
   "lfs pcc state <dir>"
works when the dentry is not in cache.

When the dentry is evicted the test fails.
reply PS3 2026-01-29 13:20 Shaun Tancheff pcc.c:4288 — sanity-pcc/20 fails when the cache is purged:
Qian Yingjin PS3 · 2026-01-29 08:25
I still do not understand Why we need PIT_IOCTL here?
and not check "@cached" after pcc_io_init?

For the problem:
"Yingjin, the problem appears to be that "lfs pcc state" does not return useful information if the inode is not in cache on the client. It should read the inode from PCC storage to determine the state"

We have a patch to display the enough info for a file in PCC:
https://review.whamcloud.com/54485
Shaun Tancheff PS3 · 2026-01-29 13:20
sanity-pcc/20 fails when the cache is purged:
https://review.whamcloud.com/c/fs/lustre-release/+/63637
reply PS2 2025-08-20 05:33 Shaun Tancheff lu_object.c:2040 — Yes, this should be included in v6.15 compat changes.
Andreas Dilger PS2 · 2025-08-19 15:53
(style) _this_ could go into previous patch
Shaun Tancheff PS2 · 2025-08-20 05:33
Yes, this should be included in v6.15 compat changes.
owner Shaun Tancheff · uploader Shaun Tancheff · PS5 uploaded 201d ago · NEW · open in Gerrit ↗
commit message
LU-19266 pcc: ensure pcci is available post cache eviction

After inode evicted from cache pcc_ioctl_state() needs to
call pcc_io_init() when ll_i2pcci(inode) is not available.

Test-Parameters: trivial testlist=sanity-pcc,recovery-small,sanity-flr
Signed-off-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Change-Id: Iae1ad85264ed8ebacb6481ca16af2408a29b19aa
60382 b2_15 J ✗2B ✓T ✓R 1/1
LU-10026 csdc: DoM pattern could be a combined value
cc Andreas Dilger ·
LTS15 stalled 218d M +48 −38
218d
janitor flagged test failures unique to this patch — superseded (tests have since passed) — full janitor results
unique failing testhistory
sanity-flr@zfs:test_204cseen in 3 other reviews
sanity-pfl@ldiskfs+DNE:test_22cseen in 1 other review
build #120346 SUCCESS · tests all Maloo sessions
reviews: Andreas Dilger +1 2025-12-05 09:20 · Zhenyu Xu +1 2025-12-05 09:20
patchsets: PS2 07-26 PS3 07-26 PS4 11-04 PS5 12-05
owner Andreas Dilger · uploader Andreas Dilger · PS5 uploaded 257d ago · NEW · backport · open in Gerrit ↗
commit message
LU-10026 csdc: DoM pattern could be a combined value

DoM pattern is LOV_PATTERN_MDT for now, and in the future it could
be combined with LOV_PATTERN_COMPRESS to represent a compressed
DoM component.

Fix a minor glitch for lov_getstripe_old code path (in
ll_lov_getstripe_ea_info), which intends to return the last component
stripe info but the commit abf04e7ea3 omits to correctly set the
last component stripe info before using it.

Lustre-change: https://review.whamcloud.com/51978
Lustre-commit: bb0cc84fbed51e006bfac230dada426bfac4f500

Fixes: abf04e7ea3 ("LU-14337 lov: return valid stripe_count/size for PFL files")
Signed-off-by: Bobi Jam <bobijam@whamcloud.com>
Change-Id: Id0779c30c004b6979f88bf96b7b7b74a8b8c26e4
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
36953 master J ✗9B ✓T ✗4R 0/2
LU-13058 lod: Intermediate component removal
cc Patrick Farrell (personal) ·
9 unique failures stalled 380d L +408 −39
380d
janitor flagged test failures unique to this patch
unique failing testhistory
sanity-flr@ldiskfs+DNE:test_40NEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
sanity-flr@zfs:test_40NEW unique failure for this branch in the last 30 days, and was seen 1 times across 1 other branches 1 reviews
sanity-pcc@ldiskfs+DNE:test_1cseen in 1 other review
sanity-pcc@ldiskfs+DNE:test_1dseen in 1 other review
sanity-pcc@ldiskfs+DNE:test_1fseen in 1 other review
sanity-pcc@ldiskfs+DNE:test_2aseen in 1 other review
sanity-pcc@ldiskfs+DNE:test_2cseen in 1 other review
sanity-pcc@ldiskfs+DNE:test_4seen in 1 other review
sanity-pcc@ldiskfs+DNE:test_13cseen in 1 other review
failed enforced testplatformdetail
review-dne-part-2 CentOS 7.0/x86_64 ran 11 tests. 1 tests failed: sanity-pcc. session
review-dne-part-4 CentOS 7.0/x86_64 ran 10 tests. 1 tests failed: sanity-flr. session
review-dne-zfs-part-4 crashed CentOS 7.0/x86_64 ran 12 tests. 2 tests failed: sanity-flr, replay-single. %% THIS TEST SESSION CRASHED %% session
review-zfs CentOS 7.0/x86_64 ran 7 tests. 1 tests failed: sanity-flr. session
build #10482 SUCCESS
no vote yet: Andreas Dilger, Mikhail Pershin
owner Patrick Farrell (personal) · uploader Patrick Farrell (personal) · PS2 uploaded 2445d ago · NEW · open in Gerrit ↗
commit message
LU-13058 lod: Intermediate component removal

The classic PFL layout example is a three tier layout,
generally DOM->SSD->HDD.  In this case, it is possible for
the SSD tier to be low on/out of space.  Classic PFL has no
provision for handling this - The SSD component is
either instantiated (even if the OSTs are almost out of
space) or an error is returned (if the OSTs are truly out
of space).

This is not desirable behavior, and self extending layouts
improve on this by making it possible to change the layout
dynamically to avoid this.  They do this in two ways:

1. If the SSD tier is low on space, do not instantiate that
component, instead, extend the HDD component "up" to cover
that region
2. Dynamically assign the layout in chunks, only gradually
giving more layout on the SSD tier.  This handles the case
where the SSD tier becomes low on space while in use.

"2" requires a specialized self-extending layout, but there
is nothing about "1" which actually requires this type of
layout.  It is possible to 'skip' a full tier in a normal
PFL layout.

This patch implements that for normal PFL layouts.  Before
instantiating an intermediate layout component, the stripe
allocator is asked to assign striping, then the chosen OSTs
are checked to see if they're low on space.

If an OST is low on space, we simply remove this component
from the layout and extend the next component downward
instead.  The assumption is that the later tiers are larger
in size, and so most likely have space.  This is identical
to the behavior for SEL files, using the same basic check.

Signed-off-by: Patrick Farrell <farr0186@gmail.com>
Change-Id: I380db620903e795523c2d4a5554c8c56505db593
38587 master J !B ✓T ✗2R 0/2
LU-0000 osc: introduce delayed extents
cc Wang Shilong ·
stalled 380d M +93 −4
380d
failed enforced testplatformdetail
review-dne-zfs-part-1 CentOS 7.0/x86_64 ran 6 tests. 3 tests failed: recovery-small, sanityn, sanity. session
review-dne-zfs-part-2 CentOS 7.0/x86_64 ran 11 tests. 1 tests failed: sanity-hsm. session
2 optional test failure(s) — informational
build #14199 SUCCESS
no vote yet: Qian Yingjin
owner Wang Shilong · uploader Wang Shilong · PS1 uploaded 2289d ago · NEW · open in Gerrit ↗
commit message
LU-0000 osc: introduce delayed extents

This might improve the possibility that aio request
could be merged to reduce overhead of ptlrpc.

Change-Id: I23c97624026213ea6e94f3767ccab1c0c29c9f91
Signed-off-by: Wang Shilong <wshilong@ddn.com>
49669 master J !B ✗T –R 0/2
LU-16485 llite: Add manual prefetch to ladvise
cc Patrick Farrell (personal) ·
stalled 1309d 1 unresolved XL +1592 −5
1309d
janitor run: 2 failing config(s), none unique to this patch — janitor results
build #91699 FAILURE
threads: 0 need your reply · 0 waiting on others · 1 own notes · 0 bot
note PS1 2023-01-17 23:12 Patrick Farrell ladvise_prefetch_test.c:1 — This is just a copy of the lockahead tests right now because I lost the prefetch test while reorganizing... Which is an example of why I wa
Patrick Farrell PS1 · 2023-01-17 23:12
This is just a copy of the lockahead tests right now because I lost the prefetch test while reorganizing...  Which is an example of why I wanted to get this pushed to Gerrit. :x
owner Patrick Farrell (personal) · uploader Patrick Farrell (personal) · PS1 uploaded 1309d ago · NEW · open in Gerrit ↗
commit message
LU-16485 llite: Add manual prefetch to ladvise

It is extremely useful for some applications to be able to
manually request that specific page ranges be prefetched.
This is particularly interesting for databases.  Database
queries can often generate fairly random access patterns,
which can make readahead difficult or wasteful (if accesses
are sparse).  But critically, the database knows which
pages of the file it will need to answer the query.

This interface makes it possible to request that an
arbitrary set of pages (non-contiguous, etc) be prefetched
in to client memory.

This is incomplete prototype code with no expectation of
further work currently, but I wanted to get this where it
would not be lost.

Test-parameters: fortestonly
Signed-off-by: Patrick Farrell <farr0186@gmail.com>
Change-Id: I6a7332bb8b4d649302a69e5283bd944aacd2f1e4

Merged — last 30 days

(3)
64615 master J –B ✓T ✓R 3/2+2
LU-20002 llite: add cached_read_bytes stat
mine
17 unresolved M +171 −29
6d
reviews: Andreas Dilger +1 2026-08-12 06:02 · Oleg Drokin +2 2026-08-12 06:02 · Timothy Day +1 2026-08-12 06:02
patchsets: PS1 03-16 PS2 03-17 PS3 03-17
owner Patrick Farrell · uploader Oleg Drokin · PS4 uploaded 7d ago · MERGED · open in Gerrit ↗
commit message
LU-20002 llite: add cached_read_bytes stat

Add a new cached_read_bytes counter to llite stats that
tracks bytes served from the page cache via the cached
read path (ll_read_from_cache). This allows users to
determine what fraction of their read I/O hits the page
cache versus going through the full cl_io/DLM lock path.

Rename ll_do_fast_read() to ll_read_from_cache() to
clarify that this function handles all cached reads, not
just small or "fast" ones.

The stat uses LPROCFS_TYPE_BYTES_FULL, providing count,
min, max, sum, and sumsq - matching the format of the
existing read_bytes and hybrid_read_bytes counters.

Comparing cached_read_bytes to read_bytes gives a cache
hit ratio useful for performance analysis and tuning.

A sanity test (127g) verifies the stat with four
sub-tests: cold cache reads show zero cached bytes,
warm cache reads show matching cached and total bytes,
disabling fast_read zeroes the counter, and a multi-page
cold read shows readahead feeding the cached read path
(at most 2 out of 16 pages miss).

Generated with Claude Code + Tools

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I6167f4afef5856a34831f16332c86683bcc055f9
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/64615
Reviewed-by: Timothy Day <timday@thelustrecollective.com>
Tested-by: Maloo <maloo@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@thelustrecollective.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
59587 master J –B ✓T ✓R 4/2+2
LU-13643 connect: reserve FLR_IMMED_MIRROR flag
mine
2.17-rc2 pt_ecro 2 unresolved S +11 −4
8d
reviews: Marc Vef +1 2025-12-11 14:15 · Andreas Dilger +1 2025-12-11 14:15 · Alex Zhuravlev +1 2025-12-11 14:15 · Oleg Drokin +2 2025-12-11 14:15
patchsets:
+3 earlier PS1 06-05 PS2 11-30 PS3 11-30
PS4 11-30 PS5 11-30 PS6 12-05 Andreas Dilger PS7 12-07 Andreas Dilger PS8 12-07 Andreas Dilger
tags: pt_ecro
owner Patrick Farrell · uploader Oleg Drokin · PS9 uploaded 251d ago · MERGED · open in Gerrit ↗
commit message
LU-13643 connect: reserve FLR_IMMED_MIRROR flag

Reserve a new connect flag OBD_CONNECT2_FLR_IMMED_MIRROR for the
immediate mirror feature in File Level Replication (FLR).

This flag will be used to indicate that the client/server supports
immediate mirror functionality, where mirror files are synchronized
immediately rather than using the default lazy synchronization
behavior.

The flag value 0x20000000000ULL is the next available value in the
OBD_CONNECT2 series after OBD_CONNECT2_FLR_EC.

This patch only reserves the flag and updates the necessary
infrastructure:
- Add OBD_CONNECT2_FLR_IMMED_MIRROR flag definition
- Update obd_connect_names[] array with "flr_immediate_mirror" name
- Add wiretest assertions for both utils and ptlrpc wiretest files

The actual implementation of the immediate mirror feature will be
submitted in subsequent patches.

Test-Parameters: trivial
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I4fb92940773db6a395ea3d5dc91cce2444185fac
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/59587
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
Reviewed-by: Marc Vef <mvef@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@thelustrecollective.com>
65010 master J –B ✓T ✓R 4/2+2
LU-12668 target: extend BRW_READ_BULK fail_loc bitmask
mine
pt_ecro S +6 −12
25d
reviews: Marc Vef +1 2026-07-23 23:03 · Maximilian Dilger +1 2026-07-23 23:03 · Andreas Dilger +1 2026-07-23 23:03 · Oleg Drokin +2 2026-07-23 23:03
patchsets:
+11 earlier PS1 03-31 PS2 04-01 Ronnie Sahlberg PS3 04-08 PS4 04-09 PS5 04-10 PS6 04-21 Zhenyu Xu PS7 05-05 PS8 05-06 Ronnie Sahlberg PS9 05-14 Marc Vef PS10 05-20 Marc Vef PS11 07-02 Marc Vef
PS12 07-06 Maximilian Dilger PS13 07-09 Marc Vef PS14 07-09 Marc Vef PS15 07-10 Marc Vef PS16 07-13 Marc Vef
tags: pt_ecro
owner Patrick Farrell · uploader Oleg Drokin · PS17 uploaded 26d ago · MERGED · open in Gerrit ↗
commit message
LU-12668 target: extend BRW_READ_BULK fail_loc bitmask

Make OBD_FAIL_OST_BRW_READ_BULK (0x20f) select which OST(s) to fail
through the shared cfs_fail_index() helper, so a single fail_loc can
fail multiple OSTs at once:

  fail_val = 0         fail all OSTs (unchanged)
  fail_val = 1..0xffff fail single OST at index
                        fail_val-1 (unchanged)
  fail_val > 0xffff    bitmask mode: bits 0-15 select
                        which OST indices to fail

This is needed for EC degraded read testing. EC recovery requires
multiple simultaneous OST read failures to exercise the reconstruction
path. The previous single-OST targeting could only fail one stripe at
a time.

The encoding is provided by cfs_fail_index() and is backwards
compatible -- no existing fail_loc user passes fail_val > 0xffff for
single-OST targeting since OST indices are 16-bit.

EC recovery tests use this with CFS_FAIL_SOME and osc.*.resend_count=1
to inject persistent read errors that propagate to the LOV layer
without causing infinite BRW retries.

Assisted-by: ClaudeCode:Opus llm_code_and_review_tools

Test-Parameters: trivial
Test-Parameters: testlist=sanity-ec
Test-Parameters: testlist=sanity-ec fstype=zfs
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I432a262520b28ca1c344a1ec9f01ed435ffe2805
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/65010
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Maximilian Dilger <mdilger@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Marc Vef <mvef@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@thelustrecollective.com>