[AMDGPU] Expose LDS block features to TargetParser (#220717)
Add `FeatureHalfAddressablePhysicalLocalMemory` to
`AMDGPUFrontendVisibleFeatures` so TargetParser carries them in its
per-GPU feature bitset.
18295 Add header tests to cover 18293 18294
Reviewed by: Toomas Soome <tsoome at me.com>
Reviewed by: Bill Sommerfeld <sommerfeld at hamachi.org>
Approved by: Robert Mustacchi <rm at fingolfin.org>
nfscl: A few more fixes for the NFS over RDMA client glue
A couple of additional fixes for the NFS client side RDMA glue:
- For Readdirplus, the reply needs to be a large chunk, so set
M_PROTO9 instead of M_PROTO8.
- The nfsclrdma.ko module now uses xprt_rdma_unmap_chunk()
instead of xprt_rdma_rekey_chunk().
Hopefully, this is it for the NFS over RDMA client glue changes.
MFC after: 3 months
Fixes: 884ee8d6c9b4 ("nfscl: Add some glue for client side NFS over RDMA")
fsck_msdosfs: add tests for lost cluster chain repair accounting
Add an ATF test suite covering Phase 3 ("Checking for Lost Files")
error accounting. Test images are created using newfs_msdos(8),
and lost cluster chains are injected directly into FAT copies at
offsets derived from the BPB. The LOST.DIR directory required by
reconnect() is constructed similarly: a root directory entry with
ATTR_DIRECTORY set and its first cluster pointing to a zero-filled
cluster containing "." and ".." entries.
The lost_chain_cleared and corrupted_lost_chain_reconnected test
cases provide regression coverage for the preceding commit:
- lost_chain_cleared verifies that clearing a lost chain (the fallback
taken when LOST.DIR is absent) exits with status 0 rather than 8
(unrecovered error).
- corrupted_lost_chain_reconnected verifies that FAT modifications
from a chain truncated by checkchain() prior to reconnection are
written back to disk, requiring "Update FATs? yes" and ensuring a
clean second pass.
[8 lines not shown]
fsck_msdosfs: fix status accounting for lost cluster chains
checklost() scans for lost cluster chains and attempts to
repair each one, first by reconnecting it to LOST.DIR,
and falling back to clearing it if reconnection fails.
However, checklost() incorrectly updates the modification
status flags (mod), which checkfilesys() relies on to
determine whether to write back changes and what exit
status to return.
The current code have three issues:
1. A reconnect() failure immediately sets FSERROR in mod
via "mod |= ret = reconnect(...)". If reconnect() failed
(e.g., because LOST.DIR is missing, or full) but the
fallback clear operation succeeds, clearchain() frees the
chain and sets FSFATMOD. However, the leftover FSERROR
remains in mod: checkfilesys() skips marking the file system
clean and exits with status 8, even though the file system was
[30 lines not shown]
Revert "devel/py-lxml: update to 6.1.3"
Requires at least newer minor version of lang/cython 3.2.9.
Reported by: fallout
This reverts commit 3dba3a5bc9a24ad56d9312a8cb2b64eeab56cb40.
[MLIR][LLVM] Avoid narrowing wide constant shift amounts (#220777)
LLVM::ShlOp::fold() used APInt::getZExtValue() to compare a constant
shift
amount against the operand bit width.
For wide integer constants whose active value exceeds 64 bits, such as
an i128
shift amount of 2^100, getZExtValue() asserts before the fold can
determine
that the shift is out of range.
Compare the APInt directly with the operand bit width using uge()
instead. This
preserves the existing behavior for out-of-range shifts, which are
currently
left unfolded, while avoiding the unsafe narrowing.
Add regression coverage for:
[4 lines not shown]
[orc-rt] Sink remaining Compiler.h macros into C API header (#220780)
ORC_RT_LIKELY, ORC_RT_UNLIKELY, ORC_RT_WEAK_IMPORT,
ORC_RT_BUILTIN_UNREACHABLE and ORC_RT_UNREACHABLE are useful from C but
were only reachable through the C++ header, so move them to
orc-rt-c/support/Compiler.h.
Rename ORC_RT_EXPORT to ORC_RT_CXX_EXPORT so that both export macros
name their language explicitly. The C++ header is left holding only that
macro. Keep the header separate anyway so that C APIs don't accidentally
use ORC_RT_CXX_EXPORT.
Extend CAPICompileTest.c to use each moved macro from C, with assertions
in CompilerTest.cpp so the behaviour is checked and not just the syntax.
[ELF] Omit zero-range FDEs from .eh_frame_hdr (#220492)
A zero-sized function (e.g. only `__builtin_unreachable()` in the body
when not using -trap-unreachable) shares its address with the next
function, and its zero-range FDE can win the uniquify step, leaving the
next real function impossible to unwind.
Fix #218124 by dropping FDEs with a zero PC range from the search table.
[AMDGPU] Expose the half-addressable LDS feature to TargetParser
Add FeatureHalfAddressablePhysicalLocalMemory to
AMDGPUFrontendVisibleFeatures so TargetParser carries it in its per-GPU
feature bitset, where getLocalMemorySize can read it.
It is listed in FrontendOnlyFeatures, so clang does not serialize it
into the target-feature string: it is a capability implied by the
subtarget, not something a user selects.
Change-Id: I87edf18bbb527fb90e6a8af1144e985024f063f7
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
[AArch64][NFC] Make insertion of CMP for fused cond. branches reusable (#220771)
Both if-conversion and CCMP-chain forming need to undo the fusion of
conditional branches such as CBZ or CB.<cc>. With the introduction of
FEAT_CMPBR, this logic got quite involved.
This patch makes the functionality reusable through AArch64InstrInfo.
bhyve: Keep passthrough PCI power state virtual
The passthrough Command register is emulated, but PMCSR writes were
sent directly to the physical function. A guest D3hot-to-D0 transition
can perform an internal reset and clear physical Command while its
emulated copy remains enabled.
Cache the Power Management capability and keep the physical D-state
host-owned. Emulate the guest D-state and advertise No_Soft_Reset so
the guest is not promised a function reset by a virtual power cycle.
Restore the assignment-time virtual state after a managed FLR.
Reviewed by: markj
Sponsored by: BBOX.io
(cherry picked from commit 3b90096cf9bcaec70b717e9ff0a9e23d14b600b6)
bhyve: Manage passthrough devices across guest FLR
bhyve emulates the guest PCI Command register so BAR sizing does not
disable physical decoding. However, PCIe Device Control was passed
through. A guest VFIO reset therefore performed a physical FLR, which
cleared physical Command, while the guest restored only its emulated
copy. The device remained assigned with bus mastering disabled and
could not fetch DMA descriptors.
Intercept guest FLR writes and issue a PPT-managed reset. Stop all
vCPUs, verify ownership, quiesce the function, perform only an FLR, and
restore the host-owned PCI configuration, decode, and bus-master state.
Keep the IOMMU domain in place. bhyve removes guest BAR mappings before
this ioctl; a later guest MEMEN write recreates them. Never escalate a
guest FLR to a power reset.
Reset the guest-owned Command, MSI, MSI-X, MSI-X table, INTx, and MRRS
state. PCIe 6.2 section 6.6.2 explicitly preserves MPS across FLR.
Virtualize MPS, MRRS, and Completion Timeout. Keep physical MPS and
[27 lines not shown]
e1000: Report 82571 packet buffer ECC errors
The 82571 PBA_ECC register contains a 12-bit count of packet buffer ECC
detections. The shared code enables single-bit correction, but neither
FreeBSD nor the DPDK base driver consumes the counter.
Sample it with the ordinary statistics timer, accumulate the value under
dev.em.N.memory_errors.detected_packet_buffer, and clear the hardware
counter while preserving correction and reserved register state. Do not
enable its shared interrupt: the register does not distinguish corrected
from uncorrectable events and does not provide a safe fatal recovery
policy.
Validated on a dual port 82571EB. Both functions reported zero after a
clean boot, and a controlled link down/up cycle left the counter at zero
while the management link recovered at 1 Gb/s without issue.
Sponsored by: BBOX.io
(cherry picked from commit aec0f1b85b54d14819747ed3364f366d21e76d88)
iflib: Plumb per-packet RX hardware timestamps to mbufs
Add iri_rcv_tstmp to if_rxd_info so an isc_rxd_pkt_get() driver can
report a hardware RX timestamp. Copy it into m_pkthdr.rcv_tstmp,
reusing the generic mbuf timestamp path.
Widen iri_flags from uint8_t to uint32_t and define the flags drivers
may supply. Mask the flags before copying them into the mbuf so no
other mbuf state can leak through the driver callback.
Place the timestamp next to iri_frags to avoid an alignment hole, and
document its nanoseconds-since-boot representation and validity flags.
Bump __FreeBSD_version because changing if_rxd_info breaks KBI.
Reviewed by: gallatin
Signed-off-by: Sreekanth Reddy <sreekanth.reddy at broadcom.com>
Differential Revision: https://reviews.freebsd.org/D58638
Initialize PBQP Pass for Clang (#217954)
As mentioned in discussion on
https://github.com/llvm/llvm-project/issues/16391, the PBQP allocator is
not available to clang despite existing in the backend. This updates
code to initialize the pass and make it available to clang.