NAS-139089 / 25.10.2 / Use CSafeLoader for YAML Loading... (by essinghigh) (#17912)
... to avoid holding the GIL
I've been raising a lot of PRs lately, had some time off work, so
apologies for the spam :)
### Problem
Users running apps have been reporting high `asyncio_loop` CPU% util
since around 25.04.
See:
https://forums.truenas.com/t/asyncio-loop-over-100-cpu-middlewared-gui-slow-seems-docker-ghcr-custom-app-related/49461
Through profiling middleware with py-spy, I found that YAML parsing
accounts for approximately 50% of the stack traces during high
utilization periods. PyYAML's pure Python implementation is CPU
intensive and, more importantly, holds the GIL, blocking the asyncio
loop.
### Solution
[19 lines not shown]
NAS-139089 / 26.04 / Use CSafeLoader for YAML Loading... (#17906)
... to avoid holding the GIL
I've been raising a lot of PRs lately, had some time off work, so
apologies for the spam :)
### Problem
Users running apps have been reporting high `asyncio_loop` CPU% util
since around 25.04.
See:
https://forums.truenas.com/t/asyncio-loop-over-100-cpu-middlewared-gui-slow-seems-docker-ghcr-custom-app-related/49461
Through profiling middleware with py-spy, I found that YAML parsing
accounts for approximately 50% of the stack traces during high
utilization periods. PyYAML's pure Python implementation is CPU
intensive and, more importantly, holds the GIL, blocking the asyncio
loop.
### Solution
[15 lines not shown]
interfaces: prepare for #7647 by clustering the id-assoc blocks
This way we can retroactively render the full sections in the configuration.
Some research still needed for how dhcp6c tracks these numbers (also across
interfaces worst case).
The old $id logic with the increment doesn't make much sense at first glance
given the example config in the ticket.
InstCombine: Handle exp/exp2/exp10 in SimplifyDemandedFPClass (#173432)
I'm working on optimizing out the tail sequences in the
implementations of the 4 different flavors of pow. These
include chains of selects on the various edge cases.
Related to #64870
bhyve: Use a blocking socket in the helper process
The send_packet callback does not handle EAGAIN, and on the recv side we
already use poll() and MSG_DONTWAIT to implement a non-blocking loop.
PR: 291616
Tested by: novel
Fixes: 0e62ebd20172 ("bhyve: Move the slirp backend out into a separate process")
Differential Revision: https://reviews.freebsd.org/D54340
InstCombine: Handle exp/exp2/exp10 in SimplifyDemandedFPClass
I'm working on optimizing out the tail sequences in the
implementations of the 4 different flavors of pow. These
include chains of selects on the various edge cases.
Related to #64870
qlnxe: Avoid out-of-bounds reading the multicast ethernet address
The correct length of an ethernet address is ETHER_ADDR_LEN but not
ETHER_HDR_LEN.
MFC after: 1 week
[AMDGPU] Have VCC as a first-class member of the SGPR pool.
Add VCC and tuples using VCC to SGPR register classes.
We already support VCC as an allocatable register for 32-bit SGPR
operands, so it seems most natural to support it for register
tuple operands as well.
s106/s107 are still not allowed as aliases of vcc_lo/hi in
AsmParser.
The names given to the VCC tuples match those produced by SP3,
though it feels like there is room for improvement.
https://github.com/llvm/llvm-project/issues/62651
InstCombine: Handle exp/exp2/exp10 in SimplifyDemandedFPClass
I'm working on optimizing out the tail sequences in the
implementations of the 4 different flavors of pow. These
include chains of selects on the various edge cases.
Related to #64870