victorialogs*: Update to 1.53.0
Breaking changes:
Update note 1: the /internal/force_merge, /internal/force_flush,
/internal/log_new_streams and /internal/partition/* HTTP endpoints now
require the POST method for security reasons, in order to prevent
GET-based SSRF attacks. Update any scripts or automation calling
these endpoints via GET to use POST. See #1635.
Update note 2: requests to /select/vmalert/-/reload and other
/select/vmalert/* paths ending with /config or /reload now require the
-httpAuth.* credentials for security reasons. Previously, such requests
were proxied to vmalert without checking the credentials. Add the
credentials to any scripts calling these paths. See #11548.
Rest of changes, see full release notes at:
https://github.com/VictoriaMetrics/VictoriaLogs/releases/tag/v1.53.0
ZIL: avoid repeated dirty registration in an active TXG
Register the ZIL when initializing its itxg for the active TXG. The
itxg lock serializes initialization with other writers and zil_clean(),
which resets itxg_txg before the ZIL leaves the dirty list.
Keep real-TXG registration for frozen pools.
Signed-off-by: George Melikov <mail at gmelikov.ru>
Reviewed-by: Matthew Ahrens <matt at mahrens.org>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Closes #19689
[flang][OpenMP] Add explicit SHARED locality specifier representation (#238039)
Add `fir.local {type = shared}` to explicitly represent the SHARED
locality specifier in FIR. This prepares for future DEFAULT(NONE)
support, where we need to distinguish "explicitly shared" from
"implicitly shared" variables.
The `fir.local {type = shared}` op is created at the module level during
lowering but is NOT placed in the loop's the loop's locality specifier
operands (aka `local_vars`). SHARED variables continue to use
`copySymbolBinding`, making them implicit live-ins to `omp.parallel` —
which is the correct OpenMP shared semantics. The `fir.local` op serves
as documentation of the programmer's intent and is cleaned up by
`DoConcurrentSpecifierOpConversion` in CodeGen.
The `fir.local` op is deliberately kept out of `local_vars` to preserve
the existing block argument remapping logic in DoConcurrentConversion's
`matchAndRewrite()`, which assumes a 1:1 correspondence between
`local_vars` entries and the privatizer block args on `omp.wsloop`
[27 lines not shown]
LinuxKPI: Add drm support to dev_is_pci() function
drmn driver is attached to PCI bus via intermediate vgapci driver.
Check for it presence in device tree branch too to handle drm-kmod
cases.
MFC after: 2 month
Reviewed by: emaste (LGTM)
Differential Revision: https://reviews.freebsd.org/D60138
vt_vga: repost only a vgapci(4) video device
When vt(4) falls back to vt_vga, vga_init() passes vd_video_dev to
vga_pci_repost(), which expects a vgapci(4) device. The framebuffer
driver that set it need not provide one: drm-kmod's linux_fb passes the
parent of the DRM parent device, which is vgapci for LinuxKPI PCI
drivers but the PCI bus for virtio-gpu, whose DRM parent is the virtio
PCI transport. On x86, vga_pci_repost() then calls pci_get_class() on
the bus, which fails the accessor's KASSERT under INVARIANTS; without
INVARIANTS the class reads as 0 and the repost is skipped. Repost only
a vgapci device.
Signed-off-by: Denis Borovikov <denis.borovikov at gmail.com>
Reviewed by: wulf
Differential Revision: https://reviews.freebsd.org/D60880
[AMDGPU] Price misaligned flat and LDS accesses with the LDS misaligned bug
In WGP mode on subtargets with the LDS misaligned bug, a flat access is
split into pieces no wider than its alignment and no narrower than 4
bytes, and an LDS access aligned below 4 bytes uses 8-byte pieces as one
aligned to 4 does.
[AMDGPU] Price buffer fat pointer memory operations
Price buffer fat pointer accesses as global accesses, except that an
aligned load is not widened and a vector of odd width elements is not
split element by element. Without relaxed buffer bounds checking, a
vector of elements that are a multiple of 32 bits wide is accessed in
pieces no wider than its alignment and no narrower than 4 bytes, and a
vector of other byte-sized or power of 2 wide elements in pieces of the
largest power of 2 bytes that divides the element size. The width comes
from buffer fat pointer lowering, which now exposes it. When the pointer
is a buffer resource plus a constant offset, the offset and a constant
number of records give the same bounds facts lowering uses to access it
in wider pieces.
bnxt: avoid unintialized use of media_type in bnxt_add_media_types()
When 5e6e4f752833 landed, it inadvertently allowed unsupported / unknown
phys with a valid link_info->sig_mode to use media_type uninitialized.
Fix this by returning from those cases that do not assign a media_type
so as to avoid using it uninitialized.
Reported by: imp (forwarding an llm's post-commit review of previous
changes to this file)
Fixes: 5e6e4f752833
Reviewed by: imp, kbowling, sumit.saxena_broadcom.com
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D61164
iflib: prefer simple_tx over mp_ring
In preparation for removing mp_ring, enable simple_tx by default.
Users encountering bugs are still able to set the tunable:
net.iflib.prefer_mpring="1"
at boot, but are encouraged to report any regressions so they
can be fixed.
My plan is to remove mp_ring assuming no major bugs are found in
simple_tx after a month or two.
Reviewed by: kbowling, netchild, rcm
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D61166
CodeGen: Remove kill flags on virtual registers from MIR tests (#236912)
Stop using them in test inputs in preparation for disallowing them in
the verifier. This batch covers the generic tests Cover the generic
tests and some of the smaller targets. Delete a test which only
checked kill flag maintenance.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[libsycl] implement property_list for sycl::queue (#232668)
Implements `sycl::property_list` with `property::queue::in_order` and
`property::queue::enable_profiling`, plus the property interface
(`has_property`/`get_property`, SYCL 2020 4.5.4.1) on `queue`, and the
`is_property`/`is_property_of` traits.
Implementation notes:
- A property is identified at run time by a value, `detail::PropKind`,
not by
the address of a per-property key. libsycl is built with
`-fvisibility=hidden`, so an address taken inside the library and the
same
address taken in user code do not match.
- Properties without data are kept as a bit of their kind in the list
itself,
so no property list libsycl can build today allocates; only a property
[4 lines not shown]
NAS-144924 / 28.0.0-BETA.1 / Keep other writers off S3 bucket datasets (#20069)
## Problem
The truenas_s3 daemon protects its own objects (retained versions are
immutable) and refuses a bucket whose dataset was nested or moved, but
it leaves it to middleware to keep other shares and tasks from being
pointed at a BUCKET bucket's dataset. Middleware only checked a writer
whose own path was at or inside a bucket, and only on save, so it was
easy to point a writable share or task at a parent dataset by mistake,
and some path-based writers never ran the check. Renaming a dataset that
held a bucket also left the bucket row on the old name.
## Solution
These are best-effort guard rails against misconfiguration.
- **Writers above a bucket.** Writable shares and tasks whose writes
cross into child mounts, home directories and the anonymous FTP root are
refused on or above a bucket's dataset, on save and on enable. Creating
or recovering a bucket where such a writer already reaches it is refused
too, and rsync and cloud sync pulls re-check before each run.
[9 lines not shown]
Implement process_vm_readv and process_vm_writev functions (#237705)
### Summary
This patch implements the Linux-specific system call wrappers
`process_vm_readv` and `process_vm_writev` in `<sys/uio.h>`.
Fixes #236162
### Implementation Details
- **Header Specification**: Updated `libc/include/sys/uio.yaml` to
include `linux` standards, the `pid_t` type dependency, and function
specifications for `process_vm_readv` and `process_vm_writev`.
- **Syscall Wrappers**: Added centralized syscall wrappers under
`libc/src/__support/OSUtil/linux/syscall_wrappers/` using
`syscall_checked<ssize_t>` following the project's syscall wrapper
guidelines (`libc/docs/dev/syscall_wrapper_refactor.md`).
- **Entrypoints**: Implemented public entrypoints in
`libc/src/sys/uio/linux/` with standard `libc_errno` reporting on error.
- **Architecture Support**: Registered the new entrypoints for Linux
[5 lines not shown]
[AArch64] Disallow expandloads in masked load patterns (#238790)
This resulted in some miscompiles for cases where expandloads are not
actually supported, e.g.: https://llvm.godbolt.org/z/Wj3fddGjh
[clang][CodeGen] Handle asm goto in VarBypassDetector (#238551)
Teach VarBypassDetector to recognize GCCAsmStmt with isAsmGoto() in
hasJumpStmts(), BuildScopeInformation(), and Detect() so lifetime
markers are suppressed when an asm goto jumps into a local variable's
scope past its declaration (avoiding emitting @llvm.lifetime.start only
on the fallthrough path).
Also emit -ftrivial-auto-var-init initializations ahead of the asm goto
callbr terminator (and record forward asm gotos in
BypassingForwardJumps)
for any variable declarations bypassed by an asm goto, matching goto and
switch.
Link: https://github.com/llvm/llvm-project/pull/219045
Assisted-by: Gemini
[GlobalISel][AArch64] Pre-commit PHI legalization tests around invokes
Cover a real invoke result and a vector PHI on an unwind edge. Check scalar
narrowing and vector splitting directly in LegalizerHelper tests so artifact
combining cannot hide misplaced conversions.
Record the current conversion placement for the subsequent dominance fix.
Temporarily disable machine verification in the IR test to capture the
existing use-before-definition output.
[GlobalISel] Preserve dominance when legalizing invoke-result PHIs
PHI legalization inserts conversions before the first terminator so they
execute on unwind edges. An invoke result is defined after the invoke-region
marker, however, and placing its conversion before that marker creates a
use before definition.
Keep the existing insertion point for values available before the invoke,
and insert after the definition for values produced inside the region.
Use the same rule for scalar and vector PHI resizing. This also ensures
vector widening for unwind PHIs executes before a potentially throwing call.
Update the pre-committed IR and helper-level checks and enable machine
verification in the IR test.