nx_swarm_admit_gate.nx source
↩ module page · 51 lines · 3603 B
1// nx_swarm_admit_gate.nx -- gate for the general swarm admission capability.
2// T1 PURE verdict table (deterministic, the SOTA-honest core): idle->GRANT, load>=ncpu->DENY-LOAD
3// (the anti-load-105 tooth), low-RAM->DENY-RAM, at-concurrency-cap->QUEUE, headroom-ok->GRANT.
4// T2 precedence: DENY-LOAD beats DENY-RAM beats QUEUE (a saturated box denies before queuing).
5// T3 live smoke: sa_admit_live reads real telemetry and returns a VALID verdict (0..3); a tiny
6// est with a huge concurrency cap on a non-saturated box must not spuriously DENY-RAM.
7// license_tier: ORIGINAL expect_exit: 0
8import "nx_swarm_admit.nx"
9import "nx_gate_verdict.nx"
10
11func main(argc: i64, argv: *i64) -> i64 {
12 std_putln("SWARM-ADMIT-GATE: general host-oversubscription admission (the anti-load-105 capability)" as *u8)
13 var pass: i64 = 0
14 // T1 verdict table: (load1, ncpu, avail_mb, est_mb, floor, held, max_conc)
15 let idle: i64 = sa_verdict(3, 16, 12000, 4000, 2048, 0, 2) // plenty -> GRANT
16 let hot: i64 = sa_verdict(16, 16, 12000, 4000, 2048, 0, 2) // load==ncpu -> DENY-LOAD
17 let over: i64 = sa_verdict(40, 16, 12000, 4000, 2048, 0, 2) // load>ncpu -> DENY-LOAD
18 let lowram: i64 = sa_verdict(3, 16, 3000, 4000, 2048, 0, 2) // 3000<4000+2048 -> DENY-RAM
19 let atcap: i64 = sa_verdict(3, 16, 12000, 1000, 2048, 2, 2) // held==cap -> QUEUE
20 let okcap: i64 = sa_verdict(3, 16, 12000, 1000, 2048, 1, 2) // held<cap -> GRANT
21 if idle == SA_GRANT && hot == SA_DENY_LOAD && over == SA_DENY_LOAD && lowram == SA_DENY_RAM && atcap == SA_QUEUE && okcap == SA_GRANT {
22 pass = pass + 1; std_putln("T1 PASS verdict table (grant/deny-load/deny-ram/queue)" as *u8)
23 }
24 if idle != SA_GRANT || hot != SA_DENY_LOAD || over != SA_DENY_LOAD || lowram != SA_DENY_RAM || atcap != SA_QUEUE || okcap != SA_GRANT {
25 std_putln("T1 FAIL verdict table" as *u8)
26 }
27 // T2 precedence: saturated + low-ram + at-cap all true -> DENY-LOAD wins (deny before queue)
28 let prec1: i64 = sa_verdict(40, 16, 100, 4000, 2048, 5, 2) // all bad -> DENY-LOAD
29 let prec2: i64 = sa_verdict(3, 16, 100, 4000, 2048, 5, 2) // ram+cap bad -> DENY-RAM (before QUEUE)
30 if prec1 == SA_DENY_LOAD && prec2 == SA_DENY_RAM {
31 pass = pass + 1; std_putln("T2 PASS precedence (deny-load > deny-ram > queue)" as *u8)
32 }
33 if prec1 != SA_DENY_LOAD || prec2 != SA_DENY_RAM { std_putln("T2 FAIL precedence" as *u8) }
34 // T3 live smoke: valid verdict from real telemetry; tiny est + huge cap must not DENY-RAM falsely
35 let lv: i64 = sa_admit_live("gate-smoke" as *u8, "test" as *u8, 10, 0, 1000000)
36 var t3ok: i64 = 0
37 if lv >= 0 && lv <= 3 { if lv != SA_DENY_RAM { t3ok = 1 } }
38 if t3ok == 1 { pass = pass + 1; std_putln("T3 PASS live telemetry returns a valid verdict, no false DENY-RAM" as *u8) }
39 if t3ok == 0 { std_puts("T3 FAIL live verdict=" as *u8); std_pdec(lv); std_puts("\n" as *u8) }
40 std_puts("SWARM-ADMIT-GATE pass=" as *u8)
41 std_pdec(pass)
42 // MIGRATED onto nx_gate_verdict by nx_gate_dry_apply (D001, minimal form): every check
43 // row above is untouched, so the PASS/FAIL vector cannot change; only the hand-rolled
44 // verdict emission is replaced by the ONE shared base class. Proven by nx_gate_migrate verify.
45 let ctr__dry: *i64 = gv_ctr()
46 ctr__dry[0] = pass
47 ctr__dry[1] = 3
48 let rc__dry: i64 = gv_verdict("SWARM-ADMIT-GATE" as *u8, ctr__dry, "teeth unchanged; verdict emission migrated onto the shared base class" as *u8)
49 sys_exit(rc__dry)
50 return rc__dry
51}