NAS-141411 / 27.0.0-BETA.1 / Relax special class vdev consistency validation (#19142)
This commit relaxes the consistency checks for vdev types used in
special vdevs. Doing a mix-and-match topology is considered to be a
deviation generally from best practice, but as long as the administrator
is careful to make sure they don't spread it too wide (for example,
mirror + 5-wide RAIDZ1) then the impact should be relatively minor.
Allowing this is generally a loaded foot-gun for administrators since
the topology changes cannot be undone once they are committed; and if
they run into performance issues related to the imbalanced topology then
they may have little recourse to fix the issues. It is generally best
for users to follow best practices as defined by the support /
engineering teams, but we are relaxing in this case to allow more user /
product flexibility.
[SLP][NFC] Remove extra checks from analyzeRtStrideCandidate() (#205415)
These checks duplicate the functionality of the additional checks added
in #204013
Add vm.get_guest_network_interfaces API method
Queries the QEMU guest agent virtio-serial channel via
truenas_pylibvirt to return the guest's network interfaces without
requiring IP-layer connectivity to the guest.
NAS-141545 / 26.0.0-RC.1 / proxy nginx-middleware over a private unix socket (by anodos325) (#19196)
This commit changes our proxy settings for nginx so that UI / API
traffic goes to a www-data-owned unix socket instead of loopback
127.0.0.1:6000.
Connections on the unix socket are classified as TCP origins from the
X-Real-Remote-* headers, so auth behavior is unchanged. Loopback :6000
is now bound only on vendored systems. HA heartbeat is unaffected.
Original PR: https://github.com/truenas/middleware/pull/19189
Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
[CIR] Wire const goto labels into indirect branch
A computed goto through a constant dispatch table -- the GNU idiom
`static const void *tbl[] = {&&L1, &&L2}; goto *tbl[i];` -- reached
errorNYI("Indirect goto without a goto block") in emitIndirectGotoStmt.
#203644 emits the label-address constant (a value-like
#cir.block_addr_info) into the table, but it takes a label's address in a
constant context without registering the label as address-taken, so no
indirect-goto block is created and the following goto *tbl[i] has nothing
to branch to.
VisitAddrLabelExpr in the constant emitter now records each label via
takeAddressOfConstantLabel, which instantiates the indirect-goto block
and tracks the label. finishIndirectBranch then adds those labels as
cir.indirect_br successors, alongside the existing op-form labels. A
label named more than once in a table (`{&&A, &&A, &&B}`) is kept as a
distinct successor each time, matching classic codegen's
`indirectbr ... [label %A, label %A, label %B]`.
[5 lines not shown]
[OpenACC] add acc::ReductionAccumulateArrayOp (#205617)
Add an OpenACC Dialect operation to accumulate elements of a (private)
array across threads. This operation only specifies the PointerLikeType
and an acc::DataBoundsOp to represent the accumulation of the array at a
high level. This will ultimately get lowered by "codegen".
[docs] Enforce unambiguous toctree in llvm/docs
It seems like using a non-`hidden` `toctree` for page navigation is a
bit of a trap, in that every doc must have a single unique path through
the global toctree to the root doc, and it is very easy to end up with
multiple.
This patch tries to address the warnings (actually infos, hence why it
does not fail the build) in llvm/docs/, namely:
$ sphinx-build -b html -jauto llvm/docs/ /tmp/sphinx-out
checking consistency...
llvm/docs/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack.md: document is referenced in multiple toctrees: ['UserGuides', 'AMDGPUUsage'], selecting: UserGuides <- AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack
llvm/docs/AMDGPUDwarfExtensionsForHeterogeneousDebugging.rst: document is referenced in multiple toctrees: ['UserGuides', 'AMDGPUUsage'], selecting: UserGuides <- AMDGPUDwarfExtensionsForHeterogeneousDebugging
llvm/docs/CommandGuide/llvm-reduce.rst: document is referenced in multiple toctrees: ['CommandGuide/index', 'CommandGuide/index', 'Reference'], selecting: Reference <- CommandGuide/llvm-reduce
llvm/docs/GitHub.rst: document is referenced in multiple toctrees: ['GettingInvolved', 'UserGuides'], selecting: UserGuides <- GitHub
llvm/docs/GlobalISel/IRTranslator.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/IRTranslator
llvm/docs/GlobalISel/InstructionSelect.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/InstructionSelect
llvm/docs/GlobalISel/Legalizer.rst: document is referenced in multiple toctrees: ['GlobalISel/index', 'GlobalISel/Pipeline'], selecting: GlobalISel/index <- GlobalISel/Legalizer
[35 lines not shown]
[docs] Create utils/docs
llvm-project is home to many sphinx documentation sites, each with
configuration quirks and bespoke extensions.
The sphinx config model makes sharing code somewhat difficult. There
are options like sphinx-multiproject, but some of our docs builds are
out of the source tree while some are done out of the binary tree, so
the multiproject configuration itself would need to be generated. It
also would impose more uniformity around extensions than required.
This change instead creates a python package at utils/docs/llvm_sphinx
and makes it available to all sphinx-build processes via PYTHONPATH.
Each conf.py does not modify its own sys.path because not all builds are
out of the source tree, so there isn't a stable relative path to use to
refer to the utils/docs/ directory.
Type checking via pyright in new package is pinned to being python 3.8
compatible.
[29 lines not shown]
[docs] Add BOLTAArch64OptimizationStatus to toctree
Building docs-bolt-html fails with:
Warning, treated as error:
/home/slinder1/llvm-project/scratch/bolt/docs/BOLTAArch64OptimizationStatus.rst:document isn't included in any toctree
Just add the orphan document to the toctree in the index to silence
this. If there is a better parent it can be moved somewhere else in the
tree.
Change-Id: I1d26d96d5485d97d29231da89f8c8408b375c41f
Bump minimum required sphinx Python to 3.8
There seems to be de-facto use of at least 3.6 in docs, namely:
* Use of pathlib (3.4) in various places
* Format f-strings (3.6) and used in clang/docs/ghlinks.py
I don't see a strong reason to maintain the divide in minimum version
between test/docs, especially considering the "FIXME" indicating
the 3.0 lower bound was just a guess to begin with.
Change-Id: I11e00295ae0a13ec0f1c5cefbb2fdd2db272b152
Add vm.get_guest_network_interfaces API method
Queries the QEMU guest agent virtio-serial channel via
truenas_pylibvirt to return the guest's network interfaces without
requiring IP-layer connectivity to the guest.
[libc][math] Fix MPI_OVER_2 constant in atan2f_float (#205621)
Fix a typo in the size-optimized float-float implementation of atan2f
where MPI_OVER_2 (-pi/2) was defined identically to PI_OVER_2 (pi/2).
This caused atan2f to return incorrect values (off by pi) on targets
where the float-float path is selected (e.g. baremetal ARM Cortex-M
with hardware FMA/floating-point support) for inputs requiring
reciprocal range reduction, such as atan2f(10.0f, 1.0f).
[CodeGen] Add v2048bf16 vector type (#202386)
Define v2048bf16 vector type in ValueTypes.td. This is useful for
targets that support packed bf16 operations with large vector widths
(e.g. Google TPU).
15725 Replace uselocale(NULL) with __curlocale() in libc
Reviewed by: Robert Mustacchi <rm at fingolfin.org>
Approved by: Dan McDonald <danmcd at Edgecast.io>
pciconf: Add option to write into a BAR region
Add option -W that allows to write into a BAR region.
Also, add an option -R that allows to read from a BAR region that
works similar to -r that reads from the PCI config space.
Reviewed by: bcr (manpages), jhb
Differential Revision: https://reviews.freebsd.org/D55915
Revert "[Dexter] Add ability to rewrite scripts to fill-in unknown values" (#205657)
Reverts llvm/llvm-project#202799 to fix the failing
cross-project-tests::debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_expect_list.cpp
test and unblock pre-commit CI.
Long ago, we took advantage of the "status" property to avoid attaching
drivers to devices reporting themselves as in failing state.
However, doing this on Mostek chips with dead batteries would cause no
clock source to attach, and the kernel would then assume it is running on
sun4v with the unix-gettod? OFW method being available, causing spurious
(and puzzling) warnings on console on non-sun4v systems.
Relax this logic to allow clock(4) to always attach regardless of its state,
but distrust the clock value on devices reported as failing.
This allow e.g. Enterprise 4000 systems with dead batteries on all
motherboards to correctly attach clocks and hold the date on warm reboots,
without scaring users.
ok kettenis@ quite some time ago.
[gn] Fix oversight from cf6527a49669c796b (#205660)
Without this, the interception/interception.h include in
InstProfilingPlatformROCm.cpp isn't found.
[flang][OpenMP] Support lowering of metadirective (part 3)
Enable metadirective lowering for loop-associated variants such as
`do`, `simd`, `parallel do`, and `do simd`.
When a metadirective resolves to a loop-associated directive, the
associated DO construct is made available to the selected variant so
existing OpenMP loop lowering can process it. Standalone metadirectives
use the following sibling DO evaluation, while begin/end metadirectives
use the first substantive nested evaluation from the metadirective block.
Loop induction-variable data-sharing attributes are marked during
lowering because semantic analysis cannot know which variant will be
selected. The temporary attributes are scoped to the selected variant so
DSA state does not leak between alternatives.
Dynamic metadirective selection also preserves the associated DO
evaluation when a runtime condition may choose either a loop-associated
variant or a standalone fallback. This keeps fallback lowering from
[13 lines not shown]