fix(cloud-backup): reuse restic parents across snapshot paths (#20101)
- avoid rereading unchanged files when timestamped snapshot paths
prevent restic parent matching
- group by host and task tag to keep parent selection isolated between
tasks
## Validation
- exercised an equivalent patch on a running TrueNAS 25.10.7 system with
restic 0.16.4: a snapshot backup of 113,790 files went from 804s to
145s, reusing all file data
- verified parent IDs in an isolated repository using the upstream
command builder: subsequent backups selected the same task's parent
across changing paths, even when another task had a newer backup
- changed a file, backed it up, and compared restored contents byte for
byte
- checked that non-snapshot, absolute-path, and zvol commands remained
unchanged
[4 lines not shown]
Revert "[CMake] message type: FATAL_ERROR instead of ERROR" (#241321)
Reverts llvm/llvm-project#174947
The error is now indeed fatal, but it fires also when using clang-cl,
breaking our builds. See comment on the original PR.
pass(4): Don't drop the periph lock before selrecord() in passpoll()
passpoll() checked the done queue while holding the peripheral lock,
dropped the lock, and only then called selrecord(). A CCB completing
in the window between the unlock and the selrecord() call sent its
selwakeuppri() before the polling thread was on the selinfo list, so
the wakeup was lost and select(2) or poll(2) slept until another
completion arrived or the timeout expired.
Call selrecord() before dropping the lock. This lock order is
already established: passdone() calls selwakeuppri(), which takes
the selinfo lock, while holding the peripheral lock.
kqueue is not affected, since the knlist is backed by the peripheral
mutex.
Reported by: llm-postcr
Fixes: a9934668aa13
MFC after: 1 week
[2 lines not shown]
[mlir][VectorToGPU] Split VectorToNVGPU from VectorToGPU (#238804)
VectorToGPU contains lowering to both the GPU and NVGPU dialects,
causing users of the generic GPU conversion to link NVGPU dependencies.
Move the NVGPU lowering into a separate VectorToNVGPU library and
introduce the convert-vector-to-nvgpu pass. Remove the use-nvgpu option
from convert-vector-to-gpu, which retains the generic GPU lowering.
Share common helpers through `MLIRVectorToGPUCommonConversion`. Preserve
the existing lowering behaviour for both paths.
Related: [#236134](https://github.com/llvm/llvm-project/pull/236134)
---------
Co-authored-by: Markus Böck <markus.boeck02 at gmail.com>
[Attributor][NFC] Only look for callback arguments of call site arguments (#240912)
`getArgNo` looked for a callback callee argument for every position
kind, e.g. for the attribute index of every argument.
Only call site arguments can map to a different argument.
Attributor passes on CTMark files, on top of the other pending
Attributor compile-time changes: -0.1% to -0.4% instructions.
Co-authored-by: Matt Arsenault <Matthew.Arsenault at amd.com>
Co-authored-by: Shilei Tian <i at tianshilei.me>
Assisted-by: Claude Opus 5.5
[AMDGPU][AsmParser] Require a comma between dfmt and nfmt
PR46403 says that the MTBUF syntax expects dfmt and nfmt to be
separated by a comma. Nothing required supporting the comma as
optional: dfmt and nfmt were always ordinary operands. They were
separate operands before 35484c9d5024, and the printer has always
printed them as 'dfmt:N, nfmt:M'.
Another step towards checks for correct use of commas between
operands.
Assisted-By: Claude
pass(4): Wake select/kqueue waiters when an immediate CCB completes
In the CAMIOQUEUE ioctl, a queued CCB completes through passdone(),
which moves it to the done queue and calls selwakeuppri() and
KNOTE_LOCKED() so that a consumer blocked in select(2), poll(2) or
kevent(2) wakes up and collects the CCB with CAMIOGET. An immediate
CCB (e.g. XPT_DEV_ADVINFO or XPT_DEV_MATCH) is instead executed
synchronously in the ioctl and moved to the done queue directly,
with no notification, so a consumer sleeping while waiting for its
completion never wakes up until some other queued I/O completes.
Send the same notification that passdone() sends. The peripheral
lock is held at this point and backs the knlist, so KNOTE_LOCKED()
is the correct variant.
A version of this fix has been in production use at Spectra Logic
since 2024.
Co-authored-by: Dave Baukus <daveb at spectralogic.com>
[5 lines not shown]
[Offload][AMDGPU] Return the real user count from getUserCount (#241301)
This patch fixes the return type of AMDGPUQueueTy::getUserCount, which
currently returns bool: that collapses the count to 0 or 1, which upsets
the occupancy measurement in assignNextQueue.
A new test checks that work is queued appropriately across hardware
queues.
Assisted-By: Claude
www/apache24: update to 2.4.71
Apache 2.4.71 (2026-11-11)
Fixes three security problems.
* CVE-2026-119618 (critical): mod_http2: heap corruption and RCE in
assign_headers
Concurrent Execution using Shared Resource with Improper Synchronization
vulnerability in Apache HTTP Server's mod_http2 in assign_headers() can
lead to RCE.
This issue affects Apache HTTP Server: from 2.4.55 through 2.4.70.
Affected releases of mod_h2 from GitHub: from 2.0.8 through 2.0.42.
* CVE-2026-106023 (important): mod_md NULL pointer dereference leads to
child process crash
[12 lines not shown]
Record the info of functions defaulted outside class templates
A function defaulted outside its class template returned from
SetDeclDefaulted before it recorded the floating-point features in
effect at its definition. Its instantiation then had no info to reuse
and took the features in effect at its point of instantiation instead,
which also crashed codegen when those were strict but the function was
not.
Always record the info for such a pattern, so that its instantiation
reuses it. Also don't record it twice for a postfix operator defaulted
under non-default floating-point features: its info, including those
features, is recorded along with the lookup of its prefix operator.
[clang][C23] Delay thread storage recovery for constexpr diagnostics (#236758)
When a thread storage specifier conflicts with another storage class,
DeclSpec clears it before diagnosing a C23 constexpr conflict. The
second diagnostic then reports "unspecified" and loses the specifier's
source range.
For a block-scope declaration:
Before:
```
a:2:22: error: cannot combine with previous 'register' declaration specifier
2 | constexpr register _Thread_local int x = 1;
| ~~~~~~~~ ^
a:2:3: error: cannot combine with previous 'unspecified' declaration specifier
2 | constexpr register _Thread_local int x = 1;
| ^
2 errors generated.
```
[13 lines not shown]
[Offload][AMDGPU] Return the real user count from getUserCount
This patch fixes the return type of AMDGPUQueueTy::getUserCount, which
currently returns bool: that collapses the count to 0 or 1, which upsets
the occupancy measurement in assignNextQueue.
A new test checks that work is queued appropriately across hardware
queues.
Assisted-By: Claude
[clang][Sema][NFC] Consolidate checking for vector reduction builtins (#238663)
Share argument conversion, element type extraction, and result type
assignment across the single-argument reduction builtins. Preserve each
builtin's element type restrictions and diagnostics, and reuse
getVectorElementType for fixed-size and sizeless vectors.
[NFC][OpenMP] Track Fortran OpenMP support status only in the Flang docs (#240917)
The Clang OpenMP support page had a "Fortran Status" column in its 5.2,
6.0 and 6.1 tables that was not kept up to date with the Flang page. For
OpenMP 5.2 alone it disagreed with flang/docs/OpenMPSupport.md on 13
rows (e.g. "if clause on teams", "otherwise clause" and "pure procedure
support" were listed as unclaimed for Fortran but are done in Flang).
Make the Flang page the only place Fortran status is recorded. The Clang
page now covers Clang (C/C++) and the LLVM OpenMP runtimes, whose status
applies to both languages.
[Offload][AMDGPU] Return the HSA queue as a queue's native handle (#241300)
Implement getNativeQueueHandle (introduced by #234186) for AMDGPU, so
that olGetQueueInfo can report OL_QUEUE_INFO_NATIVE_HANDLE for an AMDGPU
queue instead of UNSUPPORTED. The handle is the hsa_queue_t the queue's
stream is bound to; a stream is bound on first use, so querying binds
one if necessary. Several streams may share an HSA queue, in which case
their queues report the same handle.
Assisted-By: Claude