Wait for database replication in the SMB HA tests
After the durable handle test crashes the active controller, the new
active controller does not replicate database changes until it resends
the whole database, which it retries every 30 seconds. The module
teardown ran and failed back inside that window, so the SMB settings it
restored never reached the original controller. Stateful failover
stayed enabled and the later SMB tests failed.
Make wait_ha_ready() also wait until failover.datastore.is_failure is
false, as settle_ha() does.
[Offload][Omp] Remove dead code in PluginManager (#238312)
The initial loop in PluginManager::unregisterLib has been dead code for
about 2 years (sice commit 254287658f4b3e413d47870c1cca422071b398). This
removes the loop which contains an uneeded usage of the PluginInterface
and also `UsedImages` which was only used here.
[SelectionDAG] Use correct result type in visitEXTRACT_VECTOR_ELT (#148707)
In `visitEXTRACT_VECTOR_ELT`, the post-legalization fold
`(extract_vector_elt (load $addr), c) -> (load $addr + c * size)` passes
the vector element type (`LVT`) instead of the extract's result type
(`ScalarVT`) to `scalarizeExtractedVectorLoad` and `getUNDEF`. An
`EXTRACT_VECTOR_ELT` may return an integer wider than its element type;
the combine then replaced, for example, `i64 = extract_vector_elt (v4i32
load), 3` with an `i32` load and failed the `Type mismatch` assertion in
`DAGCombiner::Run`. With `ScalarVT`, `scalarizeExtractedVectorLoad`
creates an extending load, as the variable-index path has done since
c268a3f0934c.
In-tree targets cannot reach this from IR: legalization only produces an
extract wider than its element when the element type is illegal, and
`scalarizeExtractedVectorLoad` requires `ISD::LOAD` of the element type
to be legal or custom. I hit it with an out-of-tree backend. The new
`AArch64SelectionDAGTest.Combine_EXTRACT_VECTOR_ELT_ExtLoad` unit test
builds `i64 = extract_vector_elt (v4i32 load), 1`, runs the combiner
after legalization and checks for an `i64` extending load of the `i32`
element at offset 4; without this fix it fails the assertion above.
Add memory limit to containers
## Problem
Containers report 1 PiB of memory and there is no way to cap how much memory a container can use, because libvirt is always handed a placeholder 1 PiB value for `<memory>`.
## Solution
Added a `memory` column and API field (MiB, `ge=20`) to containers. The value is passed to libvirt, which enforces it as a hard cgroup limit and reports it as the container's MemTotal. When it is unset, `container.start` uses the host's physical RAM, so containers without a limit see the real host memory instead of 1 PiB. The Incus import carries over `limits.memory`, skipping soft-enforced limits and values that don't parse to at least 20 MiB.
[OpenMP][offload] Apply the low-trip rule to no-loop kernels (#234660)
Use the same low-trip logic for no-loop that we're also using for
regular SPMD loops.
That means in particular that we try to use the preferred number of
blocks and trade threads for blocks if there are not enough loop
iterations.
The default #blocks for an MI200 would be 4*#CUs, aka 416. If we have a
loop with 256 threads/block but only a tripcount of 512, we use the
minimal #threads/block, aka 32 and then choose #blocks accordingly.
This is an upstream port of the corresponding downstream.
Claude assisted with this patch.
[AMDGPU] Guard image intrinsics with image-insts feature. (#238123)
The llvm.amdgcn.image.* intrinsics, other than the already guarded BVH
ones, did not require any target feature. On subtargets without image
instructions, such as gfx942, gfx950, gfx1250, gfx1251 and the generic
targets, they reached instruction selection and either asserted, failed
with a fatal "cannot select" error, or silently produced image
instructions that the assembler rejects for that subtarget.
Require image-insts so that both SelectionDAG and GlobalISel diagnose
them instead. This also rejects zero-dmask image intrinsics that
instruction selection would otherwise drop as no-ops.
Assisted by: Opus 5.5
[VPlan] Strip bad TODO for VPI::execute (NFC) (#237928)
The TODO does not make sense, as unrolled parts for all recipes are
uniformly handled by VPlanUnroll. The remaining comment for VPI::execute
doesn't add value either.
[libc] Implement sigsuspend in signal (#237223)
Add the standard POSIX function sigsuspend to <signal.h>:
- Add low-level rt_sigsuspend system call wrapper in
libc/src/__support/OSUtil/linux/syscall_wrappers/rt_sigsuspend.h.
- Add public header declaration in libc/src/signal/sigsuspend.h.
- Implement sigsuspend entrypoint in
libc/src/signal/linux/sigsuspend.cpp.
- Declare sigsuspend in libc/include/signal.yaml.
- Register entrypoint for Linux (x86_64, aarch64, riscv) in architecture
config files.
- Update CMakeLists.txt files across syscall wrappers, signal sources,
and tests.
- Add unit tests in libc/test/src/signal/sigsuspend_test.cpp.
Part of #236167
www/{nginx,nginx-devel,freenginx}: 3rd-party modules management
Chase the vod module update, which these ports build in themselves.
Sponsored by: Netzkommune GmbH
www/freenginx: Remove stale subs_filter plist entry
The option went away with the module, the packing list kept its line.
Fixes: 445f9e590a9e ("www/{nginx,nginx-devel,freenginx}: 3rd-party modules management")
Sponsored by: Netzkommune GmbH
net-mgmt/semaphore: Update to 2.19.18
Adds SEMAPHORE_SESSION_INACTIVITY_HOURS, which expires a login session
that stayed unused for that many hours.
Changelog:
https://github.com/semaphoreui/semaphore/releases/tag/v2.19.18
Sponsored by: Netzkommune GmbH
deskutils/vit: Update to 2.3.5
Keeps the command input when quote validation fails, defers the terminal
setup until after the screen is cleared and takes calc_width from the
public urwid API. Packaging now covers Python 3.11 through 3.15.
Changelog:
https://github.com/vit-project/vit/releases/tag/v2.3.5
Sponsored by: Netzkommune GmbH
change failure and success path in testing bpf in npf
There are two tests here, standlone BPF byte code and JIT-compiled code
we don't need if/else block, we need an assertion to trigger
on any if there is unsuccessful compilation.
this avoids tests failures being unnoticed because we only see failures when
running in verbose mode
Revert "nim: remove code block because it doesn't have any effect on the installation process"
It actually affetcs the build process but only on *BSD, which I did not test
nor look into properly.
[AMDGPU] llvm.amdgcn.*.buffer.load.format.d16.ll - regenerate checks (#238285)
Clean up work for the topological sorting patch to make codegen diffs
more obvious
[mlir][affine] Add arith.subi support to memref to affine raise (#222880)
This PR adds support for `arith.subi` to `toAffineExpr` to e.g. allow
matching expressions like `i-1` which appear with one-indexed arrays.
[clang] Fix extra error message (#235427)
When auto* is used in a structured binding, Clang reports an error
because this declaration is not allowed. However, it also reports
another error about the initializer type, which is unnecessary.
This change removes the invalid pointer from the declarator instead of
marking the declaration as invalid, allowing Clang to continue type
deduction and keep the structured bindings usable in subsequent code.
Added test cases for different invalid auto declarations.
Used LLM to identify the issue and understand the code.
Fixes #222605