[CIR] Fix HLSL test that crashes (#182894)
This was caused by #182609, which just changed the way the AST stores
these, which causes us to hit an NYI in a way that doesn't recover
nicely. In the future, we could probably represent a 'no op' instead of
an empty op in the IR for these cases, but there isn't much use for it,
since it is always after NYI.
This patch changes the test to use float instead of float1 as suggested
in review, which avoids the problematic conversion.
[mlir][acc] Add parallelism mapping policy interface (#182890)
Add a header that defines the interface for mapping OpenACC parallelism
levels (gang, worker, vector) to target-specific parallel dimension
attributes. Alongside this,
DefaultACCToGPUMappingPolicy is introduced for an initial implementation
of ACC parallelism to GPU mapping.
Linux 7.0: add shims for the fs_context-based mount API
The traditional mount API has been removed, so detect when its not
available and instead use a small adapter to allow our existing mount
functions to keep working.
Sponsored-by: TrueNAS
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18216
[AMDGPU] Fix caller/callee mismatch in SGPR assignment for inreg args
On the callee side, `LowerFormalArguments` marks SGPR0-3 as allocated in
`CCState` before running the CC analysis. On the caller side, `LowerCall` (and
GlobalISel's `lowerCall`/`lowerTailCall`) added the scratch resource to
`RegsToPass` without marking it in `CCState`. This caused `CC_AMDGPU_Func` to
treat SGPR0-3 as available on the caller side, assigning user inreg args there,
while the callee skipped them without marking it in `CCState`. This caused
`CC_AMDGPU_Func` to treat SGPR0-3 as available on the caller side, assigning
user inreg args there, while the callee skipped them.
Linux 7.0: posix_acl_to_xattr() now allocates memory
Kernel devs noted that almost all callers to posix_acl_to_xattr() would
check the ACL value size and allocate a buffer before make the call. To
reduce the repetition, they've changed it to allocate this buffer
internally and return it.
Unfortunately that's not true for us; most of our calls are from
xattr_handler->get() to convert a stored ACL to an xattr, and that call
provides a buffer. For now we have no other option, so this commit
detects the new version and wraps to copy the value back into the
provided buffer and then free it.
Sponsored-by: TrueNAS
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18216
Linux 7.0: blk_queue_nonrot() renamed to blk_queue_rot()
It does exactly the same thing, just inverts the return. Detect its
presence or absence and call the right one.
Sponsored-by: TrueNAS
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18216
[SandboxIR][Region] Replace exit() with reportFatalUsageError() (#182134)
`Region::createRegionsFromMD()` parses the IR and the corresponding
metadata and forms one or more Regions. If an instruction is tagged as
being part of the "auxiliary" vector of the region, then a check
enforces that it should also be part of a region, i.e., it should have
both `!sandboxaux` and `!sandboxvec` metadata, not just `!sandboxaux`.
The check used to `exit(1)` after printing an error, but it's better to
abort using LLVM's error handling functions. Since the user can write
the IR by hand I think it makes sense to report this as a usage error
with `reportFatalUsageError()`, and not as an internal error.
NAS-139907 / 26.0.0-BETA.1 / fix failover.mismatch_nics (#18279)
When bond slave interfaces join a bond, their active MAC address
(link_address) is replaced with the bond master's MAC. All slaves in the
same bond share the same active MAC. The mismatch_nics caller was
building its MAC-to-name dicts using state['link_address'], which meant
multiple bond slaves would collapse into a single dict entry (last one
wins). Meanwhile, local_macs_to_remote_macs from the database uses
hardware_link_address (the permanent MAC), so the two sides of the
comparison used different MAC address sources — guaranteed mismatch for
any bond slave whose permanent MAC differs from the bond MAC.
Fix: use hardware_link_address instead of link_address when building
local_physical_mac_to_name and remote_physical_mac_to_name, matching the
MAC source used by persist_link_addresses.
SIMD: libspl: test the correct CPUID bit for AVX512VL
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Attila Fülöp <attila at fueloep.org>
Closes #18254
Improve misleading error messages for ZPOOL_STATUS_CORRUPT_POOL
When devices are missing or claimed by another subsystem (e.g.
mdadm, LVM), zpool import reports "The pool metadata is corrupted"
and suggests destroying the pool. This is misleading because the
metadata is not necessarily corrupted -- it may simply be incomplete
due to inaccessible devices.
Update the status, action, and recovery messages to acknowledge
that missing devices can trigger this status, and suggest checking
device availability before resorting to pool destruction.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Chris Longros <chris.longros at gmail.com>
Closes #18251
Closes #8236
build: get objtool from $kernelbuild
On systems where `$kernelsrc` is different than `$kernelbuild`, the
objtool binary will be located in `$kernelbuild` as it's the result of
running `make prepare` during kernel build.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Attila Fülöp <attila at fueloep.org>
Signed-off-by: Louis Leseur <louis.leseur at gmail.com>
Closes #18248
Closes #18249
graphics/blender4: Fix desktop file - refers to stale executable name
The desktop file Exec command line refers to the wrong executable name
"blender" and it should be "blender-45".
PR: 293215
Approved by: portmgr (blanket - fix runtime)
[lldb][ARM] Support reading the thread pointer register on ARM Linux (#182438)
This implements reading the TPIDRURO register, which serves as the
thread pointer register on ARM Linux. Note that the register is not
displayed for core files because it is not included in the dump.
[clang][ssaf] Add Entity Linker and associated data structures
This PR introduces the EntityLinker algorithm that merges per-TU
summaries into a single link-unit summary. As part of this change it
adds `operator<<` support for all SSAF model types to enable them to be
formatted automatically in diagnostics and test messages, and extracts
out and improves ErrorBuilder with a cleaner API and test coverage.
rdar://162570931
Add vdev property to disable vdev scheduler
Added vdev property to disable the vdev scheduler.
The intention behind this property is to improve IOPS
performance when using o_direct.
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: MigeljanImeri <ImeriMigel at gmail.com>
Closes #17358
[NFC][VPlan] Add initial tests for future VPlan-based stride MV
I tried to include both the features that current
LoopAccessAnalysis-based transformation supports (e.g., trunc/sext of
stride) but also cases where the current implementation behaves poorly,
e.g., https://godbolt.org/z/h31c3zKxK; as well as some other potentially
interesting scenarios I could imagine.
[AMDGPU] Fix caller/callee mismatch in SGPR assignment for inreg args
On the callee side, `LowerFormalArguments` marks SGPR0-3 as allocated in
`CCState` before running the CC analysis. On the caller side, `LowerCall` (and
GlobalISel's `lowerCall`/`lowerTailCall`) added the scratch resource to
`RegsToPass` without marking it in `CCState`. This caused `CC_AMDGPU_Func` to
treat SGPR0-3 as available on the caller side, assigning user inreg args there,
while the callee skipped them without marking it in `CCState`. This caused
`CC_AMDGPU_Func` to treat SGPR0-3 as available on the caller side, assigning
user inreg args there, while the callee skipped them.
[alpha.webkit.NoDeleteChecker] Better diagnostics (#182614)
This PR improves NoDeleteChecker's bug report so that it's more
actionable. Namely, when a function fails "triviali function analysis",
we report the first statement or parameter which failed the triviality
check.
[alpha.webkit.NoDeleteChecker] Fundamental types are trivially destructive (#182734)
This PR fixes the bug in the "trivial function analysis" that
CanTriviallyDestruct returns false for some fundamental types such as
float and nullptr_t. Return true for these types instead as they are
trivally destructive.
graphics/materialx: Add required by bundled glfw dependencies
- Sync dependencies with graphics/glfw X11 enabled, WAYLAND disabled.
- Remove python version 3.9 from USES - 3.10 is the oldest version in
ports.
- Add USES+=compiler:c++17-lang - several parts of the port uses
-std=c++17.
PR: 293322
Approved by: Martin Filla <freebsd at sysctl.cz> (maintainer)
[lldb][windows] fix a race condition when closing the ConPTY (#182302)
This patch fixes a race condition when closing the ConPTY of a process
on Windows.
The read operation in `ConnectionGenericFile::Read` is asynchronous
because the ConPTY does not work with synchronous reads. However, this
is prone to a race condition if the ConPTY is closed between the
`ReadFile` and the `WaitForMultipleObjects`. This eventually leads to
the data being truncated, i.e some of the STDOUT is missing.
The fix is to introduce a mutex which prevents the ConPTY from closing
while a Read loop is in progress.
At the end of the pipe, `WaitForMultipleObjects` hangs until it receives
a `ERROR_BROKEN_PIPE` event, which is signaled when closing the ConPTY.
It's important to close the Read thread before closing the ConPTY,
otherwise the thread deadlocks waiting for the `ERROR_BROKEN_PIPE` which
is never sent because the ConPTY is waiting for the thread to exit
[14 lines not shown]
[TableGen] Implement TypesAreContradictory for non-simple ValueTypeByHwMode. (#182765)
This allows a little bit more factoring in the isel table.
Assisted-by: claude
[NFC][VPlan] Split `makeMemOpWideningDecisions` into subpasses
The idea is to have handling of strided memory operations (either from
https://github.com/llvm/llvm-project/pull/147297 or for VPlan-based
multiversioning for unit-strided accesses) done after some mandatory
processing has been performed (e.g., some types **must** be scalarized)
but before legacy CM's decision to widen (gather/scatter) or scalarize
has been committed.
And in longer term, we can uplift all other memory widening decision to
be done here directly at VPlan level. I expect this structure would also
be beneficial for that.
[AMDGPU] Fix caller/callee mismatch in SGPR assignment for inreg args
On the callee side, `LowerFormalArguments` marks SGPR0-3 as allocated in
`CCState` before running the CC analysis. On the caller side, `LowerCall` (and
GlobalISel's `lowerCall`/`lowerTailCall`) added the scratch resource to
`RegsToPass` without marking it in `CCState`. This caused `CC_AMDGPU_Func` to
treat SGPR0-3 as available on the caller side, assigning user inreg args there,
while the callee skipped them without marking it in `CCState`. This caused
`CC_AMDGPU_Func` to treat SGPR0-3 as available on the caller side, assigning
user inreg args there, while the callee skipped them.