[Hexagon] Emit PS_aligna in the prologue with the final stack alignment (#204660)
Hexagon uses PS_aligna to set up the aligned stack base register when a
function has variable-sized stack objects. That pseudo is created during
instruction selection using the maximum stack alignment known at that
point.
Register allocation can later introduce HVX spill slots with stricter
alignment, for example 128-byte alignment in HVX 128-byte mode. If
PS_aligna keeps the older immediate, the aligned base register can be
under-aligned, and aligned HVX spill stores may address stack slots with
insufficient alignment.
In order to address this bug, insert PS_aligna during prologue emission
once its final value is known instead of manually updating it throughout
the backend multiple times.
unifi: Move from unifi10
Earlier we had multiple versions in wip during a difficult 7->10
upgrade. Now we have 10.1 in pkgsrc and 10.6 in wip, and UBNT is
headed to Unifi OS. There's no reason to have a different name.
unifi10: Drop openjdk17 and explain non-working status
Upstream uses jdk25, class file version 69.0, and openjdk21 has 65.0.
Drop openjdk17 (which only supports class file version 61.0).
await async_request_package("openjdk25");
chflags: Add a new UF_NOCACHE flag
This internet draft (which is close to being an RFC)
specifies a new NFSv4.2 attribute which tells the NFSv4.2
client to not cache file data. (Similar to O_DIRECT, but
triggered by this attribute set on the file on the NFSv4.2
server and not by the application's open(2).)
https://datatracker.ietf.org/doc/draft-ietf-nfsv4-uncacheable-files/
This patch adds a new chflags(1) flag called UF_NOCACHE to
implement this.
Patches for NFS and ZFS will be done separately.
This is a redo of the patch, with a requested name change
and a #ifdef in strtofflags.c so that it doesn't break some
Linux cross build. The name change was requested by fuz@.
[3 lines not shown]
Pool split leaks DTL spacemap objects
zpool split does not release DTL space map objects for
removed vdevs. Use the same approach as in spa_vdev_detach().
Mark vdev detached, and dirty DTL.
vdev_count_leaves() is implemented to set reader lock
to reliably count vdevs with private function. However,
while we are already holding spa config locks, we can not
count vdevs.
zpool split does clone original pool MOS for new pool byte-by-byte,
including DTL data for vdevs. As new pool does not have vdevs
left into old pool, this would result leaking those DTL's.
ZTS updates:
remove vdev_zaps_007_pos from zts-report.py.in
zpool_split_devices: use zdb -MC to test split pools
[3 lines not shown]
build_llvm_release.bat: Disable openmp for stage0 and profile builds (#218744)
openmp is not used by either of these builds, so we only need to build
it in the final stage that we are shipping to users.
games/doomlegacy: update Doom Legacy to version 1.48.18 (rev1749)
- HAVE_LIBZIP and HAVE_ZLIB are now set by default for *nix
builds, adjust the port's Makefile accordingly
- Version 1.48.16 had been skipped due to a broken save game
(corrupted) and the MBF21 support did not work right
Reported by: portscout
[CodeGen] Cache `shouldOptimizeForSize()` when computing spill weights (#214905)
`VirtRegAuxInfo::weightCalcHelper()` calls
LiveIntervals::getSpillWeight() once per use/def operand of every
virtual register, and `getSpillWeight()` evaluates `(PSI &&
llvm::shouldOptimizeForSize(MF, PSI, MBFI))` repeatedly.
`shouldOptimizeForSize` is expensive: `O(#operands * #blocks)`.
We had a function with 20k blocks, and this inefficient repeated query
caused severe delay, the function took 30+ minutes to build.
Since the result is the same for every query in this MF, and
`VirtRegAuxInfo` already holds `MF`, `PSI` and `MBFI`, all fixed for the
lifetime of the object, so the value is provably invariant across every
`getSpillWeight()` call it makes. We should cache it.
[Target] Remove unneeded deps (#218840)
After 050470e75fb67bfb059a88db87ab5b2be96e7515, these dependencies are
no longer needed in each target as the need for them is now specific to
the Passes library given that's where a big chunk of the
CodeGenPassBuilder implementation lives now.
[ELF] Avoid repeated scans when merging strings
Build per-section shard lists before inserting merge pieces. This keeps
each shard's input order deterministic while avoiding a full scan of every
piece by every worker. Reuse SectionPiece::outputOff for the temporary list
links so the optimization needs no per-piece allocation.
Benchmark on Linux 6.16, Btrfs, 16 pinned CPUs, --threads=16. The input is
16 copies of an object containing 2,000,000 identical mergeable strings
(32,000,000 pieces total). Values are medians of 9 runs after one warmup;
CPU is user+system time and RSS is the maximum resident set size.
wall CPU RSS
before 0.43 s 1.70 s 2084 MiB
after 0.39 s 1.29 s 2081 MiB
change -9% -24% -0.2%
The --threads=1 path retains the previous loop. Outputs from --threads=1
and --threads=16 are byte-identical.
[6 lines not shown]
Merge tag 'thermal-7.3-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull more thermal control updates from Rafael Wysocki:
"This mostly consists of assorted updates of thermal drivers, including
new hardware support (Airoha AN7583, Qualcomm Master BandGap thermal
monitor, QCom PMIC5 Gen3 ADC), but it also includes two reverts of
recent cosmetic thermal core updates that went against driver core
plans to eliminate class_create():
- Fix missing bitfield include headers in Armada and QCom SPM BMG
drivers (Daniel Lezcano)
- Fix missed file when manually applying a change after a conflict
resolution for the QCom SPMI ADC TM5 Gen3 (Daniel Lezcano)
- Move thermal_zone_device_enable() to the right place in order to
prevent calling it if the thermal zone registration failed (Dan
Carpenter)
[78 lines not shown]
zstream: track and limit memory use
`zstream` reads stream record payloads into memory while processing a
stream. Most subcommands use several parallel queues, which currently
have queue lengths on the order of 1000 slots. Depending on the
pipeline, there may be several thousand records in memory at any given
moment.
This is fine for typical filesystem send streams because most records
aren't payload-bearing and default record sizes are modest. However,
it's possible for streams to be far denser, as illustrated by this zvol
send stream breakdown posted by @ryan-moeller in #18565:
```
SUMMARY:
Total DRR_BEGIN records = 1 (0 bytes)
Total DRR_END records = 1 (0 bytes)
Total DRR_OBJECT records = 2 (0 bytes)
Total DRR_FREEOBJECTS records = 1 (0 bytes)
[36 lines not shown]
Reject untrusted poudriered log paths
Poudriered allowed any client-authorized command to specify a log
path. The root daemon created its parent directories and opened the
path with O_TRUNC.
Reject log fields on client requests. Preserve configured schedule
logs, use a root-owned /var/log fallback, and refuse to follow final
symlinks when opening logs.
(cherry picked from commit 01d5de2876a23701e41957826cd8115702c41684)
Merge tag 'pm-7.3-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull more power management updates from Rafael Wysocki:
"These fix two issues in the intel_rapl power capping driver, fix a
potential issue in the schedutil cpufreq governor on 32-bit systems,
fix a runtime PM issue related to failing system suspend, and update
the intel_pstate cpufreq driver:
- Fix a kernel panic during PMU unbind in the intel_rapl power
capping driver and sign-extend the PMU delta on counter wraparound
in it to avoid misreporting energy (Sumeet Pawnikar and Yifan Li)
- Unblock runtime PM when device prepare fails that was not done by
mistake (Shibo Zhu)
- Fix possible rate limit overflow on 32-bit systems in the schedutil
cpufreq governor (Hui Su)
- Consolidate HWP P-states initialization in the intel_pstate cpufreq
[11 lines not shown]
[MLIR][Analysis] Fix incorrect RegionBranchOpInterface API usage in SliceWalk (#188758)
`getControlFlowPredecessors` was passing `opResult.getResultNumber()`
and `blockArg.getArgNumber()` directly as the `index` argument to
`getPredecessorValues`. However, `getPredecessorValues` expects an index
into `getSuccessorInputs()`, not into the full result/block-argument
list.
If an op implementing `RegionBranchOpInterface` has results or block
arguments that are not successor inputs (e.g., an `scf.for`-like op
returning an additional loop counter that is not an `iter_arg`), the
passed index would be out of bounds.
Fix both cases by first looking up the value in `getSuccessorInputs()`
and using the found position as the index. If the value is not a
successor input, return `std::nullopt` since it has no control-flow
predecessors.
Fixes #175168
Assisted-by: Claude Code
[SSAF] Flatten 'UnsafeBufferReachableAnalysisResult' to a plain set
Previously, an 'UnsafeBufferReachableAnalysisResult' was organized as
a map from contributors to their mutually exclusive
sub-results. Because this extra layer of contributor information
proved unnecessary, this commit flattens the result into a plain set.
The source transformation expects the result to be a plain set, so
this is a prerequisite step for
rdar://185840466
Merge tag 'acpi-7.3-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull more ACPI support updates from Rafael Wysocki:
"These update documentation to reflect recent changes in the upstream
ACPICA project, fix issues in the core ACPI device enumeration code
(one of which has been introduced recently), improve the primary
"physical" device lookup for ACPI device objects in that code, and
update ACPI device drivers:
- Update MAINTAINERS, CREDITS and ACPI subsystem documentation to
reflect recent changes in the upstream ACPICA project (Rafael
Wysocki)
- Prevent the core ACPI enumeration code from combining device
resources that overlap completely in order to avoid resource
conflicts during platform device registration because there are
drivers that expect such resources to be present (Rafael Wysocki)
- Defer device power initialization during ACPI-based device
[42 lines not shown]