[Psuedoprobe][MachO] Enable pseudo probes emission for MachO (#185758)
Enable pseudo probes emission for MachO. Due to the 16 character limit
of MachO segment and section, the file sections will be
`__PSEUDO_PROBE,__probes` and `__PSEUDO_PROBE,__probe_descs`.
[SLP] Replace TrackedToOrig DenseMap with parallel SmallVector in reduction
Replace the DenseMap<Value*, Value*> TrackedToOrig with a SmallVector<Value*>
indexed in parallel with Candidates. This avoids hash-table overhead for the
tracked-value-to-original-value mapping in horizontal reduction processing.
Fixes #189686
[VPlan] Stop outerloop vectorization from vectorizing nonvector intrinsics (#185347)
In outer-loop VPlan, avoid emitting vector intrinsic calls for intrinsics
without a vector form. In VPRecipeBuilder, detect missing vector intrinsic
mapping and emit scalar handling instead of a vector call.
Also fix assertion when `llvm.pseudoprobe` in VPlan's native path is being
treated as a `WIDEN-INTRINSIC`.
Reproducer: https://godbolt.org/z/GsPYobvYs
gicv3: Stop using ICC_PMR_EL1 to mask interrupts.
Managing ICC_PMR_EL1 with spl changes is too costly, even with lazy PMR
updates. Let's simplify things. We can still take advantage of interrupt
prioritization for delivery but let's do spl filtering in software.
On Ampere eMAG, iperf3 on the loopback interface sees a ~18% performance
improvement with this change.
arm: optimize splx
Skip masking / unmasking interrupts and pic_do_pending_interrupts if
there is another pic_do_pending_interrupts in progress or if there are
no pending unmasked IPLs on the CPU.
arm: Make __HAVE_PIC_PENDING_INTRS state per-CPU.
Move pic_pending_irqs / pic_blocked_irqs / pic_pending_ipls from per-PIC
to per-PIC-per-CPU state. This allows us to defer processor-local
interrupts like SGIs and PPIs that use the same irq number.
[NFC][LLVM] Simplify `TypeInfoGen` in Intrinsics.td (#189278)
Eliminate `MappingRIdx` by making it an identity function. Currently,
`MappingRIdx` is used to map the index of an `llvm_any*` type in an
intrinsic type signature to its overload index. Eliminating this mapping
means that dependent types in LLVM intrinsic definitions (like
`LLVMMatchType` and its subclasses) should use the overload index to
reference the overload type that it depends on (and not the index within
the llvm_any* subset of overloaded types).
See
https://discourse.llvm.org/t/rfc-simplifying-intrinsics-type-signature-iit-info-generation-encoding-in-intrinsicemitter-cpp/90383
man: Fix checking manpages without a full build
Some of the man pages (ex: `man/man8/zed.8`) are generated from `.in`
files, and `zed.8.in` *was* a dependency of `zed.8`, but `zed.8` was
not a dependency of `mancheck-...zed.8`. This usually worked anyways
because a full build had already been run, now it works regardless.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Shelvacu on fw <git at shelvacu.com>
Closes #18346
zfs.4: document the zfs_arc_free_target parameter
Document the FreeBSD-specific zfs_arc_free_target tunable which
controls the number of free pages below which the ARC triggers
reclaim. Note its initialization from vm.v_free_target and its
distinction from the Linux-specific zfs_arc_sys_free.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Christos Longros <chris.longros at gmail.com>
Closes #18350
draid: fix import failure after disks replacements
Currently, it's possible that draid vdev asize would decrease
after disks replacements when the disk size is a little less than
all other disks in the pool. In such situations, import would
fail on this check in vdev_open():
/*
* Make sure the allocatable size hasn't shrunk too much.
*/
if (asize < vd->vdev_min_asize) {
vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
VDEV_AUX_BAD_LABEL);
return (SET_ERROR(EINVAL));
}
Solution: fix vdev_draid_min_asize() so that it would round up
the required minimal disk capacity to the VDEV_DRAID_ROWHEIGHT.
This would refuse replacements with the disks whose size is less
[8 lines not shown]
Fix zfs partition size for disks of different sector size
Currently, during disks partitioning, the zfs partition will have
different start offset and size depending on the disks sector
size, even if the disks have the same capacity. This can lead to
undesirable effects, for example decreasing of draid vdev asize
when replacing failed disks with 4K-sector disks while the pool
has disks with 512-bytes sector sizes, which would end up with
import failure when asize drops below min_asize level.
Solution: always create the same start and size zfs partition on
the disks of the same capacity, regardless of their sector sizes.
Note: this patch makes zfs partition start and size as if the disks
have 512-bytes sectors, that is the start will be smaller and the
size will be bigger since the NEW_START_BLOCK and EFI_MIN_RESV_SIZE
would always be counted in 512 units. So for the disks of the same
capacity, zfs partition would always have the same bigger possible
size, which makes this fix compatible with all the existing pools,
[4 lines not shown]
[RISCV][P-ext] Support i32 ushlsat on RV32. (#189730)
We have a sshl instruction on RV32 in the 0.21 spec. Unfortunately,
we don't have a SSLLI instruction, but we can put a constant shift
amount in a register.
[lldb][Platform] Handle LoadScriptFromSymFile per-module FileSpec (#189696)
This patch changes the `Platform::LocateXXX` to return a map from
`FileSpec` to `LoadScriptFromSymFile` enum.
This is needed for https://github.com/llvm/llvm-project/pull/188722,
where I intend to set `LoadScriptFromSymFile` per-module.
By default the `Platform::LocateXXX` set the value to whatever the
target's current `target.load-script-from-symbol-file` is set to. In
https://github.com/llvm/llvm-project/pull/188722 we'll allow overriding
this per-target setting on a per-module basis.
Drive-by:
* Added logging when we fail to load a script.
[TargetLowering] Replace always true if with an assert. NFC (#189750)
We already returned for UADDSAT/USUBSAT leaving SADDSAT/SSUBSAT as the
only opcodes that can get here.
dbufstat: add man page
Add a manual page for the dbufstat(1) utility which displays
statistics about the DMU buffer cache. Document all options,
fields, and include sample output from a live FreeBSD system.
Also add dbufstat.1 to Makefile.am and Debian packaging.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Christos Longros <chris.longros at gmail.com>
Closes #18358
[compiler-rt][asan] Forward fix for free_aligned_sized_mismatch.cpp (#189760)
Mark this test as UNSUPPORTED for android since android's libc doesn't
seem to support aligned_alloc.
NAS-140428 / 27.0.0-BETA.1 / Fix apps container UI shell (#18606)
## Problem
Opening a shell for a Docker app container (`app_name` + `container_id`)
failed because the `container_id` block ran unconditionally before the
`app_name` check — passing a Docker container name (string) to
`container.nsenter`, which expects an integer incus/libvirt container
ID.
## Solution
Made the `container_id`/`nsenter` path an `elif` under the `app_name`
check,
so it only runs for standalone incus/libvirt containers.