uiomove_*: centralize the copy function selection
Add a uiomove_step() for the central set of switch statements which
choose between userspace and kernel and if data is going to or from the
iovec.
Refactor uiomove_fromphys loops to unconditionally free per-iteration
resources and drop gotos.
While here, switch from bcopy to memcpy.
Reviewed by: kib
Suggested by: emaste
Sponsored by: Innovate UK
Differential Revision: https://reviews.freebsd.org/D57688
pmap: prefer memcpy over bcopy
Alter pmap_copy_page(s) to use memcpy rather than the deprecated bcopy.
We'll be adding non-provenance preserving versions for CHERI support and
would like to avoid introducing variants of deprecated APIs just to
maintain symmetry.
Reviewed by: kib
Suggested by: emaste
Sponsored by: Innovate UK
Differential Revision: https://reviews.freebsd.org/D57687
[VPlan] Allow plain active lane mask in LastActiveLane verifier. (#204982)
Active lane masks are prefix masks. After simplifying the backedge, we
may end up with an active-lane-mask operand of LastActiveLane that does
not match the header mask predicate.
This fixes a verifier failure for the new test.
include a comment in the tm_wday = -1 codesample, since we are
trying to encourage this to become an idiomatic use pattern.
Everyone doing this, please copy the comment also.
ok tb
18172 ZFS tests spew false negatives after 17694
18173 test-runner: autotests sections ignore tag filtering
18168 improve test runner pre and post logic
Reviewed by: Bill Sommerfeld <sommerfeld at hamachi.org>
Approved by: Robert Mustacchi <rm at fingolfin.org>
graphics/py-visvis: Add backends and switch to Qt6
The PySide-Qt6 backend has been added, so users can now choose to use
PyQt and/or PySide, or neither.
PR: 296093
kern_exec.c: explicitly include sys/limits.h for UINT_MAX
While there, remove unneeded manual inclusion of sys/cdefs.h.
Fixes: e1a84b7708c2 ("execve_block(): a mechanism for mutual exclusion with execve() on the process")
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Avoid netlock dance in cad(4) ioctl.
While interface ioctl(8) is moving towards better parallel access,
drivers assuming exclusive netlock and unlocking explicitly cause
trouble. Use the drivers own configuration lock for protection.
Do not wait for task barriers while potentially holding the netlock.
Panic reported by Mark McBride and Thomas Pries.
Tested by dlg@; OK dlg@ mvs@
Convert support plugin to typesafe pattern
The support plugin was an old-style dict-based `ConfigService`. This converts it to the typesafe pattern: a lean `GenericConfigService[SupportEntry]` service class delegating to a `ConfigServicePart`, with `generic = True`, `check_annotations=True` on every public method, and typed `call2` for same-process calls.
- **Package split**: `plugins/support.py` becomes `plugins/support/` with `__init__.py` (lean service), `config.py` (`SupportModel` + `SupportConfigServicePart` holding `do_update`/`validate`), and `execute.py` (the `post` helper plus the `similar_issues`/`new_ticket`/`attach_ticket` logic as `ServiceContext`-typed functions).
- **API models**: decoupled `SupportAttachTicketArgs` from `@single_argument_args` into an explicit `SupportAttachTicket` inner model plus a plain wrapper (wire shape unchanged) so the method param can be annotated and field-accessed under `check_annotations`; exported every directly-imported model in `__all__`.
- **Registration**: registered the service in `main.py`'s `ServiceContainer` and added the plugin dir to `mypy.yml`.
- **Internal consumers**: `alert/source/proactive_support.py`, `alert/runtime.py`, and `truenas/tn.py` now use attribute access on the returned `SupportEntry` and typed `call2`/`context.call2` (constructing `SupportNewTicketEnterprise`) instead of dict access and string `middleware.call`.
The public wire shape is unchanged; live verification on the test VM confirmed read-only outputs, the update round-trip, the required-field validation path, and the ProactiveSupport alert consumer all behave identically to before.
[Xtensa] Call isUInt<8> in range-check asserts (#204731)
`printOffset8m8_AsmOperand` and `getSelect_256OpValue` assert on
`isUInt<8>` without calling it, so the expression takes the function's
address and the range check never runs. This also trips
`-Werror,-Wpointer-bool-conversion` in builds with assertions enabled.
Pass the operand value so the bound is actually checked.
Add scheduled apps backup to another pool
This commit adds changes to let the Docker config drive an automated apps-dataset backup to another pool on a cron schedule, disabled by default and weekly (Sunday) when enabled. The scheduled run reuses docker.backup_to_pool, skips/alerts gracefully when the source or target pool is unavailable, and prunes older source snapshots so the schedule doesn't accumulate them indefinitely.