code wiki / (root) / nx_headroom_gate.nx

nx_headroom_gate.nx source

↩ module page · 119 lines · 6900 B

1// nx_headroom_gate.nx -- liar-killed GATE for the spawn-time headroom organ (seq1295). Forks the 2// REAL built elf against FIXTURE /proc files (the organ's path-override args exist for exactly this) 3// and proves the DERIVED MATH exactly: width = min(cap, cores/2, usable/cost), the mem floor refuses, 4// the load ceiling refuses, the gate verb passes/refuses on need_mb, and headroom.conf overrides bind. 5// usage: nx_headroom_gate [elf] Exit 0 on 7/7. 6// license_tier: ORIGINAL expect_exit: 0 7import "nx_syscalls.nx" 8 9const G_OUTCAP: i64 = 16384 10const G_TOTAL: i64 = 7 11 12func g_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 13func g_putn(v: i64) -> i64 { 14 if v == 0 { sys_write(1, "0" as *u8, 1); return 0 } 15 var m: i64 = v 16 let d: *u8 = sys_mmap(24); var k: i64 = 0 17 while m > 0 { d[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 18 let o: *u8 = sys_mmap(24); var w: i64 = 0 19 while w < k { o[w] = d[k-1-w]; w = w + 1 } 20 sys_write(1, o, k) 21 sys_munmap(d, 24); sys_munmap(o, 24) 22 return 0 23} 24func g_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } 25func g_bool(name: *u8, got: i64, want: i64, passp: *i64) -> i64 { 26 g_puts("T " as *u8); g_puts(name); g_puts(" got=" as *u8); g_putn(got) 27 if got == want { g_puts(" PASS\n" as *u8); passp[0] = passp[0] + 1 } else { g_puts(" FAIL\n" as *u8) } 28 return 0 29} 30func g_write(path: *u8, s: *u8) -> i64 { let fd: i64 = sys_openat_wr(path, 420); if fd < 0 { return 0 - 1 } sys_write(fd, s, g_slen(s)); sys_close(fd); return 0 } 31func g_has(hay: *u8, hn: i64, needle: *u8) -> i64 { 32 let nl: i64 = g_slen(needle) 33 if nl == 0 { return 0 } 34 var i: i64 = 0 35 while i + nl <= hn { var k: i64 = 0; var ok: i64 = 1; while k < nl { if hay[i+k] != needle[k] { ok = 0; k = nl } k = k + 1 } if ok == 1 { return 1 } i = i + 1 } 36 return 0 37} 38// fork elf with up to 6 args, capture stdout, return byte count. 39func g_run(elf: *u8, a1: *u8, a2: *u8, a3: *u8, a4: *u8, a5: *u8, a6: *u8, out: *u8, cap: i64) -> i64 { 40 let pb: *i64 = sys_mmap(16) as *i64 41 sys_pipe2(pb, 0) 42 let rfd: i64 = pb[0] & 0xFFFFFFFF 43 let wfd: i64 = (pb[0] >> 32) & 0xFFFFFFFF 44 let pid: i64 = sys_fork() 45 if pid == 0 { 46 sys_dup3(wfd, 1, 0) 47 sys_close(rfd); sys_close(wfd) 48 let av: *i64 = sys_mmap(80) as *i64 49 av[0] = elf as i64 50 var ac: i64 = 1 51 if a1 as i64 != 0 { av[ac] = a1 as i64; ac = ac + 1 } 52 if a2 as i64 != 0 { av[ac] = a2 as i64; ac = ac + 1 } 53 if a3 as i64 != 0 { av[ac] = a3 as i64; ac = ac + 1 } 54 if a4 as i64 != 0 { av[ac] = a4 as i64; ac = ac + 1 } 55 if a5 as i64 != 0 { av[ac] = a5 as i64; ac = ac + 1 } 56 if a6 as i64 != 0 { av[ac] = a6 as i64; ac = ac + 1 } 57 av[ac] = 0 58 sys_execve(elf, av, 0 as *i64) 59 sys_exit(127) 60 } 61 sys_close(wfd) 62 var tot: i64 = 0 63 var n: i64 = sys_read(rfd, out, cap - 1) 64 while n > 0 { tot = tot + n; if tot >= cap - 1 { n = 0 } else { n = sys_read(rfd, (out as i64 + tot) as *u8, cap - 1 - tot) } } 65 sys_close(rfd) 66 let st: *i64 = sys_mmap(16) as *i64 67 sys_wait4(pid, st, 0) 68 out[tot] = 0 as u8 69 return tot 70} 71 72func main(argc: i64, argv: *i64) -> i64 { 73 var elf: *u8 = "/tmp/nx_headroom.sov.elf" as *u8 74 if argc >= 2 { elf = argv[1] as *u8 } 75 let pass: *i64 = sys_mmap(16) as *i64 76 pass[0] = 0 77 78 // pin default conf so a stale override can never drift the math teeth 79 g_write("headroom.conf" as *u8, "floor_mb=4096 loadceil_centi_per_core=200\n" as *u8) 80 // fixtures: 8GB avail / load 1.00 / 8 cores + 2GB avail + load 99.00 81 sys_mkdir("/tmp/hrg" as *u8, 0x1ed) 82 g_write("/tmp/hrg/mem8g" as *u8, "MemTotal: 36921296 kB\nMemFree: 9000000 kB\nMemAvailable: 8388608 kB\n" as *u8) 83 g_write("/tmp/hrg/mem2g" as *u8, "MemTotal: 36921296 kB\nMemAvailable: 2097152 kB\n" as *u8) 84 g_write("/tmp/hrg/load1" as *u8, "1.00 0.50 0.10 1/100 999\n" as *u8) 85 g_write("/tmp/hrg/load99" as *u8, "99.00 50.00 20.00 30/635 17621\n" as *u8) 86 g_write("/tmp/hrg/cpu8" as *u8, "processor : 0\nprocessor : 1\nprocessor : 2\nprocessor : 3\nprocessor : 4\nprocessor : 5\nprocessor : 6\nprocessor : 7\n" as *u8) 87 88 let out: *u8 = sys_mmap(G_OUTCAP) 89 var n: i64 = 0 90 91 // T1 exact derived math: usable=8192-4096=4096, /512=8, cores/2=4, cap 16 -> width=4 92 n = g_run(elf, "width" as *u8, "16" as *u8, "512" as *u8, "/tmp/hrg/mem8g" as *u8, "/tmp/hrg/load1" as *u8, "/tmp/hrg/cpu8" as *u8, out, G_OUTCAP) 93 g_bool("width-derived-min-is-cores-half" as *u8, g_has(out, n, "ok width=4 " as *u8), 1, pass) 94 // T2 cap clamps below both 95 n = g_run(elf, "width" as *u8, "2" as *u8, "512" as *u8, "/tmp/hrg/mem8g" as *u8, "/tmp/hrg/load1" as *u8, "/tmp/hrg/cpu8" as *u8, out, G_OUTCAP) 96 g_bool("width-cap-clamps" as *u8, g_has(out, n, "ok width=2 " as *u8), 1, pass) 97 // T3 mem floor refuses (2GB avail < 4096 floor) 98 n = g_run(elf, "width" as *u8, "8" as *u8, "512" as *u8, "/tmp/hrg/mem2g" as *u8, "/tmp/hrg/load1" as *u8, "/tmp/hrg/cpu8" as *u8, out, G_OUTCAP) 99 g_bool("width-mem-floor-refuses" as *u8, g_has(out, n, "REFUSED reason=mem_floor" as *u8), 1, pass) 100 // T4 load ceiling refuses even with free memory (99.00 > 2.00*8) 101 n = g_run(elf, "width" as *u8, "8" as *u8, "512" as *u8, "/tmp/hrg/mem8g" as *u8, "/tmp/hrg/load99" as *u8, "/tmp/hrg/cpu8" as *u8, out, G_OUTCAP) 102 g_bool("width-load-ceiling-refuses" as *u8, g_has(out, n, "REFUSED reason=load_ceiling" as *u8), 1, pass) 103 // T5 gate verb passes a fitting need 104 n = g_run(elf, "gate" as *u8, "100" as *u8, "/tmp/hrg/mem8g" as *u8, "/tmp/hrg/load1" as *u8, "/tmp/hrg/cpu8" as *u8, 0 as *u8, out, G_OUTCAP) 105 g_bool("gate-need-fits" as *u8, g_has(out, n, "ok need_mb=100 " as *u8), 1, pass) 106 // T6 gate verb refuses an oversized need (8000 > usable 4096) 107 n = g_run(elf, "gate" as *u8, "8000" as *u8, "/tmp/hrg/mem8g" as *u8, "/tmp/hrg/load1" as *u8, "/tmp/hrg/cpu8" as *u8, 0 as *u8, out, G_OUTCAP) 108 g_bool("gate-need-refused" as *u8, g_has(out, n, "REFUSED reason=mem_floor" as *u8), 1, pass) 109 // T7 conf override binds: floor 100 makes the 2GB fixture usable (1948/512=3, min cores/2=4, cap 8 -> 3) 110 g_write("headroom.conf" as *u8, "floor_mb=100 loadceil_centi_per_core=200\n" as *u8) 111 n = g_run(elf, "width" as *u8, "8" as *u8, "512" as *u8, "/tmp/hrg/mem2g" as *u8, "/tmp/hrg/load1" as *u8, "/tmp/hrg/cpu8" as *u8, out, G_OUTCAP) 112 g_bool("conf-floor-override-binds" as *u8, g_has(out, n, "ok width=3 " as *u8), 1, pass) 113 g_write("headroom.conf" as *u8, "floor_mb=4096 loadceil_centi_per_core=200\n" as *u8) 114 115 g_puts("HEADROOM-GATE pass=" as *u8); g_putn(pass[0]); g_puts("/7 verdict=" as *u8) 116 if pass[0] == G_TOTAL { g_puts("GREEN\n" as *u8); return 0 } 117 g_puts("RED\n" as *u8) 118 return 1 119}