Add NFSv4 multi-client race tests
Add 14 multi-client NFSv4 race tests under
tests/sharing_protocols/nfs/test_nfs_mt_races.py. Each test spawns
N=8 worker threads, each driving its own PynfsClient (distinct
clientid + session), with a barrier-synchronised start so the server
sees concurrent requests. Status distributions are aggregated and
asserted to match RFC 8881 expectations exactly.
Coverage:
- OPEN/CLOSE share-state: DENY_WRITE / DENY_READ mutex; compatible
OPEN(READ) coexistence (RFC 8881 §9.7).
- Byte-range LOCK: shared READ_LT coexistence; disjoint WRITE_LT
coexistence (§9.1).
- Namespace: concurrent CREATE / MKDIR / UNLINK / RMDIR / RENAME
on the same target -- exactly one accepted, rest get the
appropriate NFS4ERR_EXIST / NFS4ERR_NOENT.
- Data: disjoint-offset WRITEs all persist intact.
- Metadata: concurrent SETATTR(mode), SETXATTR, SETACL atomicity
[16 lines not shown]
[libclc] Base the build around `add_sources` instead of source list (#197034)
Summary:
The current build uses a curated + deduplicated source list. This PR
seeks to simplify this a little bit and canonicalize the behavior.
Now we create the target up-front, `clc` and `opencl`. We add the
directories which add sources to this target. We normalize the
architecture to the variants. We always add target specific versions
first. When we add sources we check if the file already exists and defer
to the architecture specific one.
This normalized the behavior, the directories are now laid out like this
`clc/<arch>/<os>`. We normalize these to `amdgpu`, `nvptx`, and `spirv`
respectively. We use the OS for the newly created vulkan target. We now
control variants via checking if the directory for that exists, so it's
nested more naturally.
Hopefully this makes more sense, the goal is to exercise the fact that
we have individual builds now. Previously this did not work because you
could not add_subdirectory more than once.
aarch64: the MI pmap doesn't support HW modified / referenced bits.
Disable ARMV81_HAFDBS because the MI pmap doesn't handle HW supported
modified and referenced bits yet.