u/Excellent-Mess-3502

Image 1 — Gaming machine still feels a little CPU-bound after the GPU upgrade. Any suggestions?
Image 2 — Gaming machine still feels a little CPU-bound after the GPU upgrade. Any suggestions?
Image 3 — Gaming machine still feels a little CPU-bound after the GPU upgrade. Any suggestions?

Gaming machine still feels a little CPU-bound after the GPU upgrade. Any suggestions?

I’m running out of ideas here.
Everything seems to be working, but gaming performance still feels a little off and I can’t figure out where the bottleneck is coming from.
I’ve checked drivers, thermals, clocks, link state, and nothing obvious is jumping out at me.
At this point I’m wondering if I’m overlooking something really basic.
Any ideas?

u/Excellent-Mess-3502 — 5 days ago
▲ 0 r/osdev

PcTopo OS — SMP kernel with scheduler scaffold, context frame proof, and 13+ hours uptime on a single session. Solo project

I've been building a kernel from scratch and wanted to share where it stands. Not looking for validation — just figured this community would appreciate the specifics.

What it is:

PcTopo OS is a from-scratch x86-64 kernel written in Rust (no_std), targeting topology-aware workstation hardware. The name reflects the core design goal: the kernel knows the shape of the machine and uses that knowledge at every layer.

Current state:

  • UEFI bootloader with a firmware-neutral boot protocol
  • Physical memory manager with typed slab allocator
  • 4-level paging with 4GiB early identity map, page zero unmapped
  • Full IDT — all 32 CPU exception vectors, APIC timer, PS/2 keyboard via I/O APIC with MADT interrupt override support
  • APIC timer calibrated against HPET in femtoseconds
  • Live 4-core SMP — APs wake through a staged trampoline with real-mode → protected-mode → long-mode handoff, each AP runs its own APIC timer and publishes a scheduler heartbeat
  • Per-CPU local records with timer event accounting
  • Scheduler scaffold: per-CPU run queues, task heartbeat table, LIVE/STALE detection, voluntary yield proof, FIFO ordering with overflow/underflow guards
  • Saved context frame layout (192 bytes, compile-time verified), assembly save probe with entry register capture, restore dry-run with preflight validation, named switch-deny reason codes
  • PID 2 SCHEDTST synthetic task in the reserved kernel thread range — scheduler invariant validated against duplicate and missing CPU owner negative guards
  • Monitor shell with 25+ commands including /SYS/ pseudo-filesystem, live uptime, per-CPU status, task table with frame addresses, scheduler invariant display
  • 24-line boot ledger visible at a glance

Screenshot shows:

Boot log fully populated, SCHED command output with invariant proof, 13+ hours continuous uptime at TICK ~3M+. Everything green. No watchdog, no restart.

The proof discipline:

Every subsystem has a serial proof marker. The smoke test matrix covers 2-core dry, 2-core live AP wake, 4-core dry, and 4-core live AP wake — all must pass before a commit lands. No cardboard progress.

~12,744 lines of Rust kernel source across 17 modules.

u/Excellent-Mess-3502 — 1 month ago