FreeNAS/freenas d0cedaa — src/middlewared/middlewared/api/v27_0_0 zfs_resource_crud.py, src/middlewared/middlewared/plugins/pool_ dataset.py

NAS-144060 / 27.0.0 / Create thick zvols with refreservation=auto (by ixhamza) (#19965)

Depends on the libzfs fix (already merged):
https://github.com/truenas/zfs/pull/471.

`zfs_create()` now resolves `refreservation=auto`, so a thick volume can
ask ZFS for the reservation it actually needs: the volsize plus metadata
and raidz/draid overhead, which is what `zfs create -V` has always set.
Default to that at creation instead of reserving exactly the volsize.
The old value under-reserved every thick volume, and because libzfs only
grows a reservation it computed itself, the first resize left the
reservation behind. An explicit `auto` is accepted at creation as well,
the way `zfs.resource.set` already accepts it, and rejected for a
filesystem with the same error. Volumes created by earlier releases keep
reserving exactly their volsize until they are grown, which the update
path still switches to `auto`.

A thick volume therefore reserves more than its volsize now: about 1-2%
at the default 16K volblocksize, and 1.37x to 2.36x with 4K or 8K blocks

    [25 lines not shown]
DeltaFile
+20-10src/middlewared/middlewared/plugins/zfs/create_rules.py
+13-13tests/api2/test_zvol_resize.py
+21-2tests/api2/test_zfs_resource_create.py
+14-2src/middlewared/middlewared/test/integration/assets/zfs_resource.py
+6-7src/middlewared/middlewared/plugins/pool_/dataset.py
+6-3src/middlewared/middlewared/api/v27_0_0/zfs_resource_crud.py
+80-373 files not shown
+88-419 files

LLVM/project a99159a — lldb/source/Plugins/SymbolFile/DWARF DWARFFormValue.h DWARFFormValue.cpp, lldb/unittests/SymbolFile/DWARF DWARFASTParserClangTests.cpp

[lldb] Recognize flag forms in DWARFFormValue's constant accessors (#229738)

LLDB crashes on parsing a `DW_TAG_LLVM_ptrauth_type` with
`DW_AT_LLVM_ptrauth_address_discriminated`, here is the crash
inside lldb,

```
thread #1, stop reason = libc++: .../usr/include/c++/v1/optional:1150:libc++ Hardening assertion this->has_value() failed: optional operator*
called on a disengaged value

frame #2: llvm::DWARFTypePrinter<...>::appendUnqualifiedNameAfter(...)::'lambda'(...)::operator()(Attr=DW_AT_LLVM_ptrauth_address_discriminated) const at DWARFTypePrinter.h:375
   374        if (auto Form = D.find(Attr))
-> 375          return *Form->getAsUnsignedConstant();

(lldb) frame variable Form
(std::optional<DWARFFormValue>) Form =  Has Value=true  {
  Value = { m_form = DW_FORM_flag_present, m_value = (uval = 1, ...) }
}
```

    [26 lines not shown]
DeltaFile
+95-0lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp
+14-2lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp
+1-0lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h
+110-23 files

LLVM/project 4a9e550 — llvm/test/CodeGen/AArch64/GlobalISel knownbits-mul.mir

[AArch64][GlobalISel] Fix LLT types in test (#229866)

use extended LLTs instead of legacy LLTs.
DeltaFile
+26-26llvm/test/CodeGen/AArch64/GlobalISel/knownbits-mul.mir
+26-261 files

LLVM/project c3d5c8e — flang/lib/Parser openacc-parsers.cpp, flang/test/Semantics/OpenACC acc-label-do.f90

[flang][openacc] Keep the source of END DO turned into CONTINUE for ACC loops (#229850)

When an OpenACC LOOP or combined construct is associated with a labeled
DO
loop terminated by a labeled END DO statement, AccNonBlockDoConstruct
replaces
that END DO with a labeled CONTINUE statement, since the DO construct it
builds
has its own synthesized END DO. The new CONTINUE statement had no
source.

Label analysis now treats such a DO construct as the original labeled DO
statement and checks its terminating label, so the empty source compared
as
preceding the DO statement and valid code was rejected:

  !$acc parallel loop
  do 100 n = 1, np
     c(n) = 0

    [6 lines not shown]
DeltaFile
+33-0flang/test/Semantics/OpenACC/acc-label-do.f90
+10-4flang/lib/Parser/openacc-parsers.cpp
+43-42 files

LLVM/project a3b249c — clang/lib/CIR/CodeGen CIRGenBuiltinAArch64.cpp, clang/test/CodeGen/AArch64/sve pfalse.c

[clang][CIR] Lower SVE svpfalse_b and add tests (#228789)

Add CIR lowering and tests for plain SVE `svpfalse_b`
(https://developer.arm.com/architectures/instruction-sets/intrinsics/#q=svpfalse).

Port: `clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_pfalse.c` to
`clang/test/CodeGen/AArch64/sve/pfalse.c`

Part of https://github.com/llvm/llvm-project/issues/223963.
DeltaFile
+45-0clang/test/CodeGen/AArch64/sve/pfalse.c
+0-36clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_pfalse.c
+8-0clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
+53-363 files

LLVM/project ee29c89 — clang/lib/CIR/CodeGen CIRGenStmt.cpp CIRGenDecl.cpp

[CIR][NFC] Generalize loop condition cleanup capturing (#229773)

The mechanism for deferring cleanups for loop conditions is also useful
for coroutines. For those we need to emit cleanups for the coroutine
parameters and the promise in a separate destroy region.

Rename identifiers such as LoopConditionCleanups to CapturedCleanups (to
disambiguate between this and deferred conditional cleanups, which are
something else) so future coroutine related patches can reuse this
mechanism.

This only updates identifier names and comments and brings no functional
change.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+30-25clang/lib/CIR/CodeGen/CIRGenFunction.h
+16-15clang/lib/CIR/CodeGen/CIRGenCleanup.cpp
+6-10clang/lib/CIR/CodeGen/EHScopeStack.h
+4-4clang/lib/CIR/CodeGen/CIRGenStmt.cpp
+4-4clang/lib/CIR/CodeGen/CIRGenDecl.cpp
+60-585 files

LLVM/project 79378c3 — llvm/lib/Target/AArch64 AArch64ISelLowering.cpp AArch64TargetMachine.cpp, llvm/test/CodeGen/AArch64 vector-extract-last-active.ll

Merge branch 'main' into users/boomanaiden154/instcombine-use-utc-for-ffs-1ll
DeltaFile
+953-80llvm/test/CodeGen/AMDGPU/write_register.ll
+357-0llvm/lib/Target/AArch64/AArch64Options.td
+56-229llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+200-0llvm/test/Transforms/LoopVectorize/VPlan/struct-return-build-vector.ll
+62-126llvm/test/CodeGen/AArch64/vector-extract-last-active.ll
+39-131llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+1,667-566106 files not shown
+2,917-1,689112 files

FreeNAS/freenas 370c03a — src/middlewared/middlewared/api/v28_0_0 iscsi_global.py

Allow iSCSI mode=2
DeltaFile
+1-1src/middlewared/middlewared/api/v28_0_0/iscsi_global.py
+1-11 files

FreeNAS/freenas c87efe9 — src/middlewared/middlewared/plugins/iscsi_ lio.py

Update how we tell LIO that an extent has resized.
DeltaFile
+2-2src/middlewared/middlewared/plugins/iscsi_/lio.py
+2-21 files

FreeNAS/freenas 8f2c9fd — src/middlewared/middlewared/plugins/iscsi_ alua.py extents.py, src/middlewared/middlewared/utils/lio config.py

Add middleware support for LIO ALUA HA

Wire up the middleware side of LIO ALUA high-availability: load
lio_ha.ko with per-node addresses on service start, manage ALUA
state across failover events, clean up STANDBY configfs on pool
export, and add pre-flight validation that targets have static
initiator ACLs before ALUA can be enabled.

For each target, create a portal-less phantom TPG carrying the peer
node's controller group so that a single RTPG response from any
connected port lists both ALUA groups.  Write tpgt_N/rtpi explicitly
before enable so that relative target port IDs in RTPG match the
tag formula (portal.tag on Node A, portal.tag + 32000 on Node B)
rather than being auto-assigned sequentially by the kernel.

ALUA group states are driven by role and ha_state:

  MASTER  + synced        local=OPTIMIZED     remote=NONOPTIMIZED
  MASTER  + connected     local=OPTIMIZED     remote=TRANSITIONING

    [4 lines not shown]
DeltaFile
+541-135src/middlewared/middlewared/utils/lio/config.py
+214-2src/middlewared/middlewared/plugins/iscsi_/lio.py
+87-71src/middlewared/middlewared/plugins/iscsi_/fs_attachment_delegate.py
+89-58src/middlewared/middlewared/plugins/iscsi_/target_to_extent.py
+59-47src/middlewared/middlewared/plugins/iscsi_/extents.py
+62-9src/middlewared/middlewared/plugins/iscsi_/alua.py
+1,052-3228 files not shown
+1,236-37114 files

LLVM/project 041e968 — llvm/lib/Target/RISCV RISCVInstrInfoVVLPatterns.td RISCVInstrInfoZvzip.td, llvm/test/CodeGen/RISCV/rvv vunzipo.ll vunzipe.ll

[RISCV] Add mask version of vunzipe/o.v
DeltaFile
+491-5llvm/test/CodeGen/RISCV/rvv/vunzipo.ll
+491-5llvm/test/CodeGen/RISCV/rvv/vunzipe.ll
+24-13llvm/lib/Target/RISCV/RISCVInstrInfoZvzip.td
+0-22llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
+6-6llvm/test/MC/RISCV/rvv/zvzip.s
+6-6llvm/test/MC/RISCV/rvv/zvzip-invalid.s
+1,018-573 files not shown
+1,030-689 files

LLVM/project f23456b — llvm/lib/Target/RISCV RISCVISelLowering.cpp

fixup! Address review comments
DeltaFile
+2-3llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+2-31 files

LLVM/project 99130f4 — clang/test/CodeGen/AArch64 lit.local.cfg, clang/test/CodeGen/AArch64/sve andv.c

[clang][CIR] Add tests for SVE ANDV intrinsics (#227657)

This adds CIR tests for `svandv` (plain SVE) intrinsics.

Moves and adapts `sve-intrinsics/acle_sve_andv.c` to `sve/andv.c`.

Part of #223963
DeltaFile
+159-0clang/test/CodeGen/AArch64/sve/andv.c
+0-155clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_andv.c
+1-0clang/test/CodeGen/AArch64/lit.local.cfg
+160-1553 files

LLVM/project 1c50f68 — lld/MachO Driver.cpp SyntheticSections.cpp, lld/MachO/Arch ARM64.cpp

[lld][MachO] Support Objective-C class stubs

Support Objective-C class selector stubs in lld's Mach-O backend.

This consumes the class-stub symbols emitted by Clang in [ObjC] Emit class
msgSend stub calls (#186433), using the form
`_objc_msgSendClass$<selector>$_OBJC_CLASS_$_<class>`.

Class stubs load the class object into `x0`, load the selector into `x1`, and
branch to `_objc_msgSend`. Local class symbols are materialized directly with
`adrp`/`add`; dylib or dynamic class symbols are loaded indirectly.

The implementation also tracks the resolved class symbol before dead stripping
so live class stubs can retain the needed class definition without keeping dead
dylib references alive.
DeltaFile
+369-0lld/test/MachO/arm64-objc-class-stubs.s
+110-15lld/MachO/SyntheticSections.cpp
+85-0lld/MachO/Arch/ARM64.cpp
+82-0lld/test/MachO/arm64-objc-class-stubs-dead.s
+46-0lld/test/MachO/objc-class-stubs-unsupported.s
+35-6lld/MachO/Driver.cpp
+727-214 files not shown
+763-2210 files

LLVM/project 0b2b7f0 — lld/MachO Driver.cpp, lld/test/MachO arm64-objc-stubs-autolink.s

[lld][MachO] Fix ObjC stubs from autolinked archives

Move ObjC stub preparation after LC_LINKER_OPTION processing so archive
members loaded through autolink can contribute `_objc_msgSend$` selector stubs
before selector references are finalized.

Otherwise, stubs discovered from autolinked archives may not get matching
`__objc_methname` and `__objc_selrefs` entries needed during stub emission.
DeltaFile
+35-0lld/test/MachO/arm64-objc-stubs-autolink.s
+2-1lld/MachO/Driver.cpp
+37-12 files

LLVM/project 06bb4ed — lld/MachO SyntheticSections.h SyntheticSections.cpp

[lld][MachO][NFC] Prepare ObjC stubs for variable sizes

This is an NFC change to prepare for the next PRs:
- Track the total `__objc_stubs` size explicitly as entries are added, so
  stub offsets no longer assume every stub has the same size.
- Rename `symbolPrefix` to `objcMsgSendStubPrefix` for clarity.
DeltaFile
+10-10lld/MachO/SyntheticSections.cpp
+3-1lld/MachO/SyntheticSections.h
+13-112 files

LLVM/project 4923368 — llvm/lib/CodeGen RegAllocFast.cpp, llvm/lib/Target/PowerPC PPCTargetMachine.cpp

[RegAllocFast] Allocate tied uses first and enable for PowerPC (#229672)

In p9-vinsert-vextract.ll:shuffle_vector_halfword_1_3, an untied read of
a value precedes its tied use (XXPERM's XA comes before XTi):

```
%5:vsrc = XXPERM %0:vrrc, %0:vrrc(tied-def 0), killed %4:vsrc
```

Allocating uses in operand order gives the untied %0 a register other
than %5's, so the tied %0 needs copies:

```
vmr 3, 2
addis 3, 2, .LCPI17_0 at toc@ha
addi 3, 3, .LCPI17_0 at toc@l
lxv 0, 0(3)
vmr 2, 3
xxperm 34, 35, 0

    [6 lines not shown]
DeltaFile
+20-0llvm/test/CodeGen/X86/regallocfast-tied.mir
+13-1llvm/lib/CodeGen/RegAllocFast.cpp
+0-3llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+1-1llvm/test/CodeGen/PowerPC/quadint-return.ll
+0-1llvm/test/CodeGen/PowerPC/O0-pipeline.ll
+34-65 files

LLVM/project 58d6f1c — clang/include/clang/Basic AttrDocs.td, llvm/docs LangRef.md

[docs] Drop stale "experimental" note for preserve_most (#214205)

The LangRef and Clang attribute docs say preserve_most "will be used by
a future version of the Objective-C runtime and should therefore still
be considered experimental at this time." That note dates to the
convention's introduction in 2014.

It's now used in the swift runtime (swiftlang/swift#85044), [linux
kernel](https://github.com/torvalds/linux/blob/c21bb4193868a8de71fc4693fa741e195fdf5d86/include/linux/compiler_types.h#L139-L143),
V8 (V8_PRESERVE_MOST), tcmalloc, and protobuf's upb.

Following the precedent of #158637 (which dropped "experimental" from
the partial reduction intrinsics): this convention has been used in
production for a while and is unlikely to change.

preserve_all is left untouched; its adoption story is much thinner, so
its experimental note is arguably still doing honest work.

Addresses part of #178277.
DeltaFile
+5-7clang/include/clang/Basic/AttrDocs.td
+4-7llvm/docs/LangRef.md
+9-142 files

LLVM/project 0077da7 — llvm/utils profcheck-xfail.txt

[ProfCheck] Remove already fixed tests (#229819)

I believe this test was fixed by a combination of fixes that landed
concurrently and thus no single patch detected fixing it.

Updating this mostly to avoid someone trying to take a look at it given
this the de-facto TODO list at this point.
DeltaFile
+0-1llvm/utils/profcheck-xfail.txt
+0-11 files

LLVM/project 44c54fc — clang/lib/CodeGen CodeGenFunction.h CGDecl.cpp, clang/test/CodeGenCXX const-init-cxx11.cpp

[clang] Don't use isConstantInitializer in CodeGen. (#224781)

isConstantInitializer() is a complicated bit of code that tries, badly,
to predict what constant evaluation will do. Just query constant
evaluation directly. (Historically there was a split between AST-level
constant evaluation and CodeGen-level constant evaluation, but that's
mostly gone now.)

Fixes #228162
DeltaFile
+32-31clang/lib/CodeGen/CGDecl.cpp
+12-0clang/test/CodeGenCXX/const-init-cxx11.cpp
+4-4clang/lib/CodeGen/CodeGenFunction.h
+48-353 files

LLVM/project d657d8d — cmake/Modules LLVMVersion.cmake, libcxx/include __config

Bump version to 23.1.4
DeltaFile
+1-1llvm/utils/mlgo-utils/mlgo/__init__.py
+1-1llvm/utils/lit/lit/__init__.py
+1-1llvm/utils/gn/secondary/llvm/version.gni
+1-1libcxx/include/__config
+1-1cmake/Modules/LLVMVersion.cmake
+5-55 files

LLVM/project dfb3ede — lldb/source/Core CMakeLists.txt ModuleList.cpp, lldb/source/Plugins/TypeSystem/Clang CMakeLists.txt TypeSystemClang.cpp

[lldb] Set the default clang module cache path in TypeSystemClang
DeltaFile
+11-4lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
+0-6lldb/source/Core/ModuleList.cpp
+0-3lldb/source/Core/CMakeLists.txt
+1-0lldb/source/Plugins/TypeSystem/Clang/CMakeLists.txt
+12-134 files

LLVM/project 525d0d6 — lldb/include/lldb/Core PluginManager.h, lldb/source/Commands CMakeLists.txt CommandObjectTarget.cpp

[lldb] Register 'target modules dump pcm-info' from TypeSystemClang (#229816)

`ModuleListProperties` calls
`clang::driver::Driver::getDefaultModuleCachePath`, so `lldbCore` links
`clangDriver`, which drags in `clangAST` and most of LLVM via static
initializers.

Set the default from `TypeSystemClang::Initialize` instead. Every tool
that uses the clang module cache registers `TypeSystemClang`.

Combined with https://github.com/llvm/llvm-project/pull/229817, this
halves the size of the lldb-server.exe binary on Windows.
DeltaFile
+76-1lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
+0-63lldb/source/Commands/CommandObjectTarget.cpp
+8-5lldb/source/Core/PluginManager.cpp
+6-4lldb/include/lldb/Core/PluginManager.h
+0-3lldb/source/Commands/CMakeLists.txt
+2-0lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
+92-761 files not shown
+94-767 files

LLVM/project 424fdee — lldb/include/lldb/Target UnwindLLDB.h, lldb/source/Target UnwindLLDB.cpp RegisterContextUnwind.cpp

[lldb] Remove ConstString from UnwindLLDB (#229614)
DeltaFile
+7-5lldb/source/Target/RegisterContextUnwind.cpp
+4-5lldb/include/lldb/Target/UnwindLLDB.h
+2-1lldb/source/Target/UnwindLLDB.cpp
+13-113 files

LLVM/project 623bf6c — llvm/test/Transforms/LoopVectorize/VPlan struct-return-build-vector.ll, llvm/test/Transforms/LoopVectorize/VPlan/AArch64 scalarize-after-call-widening.ll

[LV] Add VPlan printing tests for struct calls and call operands (NFC) (#229825)

Add tests for scalarized struct-returning calls and for operands of
widened calls that only use their first lane.
DeltaFile
+200-0llvm/test/Transforms/LoopVectorize/VPlan/struct-return-build-vector.ll
+93-0llvm/test/Transforms/LoopVectorize/VPlan/AArch64/scalarize-after-call-widening.ll
+293-02 files

LLVM/project 8b49b61 — llvm/lib/Transforms/Scalar LICM.cpp, llvm/test/Transforms/LICM scalar-promote-aa-tags.ll

[LICM] Recompute insertion point for promotion when necessary (#229581)

Each time we call collectPromotionCandidates, it considers the loop from
scratch, without considering any operations which have been previously
promoted.  This is generally fine, but that also means we need recompute
all the relevant state.

Without this patch, we would use a stale insertion point: a point after
any promoted stores.  This meant promotion would sink the newly inserted
store past previously promoted stores, without checking aliasing.

The way the code is currently structured, I think this issue can only
show up with aliasing metadata.

Fixes: https://github.com/llvm/llvm-project/issues/226391.
Fixes: https://github.com/llvm/llvm-project/issues/227174.
DeltaFile
+56-0llvm/test/Transforms/LICM/scalar-promote-aa-tags.ll
+11-5llvm/lib/Transforms/Scalar/LICM.cpp
+67-52 files

LLVM/project ad2519c — llvm/lib/MC MCDXContainerWriter.cpp, llvm/lib/Target/DirectX DirectX.h DXContainerPDB.cpp

[DirectX] Move the DXContainer debug options from MC to DirectX (#228329)

The DXIL embedder pass assigns MC's -dx-embed-debug and -dx-strip-debug
to tell the object writer whether to embed ILDB, and the assignment
persists to later modules.

Define the options in DirectX instead, and add an
MCDXContainerTargetWriter hook so the target writer makes that decision
from the options as given. Options shared across files move to
llvm::dxil.

Aided by Opus 5.5
DeltaFile
+23-0llvm/lib/Target/DirectX/MCTargetDesc/DirectXContainerObjectWriter.cpp
+2-17llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
+3-16llvm/lib/MC/MCDXContainerWriter.cpp
+5-4llvm/lib/Target/DirectX/DXContainerPDB.cpp
+5-4llvm/lib/Target/DirectX/DXContainerGlobals.cpp
+6-0llvm/lib/Target/DirectX/DirectX.h
+44-414 files not shown
+58-4110 files

FreeBSD/ports 8f7dd5a — misc/ollama Makefile

misc/ollama: correct typo
DeltaFile
+1-1misc/ollama/Makefile
+1-11 files

LLVM/project ca7570a — llvm/include/llvm/Analysis PHITransAddr.h, llvm/lib/Analysis PHITransAddr.cpp MemoryDependenceAnalysis.cpp

[GVN] Preserve !prof metadata when materializing select for load PRE (#229298)

Pass the originating SelectInst through to GVN so we can propagate its
profile when creating the replacement value select.
DeltaFile
+22-21llvm/lib/Transforms/Scalar/GVN.cpp
+19-11llvm/test/Transforms/GVN/PRE/pre-load-through-select.ll
+9-8llvm/include/llvm/Analysis/PHITransAddr.h
+5-4llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
+0-7llvm/utils/profcheck-xfail.txt
+2-2llvm/lib/Analysis/PHITransAddr.cpp
+57-531 files not shown
+58-547 files

FreeBSD/src ef947bb — sys/compat/linuxkpi/common/src linux_firmware.c

LinuxKPI: firmware: remove `enoentok` logic in `*firmware_request(..)`

Prior to this change, in the event that a firmware module could not be
loaded, the linux_firmware driver would return a partially initialized
structure with uninitialized/zeroed out values for certain fields. Linux
does not do this, however, so some drivers that use
`request_firmware_nowait` expecting Linux behavior, like `if_bcrmfmac`,
would crash trying to dereference a NULL pointer.

This doesn't address the load/unload situation completely as the driver
remains loaded after the "firmware crashes", but it makes a completely
unusable situation (a kernel panic) into a slightly more usable situation
(driver does not unload).

As a sidenote: the raw free(9) call was replaced with a call to
`linuxkpi_release_firmware` because the latter call [better] ensures
that all resources allocated earlier on in the function are cleaned up.

MFC after:      1 weeks

    [2 lines not shown]
DeltaFile
+7-12sys/compat/linuxkpi/common/src/linux_firmware.c
+7-121 files