OpenZFS/src 928ecccinclude/sys ddt.h, module/zfs zio.c ddt.c

DDT: Reduce global DDT lock scope during writes

Before this change DDT lock was taken 4 times per written block,
and as effectively a pool-wide lock it can be highly congested.
This change introduces a new per-entry dde_io_lock, protecting some
fields during I/O ready and done stages, so that we don't need the
global lock there.

According to my write tests on 64-thread system with 4KB blocks this
significantly reduce the global lock contention, reducing CPU usage
from 100% to expected ~80%, and increasing write throughput by 10%.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Rob Norris <robn at despairlabs.com>
Signed-off-by: Alexander Motin <alexander.motin at TrueNAS.com>
Closes #17960
DeltaFile
+82-37module/zfs/zio.c
+3-0include/sys/ddt.h
+2-0module/zfs/ddt.c
+87-373 files

LLVM/project b73385dcompiler-rt/cmake config-ix.cmake

[TySan] Attempt to unbreak build after #169036

If tysan was not in COMPILER_RT_SANITIZERS_TO_BUILD, we used to
get an error after #169036, see comments there for details.
DeltaFile
+1-0compiler-rt/cmake/config-ix.cmake
+1-01 files

LLVM/project f65c199clang-tools-extra/clangd/test index-tools.test include-cleaner-batch-fix.test

Reapply "[clangd] Make lit tests work with the internal shell" (#169972)

This reverts commit bd04ef6df50e8e6e5212762fc798ea9fbdcfc897.
    
This reapply fixes the broken case where we would fail at CMake
configuration time if LLVM_INCLUDE_BENCHMARKS was explicitly turned off.
DeltaFile
+5-4clang-tools-extra/clangd/test/index-tools.test
+3-1clang-tools-extra/clangd/test/include-cleaner-batch-fix.test
+4-0clang-tools-extra/clangd/test/CMakeLists.txt
+4-0clang-tools-extra/clangd/test/lit.cfg.py
+2-1clang-tools-extra/clangd/test/system-include-extractor.test
+1-0clang-tools-extra/clangd/test/lit.site.cfg.py.in
+19-66 files

OpenZFS/src a5b665dinclude/sys ddt.h, module/zfs ddt.c

DDT: Switch to using wmsums for lookup stats

ddt_lookup() is a very busy code under a highly congested global
lock.  Anything we can save here is very important.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Rob Norris <robn at despairlabs.com>
Signed-off-by: Alexander Motin <alexander.motin at TrueNAS.com>
Closes #17980
DeltaFile
+84-8module/zfs/ddt.c
+15-0include/sys/ddt.h
+99-82 files

LLVM/project 4a48740clang/lib/CodeGen CGExpr.cpp, clang/test/CodeGenHLSL BoolVector.hlsl

[HLSL] Update indexed vector elements individually (#169144)

When an individual element of a vector is updated via indexing into the vector, it needs to be handled as a store operation on that one vector element.

Clang treats vectors as one unit, so a vector element needs to be updated, the whole vector is loaded, the element is modified, and then the whole vector is stored. In HLSL vector elements are handled individually. We need to avoid this load/modify/store sequence to prevent overwriting other vector elements that might be getting updated in parallel.

Fixes #167729

Contributes to #160208.
DeltaFile
+41-0clang/test/CodeGenHLSL/builtins/VectorElementStore.hlsl
+26-0clang/lib/CodeGen/CGExpr.cpp
+6-9clang/test/CodeGenHLSL/BoolVector.hlsl
+4-2clang/test/CodeGenHLSL/builtins/lit.hlsl
+77-114 files

LLVM/project 56d061clibcxx/include optional

[libc++][NFC] Add optional<T&> synopsis (#170043)

DeltaFile
+65-0libcxx/include/optional
+65-01 files

FreeBSD/doc cfee027website/content/en/releases/15.0R relnotes.adoc

15.0/relnote: Increment TOC level

This wasn't really clear at `1`, because we have a lot of subsections.
This also matches the hardware release note.
DeltaFile
+1-1website/content/en/releases/15.0R/relnotes.adoc
+1-11 files

LLVM/project c103d61lldb/source/Core Statusline.cpp, lldb/test/API/functionalities/statusline TestStatusline.py

[lldb] Fix a bug when disabling the statusline. (#169127)

Currently, disabling the statusline with `settings set show-statusline
false` leaves LLDB in a broken state. The same is true when trying to
toggle the setting again.

The issue was that setting the scroll window to 0 is apparently not
identical to setting it to the correct number of rows, even though some
documentation online incorrectly claims so.

Fixes #166608
DeltaFile
+5-4lldb/source/Core/Statusline.cpp
+4-2lldb/test/API/functionalities/statusline/TestStatusline.py
+9-62 files

OpenZFS/src 48f33c1module/zfs zio.c

DDT: Make children writes inherit allocator

Even though unlike gang children it is not so critical for dedup
children to inherit parent's allocator, there is still no reason
for them to have allocation policy different from normal writes.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Rob Norris <robn at despairlabs.com>
Signed-off-by: Alexander Motin <alexander.motin at TrueNAS.com>
Closes #17961
DeltaFile
+4-3module/zfs/zio.c
+4-31 files

FreeBSD/ports 534d1cfeditors/jucipp distinfo Makefile, editors/jucipp/files patch-src_source.cpp patch-src_usages__clang.cpp

editors/jucipp: Update 1.8.0 => 1.8.1

Changelog:
https://gitlab.com/cppit/jucipp/-/releases/v1.8.1

PR:     291326
DeltaFile
+0-106editors/jucipp/files/patch-src_source.cpp
+0-32editors/jucipp/files/patch-src_usages__clang.cpp
+7-7editors/jucipp/distinfo
+0-11editors/jucipp/files/patch-src_window.cpp
+3-4editors/jucipp/Makefile
+10-1605 files

LLVM/project c9d9dddlldb/source/Plugins/SymbolFile/NativePDB SymbolFileNativePDB.cpp, lldb/test/Shell/SymbolFile/NativePDB find-pdb-next-to-exe.test

[LLDB][NativePDB] Look for PDBs in `target.debug-file-search-paths` (#169719)

Similar to DWARF's DWO, we should look for PDBs in
`target.debug-file-search-paths` if the PDB isn't at the original
location or next to the executable.

With this PR, the search order is as follows:

1. PDB path specified in the PE/COFF file
2. Next to the executable
3. In `target.debug-file-search-paths`

This roughly matches [the order Visual Studio
uses](https://learn.microsoft.com/en-us/visualstudio/debugger/specify-symbol-dot-pdb-and-source-files-in-the-visual-studio-debugger?view=vs-2022#where-the-debugger-looks-for-symbols),
except that we don't have a project folder and don't support symbol
servers.

Closes #125355 (though I think this is already fixed in the native
plugin).
DeltaFile
+76-0lldb/test/Shell/SymbolFile/NativePDB/find-pdb-next-to-exe.test
+43-9lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
+119-92 files

OpenZFS/src 9a453b2.github/workflows zfs-qemu-packages.yml, .github/workflows/scripts qemu-test-repo-vm.sh

CI: zfs-test-packages: Add in new repos

Test install from our new repos: zfs-latest, zfs-legacy,
zfs-2.3, zfs-2.2, from the zfs-test-packages workflow.
This on-demand workflow is use to verify that the zfs RPMs
in the repos are correct.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Tony Hutter <hutter2 at llnl.gov>
Closes #17956
DeltaFile
+12-6.github/workflows/scripts/qemu-test-repo-vm.sh
+1-1.github/workflows/zfs-qemu-packages.yml
+13-72 files

FreeBSD/doc f7d7733website/content/en/releases/15.0R relnotes.adoc

15.0/relnote: Add a Table of Contentes

I put this just above the Introduction section,
matching what we do on the Hardware Release Note.
DeltaFile
+2-0website/content/en/releases/15.0R/relnotes.adoc
+2-01 files

LLVM/project 21e64d1flang/include/flang/Optimizer/Transforms Passes.td, flang/include/flang/Optimizer/Transforms/CUDA CUFAllocationConversion.h

[flang][cuda][NFC] Split allocation related operation conversion from other cuf operations (#169740)

Split AllocOp, FreeOp, AllocateOp and DeallocateOp from other
conversion. Patterns are currently added to the base CUFOpConversion
when the option is enabled.
This split is a pre-requisite to be more flexible where we do the
allocation related operations conversion in the pipeline.
DeltaFile
+468-0flang/lib/Optimizer/Transforms/CUDA/CUFAllocationConversion.cpp
+14-375flang/lib/Optimizer/Transforms/CUFOpConversion.cpp
+33-0flang/include/flang/Optimizer/Transforms/CUDA/CUFAllocationConversion.h
+8-0flang/include/flang/Optimizer/Transforms/Passes.td
+1-0flang/lib/Optimizer/Transforms/CMakeLists.txt
+524-3755 files

OpenZFS/src bfd137dconfig kernel-kmap-atomic-args.m4

config/kmap_atomic: initialise test data

6.18 changes kmap_atomic() to take a const pointer. This is no problem
for the places we use it, but Clang fails the test due to a warning
about being unable to guarantee that uninitialised data will definitely
not change. Easily solved by forcibly initialising it.

Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <robn at despairlabs.com>
Closes #17954
DeltaFile
+1-1config/kernel-kmap-atomic-args.m4
+1-11 files

OpenZFS/src b7e00c7udev zvol_id.c

zvol_id: make array length properly known at compile time

Using strlen() in an static array declaration is a GCC extension. Clang
calls it "gnu-folding-constant" and warns about it, which breaks the
build. If it were widespread we could just turn off the warning, but
since there's only one case, lets just change the array to an explicit
size.

Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <robn at despairlabs.com>
Closes #17954
DeltaFile
+1-1udev/zvol_id.c
+1-11 files

OpenZFS/src c631f5emodule Kbuild.in

Linux: bump -std to gnu11

Linux switched from -std=gnu89 to -std=gnu11 in 5.18
(torvalds/linux at e8c07082a810f). We've always overridden that with gnu99
because we use some newer features.

More recent kernels are using C11 features in headers that we include.
GCC generally doesn't seem to care, but more recent versions of Clang
seem to be enforcing our gnu99 override more strictly, which breaks the
build in some configurations.

Just bumping our "override" to match the kernel seems to be the easiest
workaround. It's an effective no-op since 5.18, while still allowing us
to build on older kernels.

Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <robn at despairlabs.com>
Closes #17954
DeltaFile
+1-1module/Kbuild.in
+1-11 files

FreeBSD/doc 2ab18e2website/content/en/releases/15.0R relnotes.adoc

releases/15.0R/relnotes: Add notes for commits mentioning relnotes, batch 4

Add more content coming from RELNOTES.

Content in this commit corresponds to stopping at fe86d923f83f included.

Sponsored by:   The FreeBSD Foundation
DeltaFile
+21-0website/content/en/releases/15.0R/relnotes.adoc
+21-01 files

LLVM/project d1899acllvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 combine-fround.ll combine-ffloor.ll

[X86] combineConcatVectorOps - add handling to concat ISD::FROUND/FFLOOR intrinsics together (#170176)

These were missed in #170160
DeltaFile
+94-100llvm/test/CodeGen/X86/combine-fround.ll
+52-37llvm/test/CodeGen/X86/combine-ffloor.ll
+2-0llvm/lib/Target/X86/X86ISelLowering.cpp
+148-1373 files

FreeNAS/freenas ebea5a6src/middlewared/middlewared/plugins/pool_ replace_disk.py

Only account for `ONLINE` vdevs when replacing disk
DeltaFile
+7-0src/middlewared/middlewared/plugins/pool_/replace_disk.py
+7-01 files

OpenZFS/src 39303femodule/zfs zfs_chksum.c

chksum: run 256K benchmark on demand, preserve chksum_stat_data

Reviewed-by: Tino Reichardt <milky-zfs at mcmilk.de>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Alexx Saver <lzsaver.eth at ethermail.io>
Co-authored-by: Adam Moss <c at yotes.com>
Closes #17945
Closes #17946
DeltaFile
+13-11module/zfs/zfs_chksum.c
+13-111 files

LLVM/project 6d5beb9llvm/lib/Target/AMDGPU AMDGPURegBankLegalizeHelper.cpp AMDGPURegBankLegalizeRules.cpp

AMDGPU/GlobalISel: Report RegBankLegalize errors using reportGISelFailure

Use standard GlobalISel error reporting with reportGISelFailure
and pass returning false instead of llvm_unreachable.
Also enables -global-isel-abort=0 or 2 for -global-isel -new-reg-bank-select.
Note: new-reg-bank-select with abort 0 or 2 runs LCSSA,
while "intended use" without abort or with abort 1 does not run LCSSA.
DeltaFile
+47-23llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
+11-16llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+6-3llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.h
+4-2llvm/lib/Target/AMDGPU/AMDGPURegBankLegalize.cpp
+2-2llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h
+70-465 files

LLVM/project 7ab14fcllvm/lib/Target/AMDGPU GCNHazardRecognizer.cpp, llvm/test/CodeGen/AMDGPU misched-into-wmma-hazard-shadow.mir

[AMDGPU] Allow hazard checks for WMMA co-exec

Now we are just inserting V_NOP instrtuctions, try to schedule
something into the shadow.

It is still somewhat imprecise, for example AdvanceCycle() will
use TII.getNumWaitStates() anyway, but in a scheduling mode
we are not required to be precise. We must be finally precise
in the hazard recognizer mode. Then EmittedInstrs buffer is also
limited to MaxLookAhead even though VALU only hazards may actually
never expire and require an endless buffer. But that's OK, we can
at least mitigate what the buffer can hold. The buffer is also
currently much bigger than any of VALU hazards may need.

That said the rest of the 'fix*' functions here can be changed
the same way, these which are using V_NOPs. This one is just the
worst because it may require up to 9 nops.
DeltaFile
+56-0llvm/test/CodeGen/AMDGPU/misched-into-wmma-hazard-shadow.mir
+6-0llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
+62-02 files

LLVM/project 88388ballvm/lib/Target/AMDGPU GCNHazardRecognizer.cpp GCNHazardRecognizer.h

[AMDGPU] Refactor hazard recognizer for VALU-pipeline hazards. NFCI.

This is in preparation of handling these in scheduler. I do not expect
any changes to the produce code here, it is just an infrastructure.
Our current problem with the VALU pipeline hazards is that we only
insert V_NOP instructions in the hazard recognizer mode, but ignore
it during scheduling. This patch is meant to create a mechanism to
actually account for that during scheduling.
DeltaFile
+47-38llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
+8-1llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h
+55-392 files

FreeBSD/doc b78abf1website/content/en/releases/15.0R relnotes.adoc

releases/15.0R/relnotes: Add notes for commits mentioning relnotes, batch 4

Add more content coming from RELNOTES.

Content in this commit corresponds to stopping at eeb04a736cb9 included.

Remove duplicated "virtual channels" info.

Sponsored by:   The FreeBSD Foundation
DeltaFile
+38-10website/content/en/releases/15.0R/relnotes.adoc
+38-101 files

LLVM/project 9c641ballvm/include/llvm/CodeGen/GlobalISel Utils.h RegBankSelect.h, llvm/lib/CodeGen/GlobalISel Utils.cpp IRTranslator.cpp

GlobalISel: Stop using TPC to check if GlobalISelAbort is enabled

New pass manager does not use TargetPassConfig.
GlobalISel requires TargetPassConfig to reportGISelFailure,
and it only actual use is to check if GlobalISelAbort is enabled.
TargetPassConfig uses TargetMachine to check if GlobalISelAbort is
enabled, but TargetMachine is also available from MachineFunction.
DeltaFile
+16-12llvm/lib/CodeGen/GlobalISel/Utils.cpp
+10-10llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+6-9llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp
+5-4llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp
+3-3llvm/include/llvm/CodeGen/GlobalISel/Utils.h
+2-2llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h
+42-404 files not shown
+45-4810 files

FreeBSD/doc f976e64website/content/en/releases/15.0R relnotes.adoc

15.0/relnote: Tidy application changes and contributed software

+ remove expat, this is a private lib and doesn't have a manual
+ move the thing that is changing to the beginingish of the sentences
+ s/foo/the foo frobber/ to match usual freebsd style
+ fix some markup and punctuation typos

These need to happen before the entries can be alphabetized.

Discussed with:         jhb, olce (loosely)
DeltaFile
+40-43website/content/en/releases/15.0R/relnotes.adoc
+40-431 files

OpenBSD/ports aVCQkkLx11/xdotool Makefile distinfo, x11/xdotool/patches patch-Makefile

   update to xdotool-4.20251130.1
VersionDeltaFile
1.9+4-8x11/xdotool/patches/patch-Makefile
1.24+2-2x11/xdotool/Makefile
1.12+2-2x11/xdotool/distinfo
+8-123 files

NetBSD/src fdpHAvmsys/arch/mac68k/include pmap.h vmparam.h

   Header file glue for __HAVE_NEW_PMAP_68K.
VersionDeltaFile
1.41+38-2sys/arch/mac68k/include/pmap.h
1.48+11-4sys/arch/mac68k/include/vmparam.h
1.12+3-1sys/arch/mac68k/include/pte.h
+52-73 files

NetBSD/src Koh1QAFsys/arch/i386/include elf_machdep.h

   i386/elf_machdep.h: Organise symbols into psABI and local groups.

   Permit this file to be used alongside <sys/elfdefinitions.h>.

   PR lib/59564
VersionDeltaFile
1.16+27-19sys/arch/i386/include/elf_machdep.h
+27-191 files