NAS-145072 / 28.0.0-BETA.1 / Use truenas_smbhad for SMB stateful failover (#20072)
Samba now replicates SMB durable handles to the standby controller with
the truenas_smbhad daemon. This replaces the ctdb implementation.
- Remove ctdb and the clustered TDB code. passdb, group mapping, share
ACLs and secrets are local to each controller again.
- Stop setting "clustering" in smb.conf.
- Write /etc/truenas_smbhad.conf with the controller node on HA systems.
Reload the daemon when a license change modifies the file.
- Keep smbd stopped on the standby. Restart it on takeover, because it
restores handles only at startup.
- Log the daemon to /var/log/truenas_smbhad.log.
- Remove the update block for stateful failover.
- Add unit tests and HA tests.
(cherry picked from commit c8c7637c9900712008384d8f97d55fe6b78a2b23)
(cherry picked from commit dec4ce4c04aa435feec7f6d26b3c061485d15b46)
[OpenMP] Apply fixes to clause/directive descriptors
- Remove NOWAIT from TASKWAIT in 5.0.
- Remove ORDER from DISTRIBUTE in 5.0.
- Remove THREAD_LIMIT from TARGET in 5.0.
- Remove variable-category modifier from DEFAULT in 5.0-5.2.
- Remove ALLOCATE from SCOPE in 5.1.
- Remove FIRSTPRIVATE from SCOPE in 5.1.
[CodeGen] Convert a few more tests to use CIR runlines (#239826)
Same as my previous approaches, this converts 12 'slightly higher' touch
versions. Each of these were cases where the only difference in
checked-IR is the SSA name, so this generalizes check-lines slightly to
wqork with both.
[LifetimeSafety][NFC] Use ignoreParensAndImpCasts consistently (#240733)
Follow-up to #240104. Replace the remaining `IgnoreParenImpCasts()`
calls in LifetimeSafety with `ignoreParensAndImpCasts()`.
NFC: at these call sites, not skipping `MaterializeTemporaryExpr` and
`SubstNonTypeTemplateParmExpr` does not change the result.
Assisted-by: Claude Opus 5.5
tests/sys/pmc: add pidtrack, callchain, pmc(8), RAPL and AMD tests
Add to the suite of ATF tests for hwpmc(4). Vendor-neutral tests go in
tests/sys/pmc; tests that depend on AMD hardware interfaces go in
tests/sys/pmc/amd, which is only built on amd64.
tests/sys/pmc:
pmc_pidtrack_test process-mode PMCs follow their PID: a live
self-read counts the process' own work, an idle
process sharing the CPU with a busy one does not
pick up its work, and the count survives a
context switch
pmc_callchain_ur_test pmcstat -U collects user callchains through the
PMC_UR ring; regression test for the KASSERTs
fixed in rGaf3929c5152b and rG66118c3f1011
pmc_cli_test pmc(8): missing log, list-events, record/info
round trip with the "instructions" alias
pmcstat_tsc_test (amd64) tsc_freq in the initlog record, TSC
column of pmcstat -R, tsc in pmc filter -j,
[29 lines not shown]
asmc: do not enable the sudden motion sensor on the MMIO backend
The interrupt filter reads the PIO interrupt port, but sc_ioport is NULL
under MMIO; the capability test only probed for keys, which says nothing
about the backend.
No MMIO-capable machine has a sudden motion sensor anyway. It existed to
park the heads of spinning disks.
Reviewed by: adrian
Differential Revision: https://reviews.freebsd.org/D61383
[CIR] Skip function bodies imported from other named modules (#239686)
When a function's body comes from another named module, CIRGen now emits
just a declaration instead of hitting an errorNYI. always_inline
template instantiations still get their bodies, since a library may not
provide symbols for them.
Assisted-by: Cursor / Claude Opus 5.5
NAS-145072 / 27.1.0 / Use truenas_smbhad for SMB stateful failover (by anodos325) (#20166)
Samba now replicates SMB durable handles to the standby controller with
the truenas_smbhad daemon. This replaces the ctdb implementation.
- Remove ctdb and the clustered TDB code. passdb, group mapping, share
ACLs and secrets are local to each controller again.
- Stop setting "clustering" in smb.conf.
- Write /etc/truenas_smbhad.conf with the controller node on HA systems.
Reload the daemon when a license change modifies the file.
- Keep smbd stopped on the standby. Restart it on takeover, because it
restores handles only at startup.
- Log the daemon to /var/log/truenas_smbhad.log.
- Remove the update block for stateful failover.
- Add unit tests and HA tests.
Original PR: https://github.com/truenas/middleware/pull/20072
Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
textproc/groff-pdfmark
Adding groff-pdfmark package to make available the pdfmark macros and supporting scripts that were removed from the main groff distribution in recent versions.
libpmc: Strip leading zeros from the cpuid model
Upstream's mapfile.csv lists models without leading zeros, so entries
for models below 10h had to be fixed up by hand on every import. Strip
them before matching and use the entries as imported.
Add tests to validate the functionality.
Reviewed by: mhorne, Ali Mashtizadeh <ali at mashtizadeh.com>
Sponsored by: Advanced Micro Devices, Inc.
MFC after: 1 week
Signed-off-by: Osvaldo Janeri Filho <ojanerif at amd.com>
Differential Revision: https://reviews.freebsd.org/D60790
Speed up std::invoke() compile times and rename __invoke_result_t to __direct_invoke_result_t (#213403)
This may surface a pre-existing recursive template instantiation compiler bug (#236677) in user code.
[CIR] Emit llvmOpProps setters straight from the dag
Every generated llvmOp body now starts from a `props` local, and the
setters are written while walking the llvmOpProps dag, so the
ForwardedProp struct and its parse helper go away. The emitter checks
only the entry shape; a name that is not an argument of the op fails to
compile in the generated code.
Assisted-by: Claude Code (Claude Opus 5.5).
[LifetimeSafety] Start alias chain search at the use instead of the block end (#240655)
Within the use's block, the alias chain search started from the block
end, so it could report an alias path through a flow that only happens
after the use:
```cpp
struct S {
int *p_;
void bar();
void f() {
int *q;
{
int num;
int *p = #
p_ = p; // note: 'p' aliases 'num' (after)
q = p; // note: 'p' aliases 'num' (before)
}
bar(); // reads p_
[11 lines not shown]
[LifetimeSafety] Don't drop the last alias note for chains from a declaration (#240654)
`dropLeadingLoads` removes the casts at the front of an alias chain
because, when the chain starts from an expression such as the copy in
`return v;`, they only load the variable that the warning already points
at. When the chain starts from a declaration instead, those casts come
from the write that stored the loan, so dropping them loses the alias
closest to the use.
```cpp
struct S {
int *p_;
void bar();
void f() {
{
int num;
int *p = #
int *q = p; // note: 'p' aliases 'num'
p_ = q; // note: 'q' aliases 'num' (missing before)
[16 lines not shown]