arm64/acpica: Fix the IORT MSI xref type
The acpi IORT code incorrectly uses a u_int as the MSI xref type, while
INTRNG expects an intptr_t. Switch to using intptr_t to help document
this value is the xref for the MSI controller.
Reviewed by: dsl
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D60653
arm64/pmap: Add support for FEAT_TTL
FEAT_TTL adds a Translation Table Level field for TLB maintenance intructions,
to indicate the level holding the leaf address for the address being
invalidated. This can reduce the cost of TLB invalidation.
Reviewed by: andrew
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D60090
[GVNHoist] call patchReplacementInstruction in rauw (#239468)
In Replace all User With function, we actually need to relax flag for
hoisting. In one miscompilation bug we have (see:
Closes item), we need dropPoisonGeneratingFlags in that case.
After taking a look at patchReplacementInstruction, we need call site
relaxation too.
As a result, we make rauw call that function directly. The only
difference is that Hoisting actually move the instruction so we need to
set DoesKMove in combineMetadataForCSE to true. We add a parameter to
pass the value and set the value to false by default.
Assisted-by: Claude # Test
Closes: #236581
NAS-145130 / 27.0.0 / List the read-only bit of statx in filesystem.stat (by yocalebo) (by bugclerk) (#20157)
The TrueNAS kernel sets STATX_ATTR_RDONLY in stx_attributes when the
file is on a read-only mount, as the mount or its superblock is read
only, such as a dataset with readonly=on, which ZFS applies with no
remount, or a snapshot. StatxAttr gains RDONLY, so filesystem.stat and
the listing of a directory name it among the attributes, and the
attributes of v28_0_0 take it.
A unit test sets readonly on and off on a dataset of its own and finds
the bit and the name follow with no remount, finds them on a file inside
a snapshot, and finds neither on /proc. It needs a kernel with the
change.
Cf. https://github.com/truenas/linux/pull/401
Original PR: https://github.com/truenas/middleware/pull/20155
[2 lines not shown]
NAS-145130 / 27.1.0 / List the read-only bit of statx in filesystem.stat (by yocalebo) (#20156)
The TrueNAS kernel sets STATX_ATTR_RDONLY in stx_attributes when the
file is on a read-only mount, as the mount or its superblock is read
only, such as a dataset with readonly=on, which ZFS applies with no
remount, or a snapshot. StatxAttr gains RDONLY, so filesystem.stat and
the listing of a directory name it among the attributes, and the
attributes of v28_0_0 take it.
A unit test sets readonly on and off on a dataset of its own and finds
the bit and the name follow with no remount, finds them on a file inside
a snapshot, and finds neither on /proc. It needs a kernel with the
change.
Cf. https://github.com/truenas/linux/pull/401
Original PR: https://github.com/truenas/middleware/pull/20155
Co-authored-by: Caleb St. John <30729806+yocalebo at users.noreply.github.com>
[AMDGPU] Align AGPR memory-op operands like their VGPR equivalents (#236207)
getEquivalentAGPROperand mapped VGPR memory-op operand classes to raw
AReg_N register operands, while the VGPR side (getEquivalentVGPROperand
/ VGPROp_N) routes through the HwMode-split VReg_N_AlignTarget classes.
As a result the AGPR variants of DS/FLAT atomics did not enforce even
VGPR-tuple alignment through their operand register class on subtargets that
require it (gfx90a/gfx942), unlike their VGPR counterparts -- misaligned
AGPR tuples were only caught by the generic validateVGPRAlign scan.
Route them through AReg_N_AlignTarget so the operand's register class
resolves to AReg_N_Align2 on aligned MAI subtargets and AReg_N
elsewhere, matching the VGPR path. Misaligned AGPR tuples are now
rejected by the operand class ("invalid operand for instruction") like
their VGPR counterparts.
Co-Authored-By: Claude <noreply at anthropic.com>
NAS-145130 / 28.0.0-BETA.1 / List the read-only bit of statx in filesystem.stat (#20155)
The TrueNAS kernel sets STATX_ATTR_RDONLY in stx_attributes when the
file is on a read-only mount, as the mount or its superblock is read
only, such as a dataset with readonly=on, which ZFS applies with no
remount, or a snapshot. StatxAttr gains RDONLY, so filesystem.stat and
the listing of a directory name it among the attributes, and the
attributes of v28_0_0 take it.
A unit test sets readonly on and off on a dataset of its own and finds
the bit and the name follow with no remount, finds them on a file inside
a snapshot, and finds neither on /proc. It needs a kernel with the
change.
Cf. https://github.com/truenas/linux/pull/401
[mlir][test] Split TestOps.td into one .td file per category
Prior to this PR, the test dialect used ODS's sharding mechanism (`add_sharded_ops(TestOps 20)`), which equally splits `TestOps.cpp.inc` into 20 shards (using preprocessor defines for selective enablement).
The motivation for doing so is that this can speed up compile time by splitting class definition compilation to multiple translation units.
However, this approach has one large disadvantage: Since only the `TestOps.cpp.inc` is split, the corresponding `TestOps.h.inc` is still included in each translation unit. This leads to **much higher** concurrent memory usage while compiling as every compilation process contains an in-memory copy of the header plus can lead to slower compilation time overall as overall work goes up (`n` header parses instead of 1).
This PR instead splits `TestOps.td` into one `.td` file per category (Core, Attributes, Traits, Patterns, Conversion, Interfaces and Properties). Each category gets its own `-gen-op-decls`/`-gen-op-defs` outputs, header and source file, so every translation unit only contains the code from its category and no longer needs to include the entire dialect header.
One can think of these as effectively being sub-dialects from the perspective of the required boilerplate.
* `TestOpBase.td`: includes, `TEST_Op` and definitions used by several categories.
* `TestOps<Category>.td`: the ops of a category and the definitions only they use.
* `TestOps.td`: includes all of the above plus the DRR patterns, which use ops of several categories. It is still used for the dialect, attribute and rewriter generators and by PDLL.
Every category registers its ops through a `registerOps<Category>()` hook, declared in the dialect's `extraClassDeclaration` and called in `initialize()`. Ops referenced across categories (the implicit terminators `RegionYieldOp` and `TerminatorOp` of `Core` ops) are forward declared by hand.
This is an alternative to "Natural Sharding" (#239254) that needs no ODS changes: the categories are the partitions of #239254, and the C++ sources and headers are the same as there. The generated op declarations are identical to #239254 modulo its forward declarations; the op definitions differ only in the names of file-local constraint functions and the registration hooks.
Users of `TestOps.h` were further changed to just include the header of a given category if deemed useful.
[12 lines not shown]
basilisk: Update to 2026.11.01
This brings basilisk up to the most recent version of UXP (Pale Moon's
engine), with associated web compatibility and security fixes.
hwpmc: release a PMC whose ID could not be copied out
If copyout of the newly allocated PMC ID fails, the caller cannot use or
release the PMC. Release it in the kernel.
Reviewed by: mhorne
MFC after: 3 days
Sponsored by: Advanced Micro Devices, Inc.
Differential Revision: https://reviews.freebsd.org/D60562
[Offload][Omp] Mark interop test as pass for CUDA (#239593)
It seems after the recent interop changes the interop tests is passing for the CUDA backend (https://lab.llvm.org/buildbot/#/builders/239/builds/775) so we adjust the XFAIL mark here.