[libc++] Remove _LIBCPP_COMPRESSED_PAIR/TRIPLE from shared_ptr (#200401)
The `shared_ptr` control blocks don't need to be ABI stable as long as
we rename them. This can be thought of as adding a new control block,
which we've done before, and simply never generating the old one again.
This is done via an ABI tag on the control blocks, allowing us to change
their contents in whichever way we want without needing to consider
their ABI. In this case specifically, `_LIBCPP_COMPRESSED_{PAIR,TRIPLE}`
is removed, simplifying the code.
Firewall: Rules: Improve interface filter logic to include floating rules with multiple interfaces when they overlap with at least one interface in the interface filter request (#10449)
* Firewall: Rules: Improve interface filter logic to include floating rules with multiple interfaces when they overlap with at least one interface in the interface filter request.
* Improve inverted interface condition, make it symmetric to positive interface match in final else condition
[AArch64][SVE] Expose flags result of predicate-as-counter whiles (NFC) (#202976)
For predicate-as-counter there is not "ptest" instruction. So unlike for
the SVE1 while instructions, we can't fold
`extract_vector_elt(pext(whilelo, 0), 0)` to PTEST_FIRST_ACTIVE, then
rely on the ptest elimination to remove redundant tests.
This patch instead adds new ISD nodes for predicate-as-counter while
instructions that return both the predicate and the status flags. This
will allow us to DAG combine `extract_vector_elt(pext(whilelo, 0), 0)`
to `CSET (whilelo, first)`. A further DAG combine could also fold the
`CSET` into a BR_CC (if it has one use).
[mlir][linalg] Add category-to-named conversion in linalg-morph-ops (#205582)
Add the missing `category-to-named` morphism path that converts
`linalg.elementwise` ops to their equivalent named ops (e.g.
`linalg.elementwise kind=add` -> `linalg.add`). This completes the set
of conversions in the linalg-morph-ops pass:
generic <---> category <---> named
The conversion only applies to elementwise ops with identity indexing
maps, since named elementwise ops cannot carry custom maps. Kinds
without a named op equivalent (e.g. sin, cos) are left unconverted.
Co-authored-by: mabsar <mabsar at qti.qualcommm.com>
[Clang] Fix missing vtable for `dynamic_cast<FinalClass *>(this)` in a function template (#202594)
9d525bf94b255df89587db955b5fa2d3c03c2c3e introduced an optimization
of `dynamic_cast<FinalClass *>` by comparing vtable pointers. This requires
the vtable to be emitted, which was fixed for most cases in #64088.
This change addresses a missing case of a `dynamic_cast` of `this`
in a function template. We ensure that `Sema::MarkVTableUsed`
gets called during template instantiation. It wasn't because
`CXXThisExpr` is unaffected by template instantiation.
Fix #198511
pf|ipfw|netinet6?: shared IP forwarding
This removes the if_output calls in the pf(4) code that escape further
processing by defering the forwarding execution to the network stack
using on/off style sysctls for both IPv4 and IPv6.
Also see: https://reviews.freebsd.org/D8877
rss: add sysctl enable toggle
This commit also includes the original refactoring changes
This change allows the kernel to operate with the default netisr cpu-affinity settings while having RSS compiled in. Normally, RSS changes quite a bit of the behaviour of the kernel dispatch service - this change allows for reducing impact on incompatible hardware while preserving the option to boost throughput speeds based on packet flow CPU affinity.
Make sure to compile the following options in the kernel:
options RSS
As well as setting the following sysctls:
net.inet.rss.enabled: 1
net.isr.bindthreads: 1
net.isr.maxthreads: -1 (automatically sets it to the number of CPUs)
And optionally (to force a 1:1 mapping between CPUs and buckets):
net.inet.rss.bits: 3 (for 8 CPUs)
[5 lines not shown]
pf: backport changes around the following commit #242
commit 49f39043a02d6011c1907e1b07eb034652a1269c
Author: phessler <phessler at openbsd.org>
Date: Fri Apr 28 14:08:34 2023 +0000
Relax the "pass all" rule so all forms of neighbor advertisements are allowed
in either direction.
This more closely matches the IPv4 ARP behaviour.
From sashan@
discussed with kn@ deraadt@
rtsold: check RA lifetime before triggering the one-shot always script
Historic context: rtsold is used by *sense to get a router address which
wasn't originally the daemon's purpose. We only ever get the first address
per interface lifetime so if the RA contains an invalid router with a zero
lifetime and we catch it we cannot get a valid one ever again.
This is suboptimal in a number of ways, but the obvious way to deal with
this is to ignore all RA messages from routers that do not advertise a
default route.
PR: https://github.com/opnsense/core/issues/9551
axgbe: LED control for A30 platform
Since the I/O expander chip does not do a reset when soft power
cycling, the driver will first turn off all LEDs when initializing,
although no specific routine seems to be called when powering down.
This means that the LEDs will stay on until the driver has booted up,
after which the driver will be in a consistent state.
axgbe: gracefully handle i2c bus failures
In (unknown) situations it seems the i2c bus can have trouble,
while nothing about the current link state has changed, the driver
would react by going into a link down state, and start busylooping
on up to 4 cores. Even if there was a valid link, such spinning
on a cpu by a kernel thread would wreak havoc to existing and
new connections.
This patch does the following:
1. If such a bus failure occurs, we keep the last known link state.
2. Prevent busy looping by implementing the lockmgr() facility to
be able to sleep while the i2c code waits on the i2c ISR. We cap
this with a timeout.
3. Pin the admin queues to the last CPU in the system, to prevent
other scenarios where busy looping might occur from landing on CPU
0, which especially seems to cause a lot of issues.
Given the design constraints both in hardware and in software,
[9 lines not shown]
stand: add EFI support for mmio serial consoles
When no legacy serial is found, we may be looking at a non-legacy mmio
serial device mapping, in which case the efi_devpath_name() for name
ConOutDev looks like this:
VenHw(XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX,0090DCFE00000000)/Uart(115200,8,N,1)/VenVt100()
Which should tell the kernel to attach a console to 0xfedc9000
(little endian 64 bit value). The value is stored behind the
VENDOR_DEVICE_PATH struct as a byte stream hence we need to check
if said address is appended behind the node. Also enforce use for
uart by requiring the console speed read from the same device.
There is no scientific process for "rs:2" derivation, but evidence would
indicate that this is the correct setting for existing MMIO EFI consoles.
See also: http://bsdimp.blogspot.com/2018/07/how-to-get-memory-mapped-serial-console.html
axgbe: Remove leftover RSS default from xgbe_default_config()
Since 2b8df53 this is a sysctl toggle and the default is managed
in axgbe_sysctl_init() already along with the other toggles.
Signed-off-by: Stephan de Wit <stephan.de.wit at deciso.com>
divert: Avoid using atomic_(load|store)_(acq|rel)_16
It's not implemented on some arches. Use a plain int to count the
number of sockets in a divert lbgroup.
Reported by: Jenkins
Fixes: 895a0ae67fe2 ("divert: Define semantics for SO_REUSEPORT_LB on divert sockets")
divert: Define semantics for SO_REUSEPORT_LB on divert sockets
Allow SO_REUSEPORT_LB to be set on divert sockets. If set, then bind()
will add the socket to a "load-balancing group". When a divert-to rule
matches a port with an associated group, the corresponding state ID is
used to select a specific socket from the group. Packets without an
associated state are simply forwarded to the first socket in the group.
For now I only pass a state ID from pf, as I couldn't see a useful
identifier on the ipfw side.
This implementation is simple but has a caveat, that being that if
sockets are added to the group while flows are being processed, the size
of the group will change and this changes the mapping of state IDs to
sockets. So, to get a consistent mapping, the divert socket application
must bind all of its sockets before any traffic is diverted by the
firewall.
Reviewed by: glebius
MFC after: 1 month
[3 lines not shown]
www/resterm: Update to v0.44.1
v0.44.1
Better error diagnostics
RTS expression errors now show exactly where they happened in the file.
This also covers @for-each and {{= }} templates which previously reported errors without a location.
error[script]: undefined name "missing"
--> requests.http:14:21
14 | # @for-each item in missing.value
Modal error handling
API errors, such as 4xx and 5xx responses and failed requests no longer open a popup which was unneccecery
since error rapporting already shows up in the response tab. A duplicate statusline error message was also removed.
Internal
RTS engine was refactored so the TUI, CLI and headless modes now share one execution path instead of keeping separate copies.