NAS-140242 / 27.0.0-BETA.1 / Add concurrent state polling to Phase 1 of unit stop wait (#18431)
virtlogd.socket (and potentially other socket/target units) can be
deactivated implicitly by systemd as a dependency of another unit
stopping. When this happens, the explicit Stop job we issue either never
fires a JobRemoved signal or fires it very late, causing the code to
wait the full 95s timeout even though the unit is already inactive.
Fix by racing the JobRemoved wait against a 200ms-interval ActiveState
poll. Whichever resolves first wins; if the unit becomes inactive first,
Phase 2 is skipped entirely since there is nothing left to wait for.
Fix keepalived boot deadlock in configure_addresses_impl
ix-netif.service runs Before=network-pre.target, but keepalived requires
After=network-online.target. Starting keepalived from configure_addresses_impl
(called via ix-netif.service) caused systemd to queue the start job for ~95s
until network-online.target was eventually satisfied after ix-netif.service
completed - a structural deadlock.
Fix by guarding the keepalived START behind the ix-netif completion sentinel.
If keepalived is already running, RELOAD as before. If it is not running and
the sentinel exists (i.e. we are in a post-boot interface.sync call), START it.
If the sentinel does not exist we are in the early boot call and skip keepalived
entirely; it will be started once the network is online.
Move NETIF_COMPLETE_SENTINEL from smb_/constants.py to the more appropriate
middlewared/utils/interface.py and update importers accordingly.
[flang][OpenMP] Loop IVs inside TEAMS are predetermined private in 5.2+
Mark the induction variables of loops in a TEAMS construct as predetermined
private when OpenMP version is 5.2 or later.
[NFC][SPIRV] New test for untested SPIRV backend case (#185686)
[This
line](https://github.com/ambergorzynski/llvm-project/blob/main/llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp#L2362)
in the SPIRV backend is uncovered by the existing test suite (checked
using coverage, and by asserting that no tests in the existing test
suite fails if we insert an `abort()` at this line).
We propose a test that covers this line. We demonstrate the test by
inserting an `abort()` at that line in commit
[#e37e88e](https://github.com/llvm/llvm-project/commit/e37e88e2500bd695d9635322af487c0c40ba3b8a).
Running all tests shows that only our proposed test fails in the
presence of the `abort`. We've removed the `abort` ahead of merging.
This is the only test that fails in the presence of the abort (which
includes our new test): `LLVM.CodeGen/SPIRV/instructions/icmp.ll`
[LLVM] [SeparateConstOffsetFromGEP] Fix sep-const-offset-from-gep invalid assumption (#183402)
`SeparateConstOffsetFromGEP` assumed the index of a GEP was non-negative
(and therefore previous sext/add could be reordered safely) if the GEP
was marked `inbounds`. This can only be assumed if the GEP is working
off of the base address for the object (counter example:
https://alive2.llvm.org/ce/z/FjGgWp).
This fix removes the general assumption of inbounds GEPs and replaces it
with new checks. The transform is valid when:
1. Value tracking shows the index is known non-negative.
2. The GEP is inbounds and the offset from the base ptr is 0.
3. The GEP is inbounds and the offset is within the threshold `(2^(N-1)
- C + 1) * stride`, where N is the bit width of the index, C is a
positive constant in the add, and stride is the type size of the GEP.
4. The GEP is inbounds and the object size is within the threshold
`(2^(N-1) - C + 1) * stride` for positive C or `(2^(N-1) + C) * stride`
for negative C.
[2 lines not shown]
[SandboxVec][DAG][NFC] Remove argument from setScheduelued() (#185787)
DGNode::setScheduled() is only used to mark a nodes a scheduled, not the
reverse. The reverse should only happen with a call to
DGNode::resetScheduleState().
[HLSL] Implement Texture2D::mips[][]
We implement the Textur2D::mips[][] method. We follow the design in DXC.
There is a new member called `mips` with type mips_type. The member will
contain a copy of the handle for the texture.
The type `mips_type` will have a member function `operator[]` that takes
a level, and returns a `mips_slice_type`. The slice will contain the
handle and the level. It also has an operator[] member function that
take a coordinate. It will do a load from the handle with the level and
coordinate, and return that value.
Assisted-by: Gemini
Revert "[clang][ssaf] Add UnsafeBufferUsage summary extractor for functions (#182941)"
This reverts commit b7512418d2c1f0ba9ae3016024cb503ded7835d1.
There are bots broken by this commit.
[bazel] Add -Wno-vla-cxx-extension to macOS lldb srcs (#185945)
```
lldb/tools/debugserver/source/MacOSX/MachVMMemory.cpp:88:20: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
88 | int dispositions[dispositions_size];
| ^~~~~~~~~~~~~~~~~
```
This code contains objc++ which can only be compiled with clang anyways.
[X86] Use shift+add/sub for vXi8 splat multiplies (#174110)
Fixes #164200
~~I will create a separate PR to the `llvm-test-suite` repo for the
microbenchmark for this change.~~ The benchmark is in
https://github.com/llvm/llvm-test-suite/pull/316
In my experiments on an EC2 `c6i.4xl`, the change gives a small
improvement for the `x86-64`, `x86-64-v2`, and `x86-64-v3` targets. It
regresses performance on `x86-64-v4` (in particular, when the constant
decomposes into two shifts). The performance summary follows:
```
$ ../MicroBenchmarks/libs/benchmark/tools/compare.py benchmarks results-baseline-generic-v1.json results-opt-generic-v1.json |tail -n1
OVERALL_GEOMEAN -0.2846 -0.2846 0 0 0 0
$ ../MicroBenchmarks/libs/benchmark/tools/compare.py benchmarks results-baseline-generic-v2.json results-opt-generic-v2.json |tail -n1
OVERALL_GEOMEAN -0.0907 -0.0907 0 0 0 0
$ ../MicroBenchmarks/libs/benchmark/tools/compare.py benchmarks results-baseline-generic-v3.json results-opt-generic-v3.json |tail -n1
[3 lines not shown]
devel/py-xdg: rename to devel/py-pyxdg to match Python package name
While here:
- switch to USE_PYTHON=pep517
- pull in upstream commits addressing Python 3.12, 3.14, 3.15 compat