[flang] Add utility to obtain presentable function name (#199067)
This PR adds `getPresentableFunctionName` utility to enable obtaining
the demangled and no underscore function name that can be used for
presentation for a user and is consistent with the name used in source
code.
[libc][math] Add gcc-7 to 9 compatibility for shared math. (#197868)
- Add more fine-grained constexpr annotations.
- Apply fine-grained constexpr annotations to `src/__support`,
`src/__support/FPUtil` folder.
- Remove or update constexpr annotations for functions in
`src/__support/math` folder.
- Fix or ignore old gcc's warnings.
Assisted-by: Gemini 3.1 Flash with step 3.
[clang-doc] Removed OwnedPtr alias (#190427)
The alias served a purpose during migration, but now conveys the wrong
semantics, as the memory of these pointers is interned inside a local
arena.
[PowerPC][NFC] Change arguments of PPCPostRAExpPseudo/PseudoXFormMemOp (#198861)
The assembler string of the pseudo is almost always a # followed by the
name of the pseudo. A good part of the pseudos does not have a pattern.
Changing the order of arguments asmstr and pattern in PPCPostRAExpPseudo
and PseudoXFormMemOp, and assigning default values, reduces repetitions.
[AMDGPU] Use pessimistic fixpoint in AAAMDGPUMinAGPRAlloc for sanitized functions (#197795)
Adding pessimistic fixpoint when a function has any sanitizer attribute
(`sanitize_address`, `sanitize_memory`, `sanitize_thread`,
`sanitize_hwaddress`, `sanitize_mem_tag`). This prevents the Attributor
from inferring "amdgpu-agpr-alloc"="0" for sanitized functions or their
callers, letting the register allocator conservatively reserve AGPR
capacity.
This patch should prevent kernel to exceeds the hardware register budget
on gfx90a where VPGR and AGPR share the same physical register file.
---------
Co-authored-by: Brendon Cahoon <Brendon.Cahoon at amd.com>
Harden default dataset config for NAS storage
This commit changes our defaults for newly created filesystems
that are outside of namespaces for root filesystems for apps and
containers. Specifically, we're now setting noexec, nosuid, and
nodev by default to more closely align with storage industry
best practices. No migration is one for existing data.
The noexec property is exposed to users because there is
prior precedence for allowing users to toggle on/off (apps may
want to execute scripts provided on generic NAS storage), but
other options are not exposed directly to users in the
pool.dataset.create API.
[clang-doc] Removed OwnedPtr alias
The alias served a purpose during migration, but now conveys the wrong
semantics, as the memory these pointers reference is interned inside
a local arena, and doesn't convey any sort of ownership.
[clang-doc] Use distinct APIs for fixed arena allocation sites (#190426)
Typically, code either always emits data into the TransientArena or the
PersistentArena. Use more explicit APIs to convey the intent directly
instead of relying on parameters or defaults.
[CIR] Fix atomic-fetch conflict: (#199066)
We had #195537 and #198871 both attempt to fix the same problem, in
mildly different ways. My patch (the latter) did so in a way that was
rendered 'moot' by the former patch.
After looking into it further, I believe that the former is the
'correct' patch.
THIS patch is a partial revert of my patch, leaving the lambda (as I
think it is a good 'readability' improvement), plus leaving/updating
the test.
[AMDGPU] Skip bridge copies for grouped MFMA instructions (#198555)
When the MFMA-form rewrite moves a chain of matrix ops from VGPR to AGPR
form, the bridges between ops in the chain don't exist post-rewrite,
instead they all live in AGPR-form together. The cost model was counting
those phantom bridges and rejecting rewrites that were actually
profitable.
Treat the candidate set as a group. Edges inside the group need no
bridge. Skip candidates whose results escape to non-matrix users.
Co-author: Vlad Romanov <Vladislav.Romanov at amd.com>
[mlir][docs] Fix bugs in data flow analysis code example (#198200)
Some minor changes to avoid compilation errors.
1. `MetadataLatticeValue` doesn't define an `insert` method.
2. `it` (the one that changed) and `rhsIt` are both iterators.
[clang] Allow clang only write module/pch when output is different (#198881)
Add an parameter to the output file creation function in clang to allow
it to configure output backend to only write output if the file is
different from the file on the disk. This is useful in a legacy build
system where the incremental build state is tracked by timestamp. For
example, producing the same clang module in the build will not update
the timestamp, thus downstream jobs do not need to be re-run.
The default value is not change so NFI is expected. This is only to
allow clients need such behavior to enable when needed.
Patched-by: hjyamauchi
Co-authored-by: Hiroshi Yamauchi <56735936+hjyamauchi at users.noreply.github.com>
p9fs.4: MLINK to virtio_p9fs.4
Technically, virtio_p9fs is an emulated device that masquerades
as a p9fs mount, but it does not make sense to have two separate manual
pages.
Reviewed by: bnovkov, dfr
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D57013
(cherry picked from commit 30f500e97b57d36ebb8483cb8b8921507350cd0f)
iSCSI ALUA: regression test for failover LUN-replace stall
Add an extended test that builds 2 targets (25 + 10 LUNs), opens an
iSCSI session to the standby on the 25-LUN target so the kernel has
tgt_devs to clean up during become_active, then triggers an ungraceful
failover via poweroff_vm. Asserts:
- /var/log/failover.log on the new master does not contain
'Failed to restart service "iscsitarget" after 15 seconds',
which would indicate the LUN-replace loop stalled.
- /sys/kernel/scst_tgt/async_lun_replace reads 0 after failover,
confirming reset_active released the parked cleanup work.
- All LUNs are reachable on the new master.
A function-scoped fixture handles recovery (start_vm, wait_for_backup,
wait_for_settle) so the cluster is restored to a clean two-node state
even if an assertion above failed.
Uses the dataset() asset helper rather than zvol() for lower
per-extent overhead at this scale.
Release parked async LUN-replace cleanup after DLM peer eviction
scst.async_lun_replace=1 now also tells the kernel to park the deferred
cleanup of old tgt_devs from each LUN replace until the flag is cleared.
This avoids stalling become_active on scst_dlm_lock_wait inside
scst_clear_reservation while the dead peer is still a DLM lockspace
member.
Add iscsi.scst.disable_async_lun_replace and call it from the end of
iscsi.alua.reset_active, after dlm.reset_active (which evicts the peer)
completes.