mrsas.4: Cleaning
+ Rewrite SYNOPSIS for consistency
+ Rewrite HARDWARE for HW Relnotes, and add some stragglers
+ Correct mdoc grammar, making sysctls aproposable and linking xrefs
+ Clean up TODO, cannonicalize to CAVEATS, a standard section
+ Editorial pass, tag SPDX
MFC after: 3 days
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D52125
(cherry picked from commit 52eb7e394a7e28e9b08e2096c4a085a384cc1dd0)
mrsas.4: Cleaning
+ Rewrite SYNOPSIS for consistency
+ Rewrite HARDWARE for HW Relnotes, and add some stragglers
+ Correct mdoc grammar, making sysctls aproposable and linking xrefs
+ Clean up TODO, cannonicalize to CAVEATS, a standard section
+ Editorial pass, tag SPDX
MFC after: 3 days
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D52125
(cherry picked from commit 52eb7e394a7e28e9b08e2096c4a085a384cc1dd0)
[mlir][Transforms] `remove-dead-values`: Rely on canonicalizer for region simplification (#173505)
This commit simplifies the `remove-dead-values` pass and fixes a bug in
the handling of `RegionBranchOpInterface` ops. The pass used to produce
invalid IR ("null value found") for the newly added test case.
`remove-dead-values` is a pass for additional IR simplification that
cannot be performed by the canonicalizer pass. Based on a liveness
analysis, it erases dead values / IR. (The liveness analysis is a
dataflow analysis that has more information about the IR than a
canonicalization pattern, which can see only "local" information.)
Region-based ops are difficult. The liveness analysis may determine that
an SSA value is dead. However, that does not mean that the value can
actually be removed. Doing so may violate an region data flow (as
modeled by the `RegionBranchOpInterface`). As an example, consider the
case where a region branch terminator may dispatch to one of two region
successor with the same forwarded values. A successor input (block
argument) can be erased only if it is dead on both successors.
[11 lines not shown]
ifconfig: Fix the -L flag when using netlink
By default, when ifconfig shows a v6 address derived from a
router-advertised prefix, it shows the initial preferred and valid
lifetimes. When -L is specified, it is supposed to show the remaining
lifetimes, but this was broken in the conversion to netlink.
Fix that, and add a regression test which validates ifconfig output
before and after a short-lived address expires.
Reported by: Franco Fichtner <franco at opnsense.org>
Reviewed by: melifaro, allanjude, Seyed Pouria Mousavizadeh Tehrani
Fixes: 4c91a5dfe483 ("ifconfig: make interface and address listing use Netlink as transport")
MFC after: 2 weeks
Sponsored by: OPNsense
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D54294
(cherry picked from commit df6861d755c8f72380ae7fb8df535b27eba8c0be)
armv8rng: Fix an inverted test in random_rndr_read_one()
If we get a random number, the NZCV is set to 0b0000. Then
"cset %w1, ne" will test whether Z == 0 and set %w1 to 1 if so.
More specifically, "cset %w1, ne" maps to "csinc %w1, wzr, wzr, eq",
which stores 0 in %w1 when NZCV == 0b0100 and 1 otherwise.
Thus, on a successful read we expect ret != 0, so the loop condition
needs to be fixed. In practice this means that we would end up trying
to fetch entropy up to ten times in a row. If all attempts are
successful, the last will be returned, otherwise no entropy will be
returned.
Reported by: Kevin Day <kevin at your.org>
Reviewed by: andrew
Fixes: 9eecef052155 ("Add an Armv8 rndr random number provider")
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D54259
(cherry picked from commit 93811883500b99f9f1fb4ffd6e764226d37dcfd0)
pfsync: Avoid zeroing the state export union
pfsync_state_export() takes a pointer to a union that is in reality a
pointer to one of the three state formats (1301, 1400, 1500), and zeros
the union. The three formats do not have the same size, so zeroing is
wrong when the format isn't that which has the largest size.
Refactor a bit so that the zeroing happens at the layer where we know
which format we're dealing with.
Reported by: CHERI
Reviewed by: kp
MFC after: 1 week
Sponsored by: CHERI Research Centre (EPSRC grant UKRI3001)
Differential Revision: https://reviews.freebsd.org/D54163
(cherry picked from commit 796abca7e281f0d4b7f72f48da4f941e1c8b139c)
netmap: Let memory allocator parameters be settable via loader.conf
This is useful when dev.netmap.port_numa_affinity is set to 1. When
interfaces attach, they get a memory allocator that is copied from
nm_mem. Parameters in nm_mem can be set using sysctls, but this happens
after their values are copied.
To work around this, we can make it possible to set these memory
parameters as tunables.
Reviewed by: vmaffione
MFC after: 1 week
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D54178
(cherry picked from commit c694122f3cfb7d52b882fa79086d49f45a2c7fd2)
socket: Fix the name of a parameter in a comment
Reported by: des
Fixes: 0a68f644dca1 ("socket: Split up soreceive_generic()")
MFC after: 1 week
(cherry picked from commit a0d607957533c7fbefaac5cd81d34c037cc27344)
[clang][bytecode] Fix some imag/real corner cases (#174764)
Fix real/imag when taking a primitive parameter _and_ being discarded,
and fix the case where their subexpression can't be classified.
Fixes https://github.com/llvm/llvm-project/issues/174668
[AMDGPU] Handle `s_setreg_imm32_b32` targeting `MODE` register
On certain hardware, this instruction clobbers VGPR MSB `bits[12:19]`, so we need to restore the current mode.
Revert "[VectorCombine] Fold scalar selects from bitcast into vector select" (#174758)
Reverts llvm/llvm-project#173990
Reverting to address post-commit review feedback. Will recommit with
fixes.
[SPIRV] Lower i1 comparisons to logical operations in regularizer pass.
UGT, UGE, ULT, ULE, SGT, SGE, SLT, SLE predicates for i1 types are now
lowered to equivalent logical operations (AND, OR, NOT) to ensure
valid SPIR-V, since SPIR-V boolean types only support logical operations.
NAS-139200 / 26.04 / Force name keyword arg in start_daemon_thread (#17968)
While tracing middlewared process, I found a bunch of threads attached
to parent process with just names like `Thread-0`, `Thread-1`, etc. This
is the default thread_name_prefix given to a `Thread` in python. That's
unhelpful so this forces a `name` keyword argument to be given to
`start_daemon_thread`.
NAS-139199 / 26.04 / Fix Futures resource leak in run_coroutine_threadsafe (#17967)
This fixes a leak whereby we're not tracking `Future` objects correctly.
This means they're never cleaned up and overtime they'll build up on the
main event loop.
I confirmed this behavior by running `midclt call interface.query` in a
tight loop on a box and then connecting a remote pdb session with the
middleware process. It was designed to "overrun" the main event loop,
what it did was build up a queue that never cleared itself. There were
~2.3k PENDING futures in our thread pool.
This does 2 things:
1. creates a `run_coroutine_threadsafe` wrapper that properly tracks the
futures so they're cleaned up
2. logs any exceptions that may occur in these "fire and forget"
futures.
worklows/release-binaries: Add Windows release binary builds (#150793)
Windows x86 binaries will now be built and uploaded automatically when a new release is tagged.
[Clang][LLVM][AArch64] Add support for FCVTXNT, FCVTLT, {B}FCVTNT int… (#170356)
…rinsics
This patch adds support in Clang for these assembly instructions
FCVTXNT, FCVTLT, {B}FCVTNT
By implementing these prototypes:
// Variant is available for _f64_f32
svfloat32_t svcvtlt_f32[_f16]_z (svbool_t pg, svfloat16_t op);
// Variants are available for:
// _f32_f64, _bf16_f32
svfloat16_t svcvtnt_f16[_f32]_z (svfloat16_t even, svbool_t pg,
svfloat32_t op);
svfloat32_t svcvtxnt_f32[_f64]_z (svfloat32_t even, svbool_t pg,
svfloat64_t op);
[6 lines not shown]
Revert "[AA] Improve precision for monotonic atomic load/store operations" (#173135)
Reverts llvm/llvm-project#158169
The improved AA precision for atomic store operations causes the DSE
pass to optimize out the object variables.