chrg6
745d48bc8c
Free released recording copies outside their lock, skip the yield's lock and scans when nobody waits for a core, and wait instead of spinning before a paced frame.
...
Found by profiling a play session and reading the kernel and the command recording:
- nvn_api_cmd.c: a released recording copy had its pins uncounted (a walk over every op) and was freed while copy_lock was held exclusively; the main-loop thread waited for that lock 2.8% of its time. The copies are now chained under the lock and freed after it. The walks over a recording's records test a mask of the five op kinds that name pins before calling op_pins.
- kernel.c: SleepThread(0) took the kernel lock and computed the caller's inherited priority, a scan over every blocked thread, also when no thread waited for a core, which is nearly always. It now yields at once then. A wait without a timeout no longer reads the clock.
- nvn_api_obj.c sleep_until: the wait for a paced frame's slot slept coarsely and left the last 1 to 2 ms to a yield loop; the high-resolution wait now takes all but its own margin.
- input.c: the keyboard scan (a system call per key) is reused for reads within a millisecond.
- nvn_api_core.c: the read-lock observer's commit-point address is 1.2.1's and is now only compared there.
- kernel_probe.c: the probe expected three virtual cores and wait type 3 to be refused; the kernel has six cores and implements the 64-bit wait. It now checks both as they are, counts a core number past the cores as a clash without unbalancing core 0, and --probe-kernel passes again.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com >
(cherry picked from commit a3dbd63878d7d6de096ceb4c25988192b4bce738)
2026-11-09 20:48:10 -05:00
..
2026-11-09 12:18:17 -05:00
2026-11-09 11:22:37 -05:00
2026-11-09 06:06:33 -05:00
2026-11-07 13:31:06 -05:00
2026-11-09 13:10:47 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:19:19 -05:00
2026-11-09 08:19:19 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:17:35 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 13:15:47 -05:00
2026-11-09 08:09:25 -05:00
2026-11-09 12:18:17 -05:00
2026-11-09 14:56:17 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:25 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 06:06:33 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-08 01:25:12 -05:00
2026-11-09 09:10:36 -05:00
2026-11-09 08:20:01 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-08 04:10:35 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 03:34:46 -05:00
2026-11-07 05:04:39 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:39 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 13:15:37 -05:00
2026-11-09 13:15:47 -05:00
2026-11-09 13:15:47 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:09:26 -05:00
2026-11-08 00:34:29 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 14:34:45 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 08:18:08 -05:00
2026-11-09 08:18:19 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 14:34:45 -05:00
2026-11-07 16:02:30 -05:00
2026-11-09 06:06:33 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 06:06:33 -05:00
2026-11-09 06:06:33 -05:00
2026-11-09 12:18:17 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:21:07 -05:00
2026-11-09 08:21:07 -05:00
2026-11-09 08:21:07 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 03:34:46 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 20:48:10 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 02:40:51 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 20:48:10 -05:00
2026-11-09 20:48:10 -05:00
2026-11-09 20:48:10 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 11:17:08 -05:00
2026-11-09 08:09:26 -05:00
2026-11-07 09:26:51 -05:00
2026-11-07 09:26:51 -05:00
2026-11-07 05:04:40 -05:00
2026-11-08 15:51:48 -05:00
2026-11-07 05:04:40 -05:00
2026-11-08 15:51:48 -05:00
2026-11-09 08:09:25 -05:00
2026-11-08 15:51:48 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 12:18:17 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 18:03:20 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 20:48:10 -05:00
2026-11-09 20:48:10 -05:00
2026-11-09 20:48:10 -05:00
2026-11-08 15:51:47 -05:00
2026-11-08 15:51:47 -05:00
2026-11-07 05:04:40 -05:00
2026-11-08 15:51:47 -05:00
2026-11-07 05:04:40 -05:00
2026-11-08 15:51:47 -05:00
2026-11-07 05:04:39 -05:00
2026-11-07 05:04:39 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 08:54:25 -05:00
2026-11-08 15:51:48 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 08:19:55 -05:00
2026-11-07 13:31:07 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:16:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 02:40:51 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 02:40:51 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 14:34:45 -05:00
2026-11-08 15:51:48 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 08:20:32 -05:00
2026-11-09 08:20:01 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 08:09:25 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 14:16:19 -05:00
2026-11-09 11:22:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-08 15:51:48 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:39 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 05:04:40 -05:00
2026-11-07 18:44:56 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 12:18:17 -05:00
2026-11-09 12:18:17 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 14:56:17 -05:00
2026-11-09 08:09:25 -05:00
2026-11-07 13:31:06 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 18:49:12 -05:00
2026-11-09 14:56:17 -05:00
2026-11-09 18:49:12 -05:00
2026-11-09 14:56:17 -05:00
2026-11-09 12:18:17 -05:00
2026-11-09 12:18:17 -05:00
2026-11-09 09:47:33 -05:00
2026-11-09 18:49:12 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 18:49:12 -05:00
2026-11-09 18:49:12 -05:00
2026-11-09 14:39:07 -05:00
2026-11-09 12:20:05 -05:00
2026-11-07 13:31:06 -05:00
2026-11-09 12:31:28 -05:00
2026-11-09 02:40:51 -05:00
2026-11-07 05:04:40 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 06:06:33 -05:00
2026-11-09 14:56:17 -05:00
2026-11-09 18:49:12 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 20:45:04 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 08:09:26 -05:00
2026-11-09 18:49:12 -05:00
2026-11-09 14:56:17 -05:00
2026-11-09 03:34:46 -05:00
2026-11-09 03:34:46 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 18:49:12 -05:00
2026-11-07 05:04:38 -05:00
2026-11-09 12:45:14 -05:00