vasilito
328d1abbcd
rate-limit scheme error spam to prevent serial log flood
2026-05-28 00:36:17 +03:00
vasilito
b9de373b31
Merge bootprocess branch overlay into 0.2.0
...
Restore all bootprocess branch files that were overwritten by later 0.2.0
commits. This overlay brings back the complete boot infrastructure:
- Configs: redbear-full, redbear-mini, redbear-device-services, driver .d files
- Kernel: IRQ affinity, x2APIC, C-states, NUMA (SLIT/SRAT), MCS locks, cpuidle
- Base patches: P0-P55 + new P6 (lived block_size=512) + P57 (fbbootlogd graceful init)
- Driver infra: driver-manager, udev-shim, thermald, cpufreqd, iommu, redox-driver-sys/core
- GPU: redox-drm with improved connector handling
- System: redbear-info, redbear-hwutils phase-timer-check
- Build system: fetch.rs improvements, build-iso.sh, run_full.sh
- Kernel source: new ACPI (SLIT, SRAT), cpuidle, cstate, MCS lock modules
83 files changed, +3966/-1248 lines
2026-05-27 06:47:23 +03:00
vasilito
899dcb810c
Merge master into 0.2.0 - 688 commits merged, restore 0.2.0 local dev recipes
2026-05-21 23:12:35 +03:00
vasilito
0c8be761eb
Merge master into 0.2.0 (688 commits, theirs pref for conflicts)
2026-05-21 21:37:43 +03:00
vasilito
5f0c54ebfe
baseline
2026-05-20 19:58:12 +03:00
vasilito
bb4f757ba0
kernel: Add MONITOR/MWAIT C1 idle support (P24)
...
Implement CPU power-saving idle loop using x86 MONITOR/MWAIT:
- Add monitor(), mwait(), enable_and_mwait() to interrupt module
- Detect MWAIT availability via CPUID at boot
- Use MONITOR+MWAIT instead of STI+HLT when supported
- Expose /scheme/sys/cstate_policy for userspace control
- Add RdWr Kind variant to sys scheme for read+write files
2026-05-20 16:49:48 +03:00
vasilito
56be23ce6e
kernel: Add sys:msr scheme for userspace MSR read/write
...
Expose MSR access via /scheme/sys/msr/<cpu>/<msr> for root only.
Required for cpufreqd P-state control and thermal sensor drivers.
2026-05-20 13:38:53 +03:00
vasilito
9233726f58
P0..P71 baseline before fbcond/fbbootlogd init fix
2026-05-20 00:30:18 +03:00
vasilito
ba5e010bb7
P21-P23: boot daemon panic fixes, x2APIC MADT fallback, rootfs hard dep on drivers
...
P21: Replace 67 panic-grade calls across 9 boot daemon files with
graceful error handling. Affected: ps2d, inputd, fbcond, fbbootlogd.
P22: Add x2APIC MADT fallback for processors with LocalApic entries
instead of LocalX2Apic entries. QEMU KVM boots now correctly detect
all vCPUs via zero-extended APIC ID fallback.
P23: Change 50_rootfs.service from requires_weak to requires on
40_drivers.target, ensuring redoxfs waits for disk drivers before
attempting filesystem mount. This fixes the boot race where rootfs
mount failed before drivers were ready, causing init to have no
userland services after switchroot.
2026-05-19 02:18:17 +03:00
vasilito
ecc120b013
chore: kernel source patches, local recipe updates, and build artifacts
...
Kernel source (ephemeral — changes durable in local/patches/kernel/):
- P20 x2apic ICR mode fix, P21 x2apic SMP fix applied
- ACPI MADT, RSDP, SDT improvements
- Context switch, percpu, event, IRQ scheme updates
- MSI/vector allocation, NUMA/SLIT/SRAT support
Local recipe source updates:
- redox-driver-acpi: bus/prt hardening
- redox-drm: Intel display, KMS connector improvements
- driver-manager: config/scheme hardening
- thermald: main.rs fix
- uutils-tar, ninja-build: source updates
Other:
- bootloader, installer, redoxfs, relibc, userutils source updates
- recipe.toml.backup, libxcvt source directory
2026-05-18 14:20:54 +03:00
vasilito
f6c2eb2a8e
feat: ACPI Wave 1 boot-critical hardening (P19) + robust patch generation
...
- P19-init-startup-hardening: Replace panic-grade expect/unwrap in init
startup paths (getns, register_scheme_to_ns, setrens, filename parsing)
with graceful error handling and logging
- P19-acpid-startup-hardening: Replace panic-grade calls in acpid with
graceful degradation (rxsdt read failure → warn + exit 0, SDT parse →
error + exit 1, I/O privilege → fatal, scheme registration → fatal,
setrens → warn + continue, event loop errors → log + continue)
- P18-9-msi-allocation-resilience: Regenerate with git diff -U0 -w format
for maximum context resilience
- fetch.rs: Change --fuzz=0 to --fuzz=3 for resilient patch application
- AGENTS.md: Document robust patch generation technique as mandatory
- Add P4/P5/P6/P7 patches (estale, dmi, i2c, ps2d hardening)
- Add P21 kernel x2apic SMP fix patch
- Multiple local recipe source improvements (redox-drm, driver-manager,
driver-acpi, thermald)
- Config updates for redbear-mini and redbear-device-services
- Subsystem assessment document
2026-05-18 14:07:42 +03:00
vasilito
7798ed86eb
fix: remove P20 forward patch — cascading context issues with P16-1
...
x2APIC ICR mode fix cannot be a forward patch because P16-1-sipi-timing
references the ICR line as context. Modifying P1 (which introduces the line)
would require updating P16-1's offsets. Will address by consolidating into
an existing early patch in a future revision.
2026-05-17 15:25:36 +03:00
vasilito
b40daef15c
chore: remove kernel patch artifacts
2026-05-17 14:57:18 +03:00
vasilito
2bfe4b427b
feat: raw framebuffer fallback for fbbootlogd when DRM unavailable
...
- Add RawFb struct: direct framebuffer rendering via physmap
- Add RawTextScreen: simple text renderer using orbclient font
- Fallback in FbbootlogScheme::new() when V2GraphicsHandle fails
- Reads FRAMEBUFFER_ADDR/WIDTH/HEIGHT/STRIDE from bootloader env
- Scroll via ptr::copy on pixel rows, clear bottom line
- No DRM, no shadow buffer, no GPU required — like MS-DOS text mode
- Add common dependency to fbbootlogd Cargo.toml
2026-05-17 14:56:50 +03:00
vasilito
ef999ebc8f
chore: remove patch leftovers (.orig/.rej)
2026-05-17 13:57:56 +03:00
vasilito
081ed10a8b
fix: x2APIC ICR format + build system durability docs
...
- Fix LocalX2Apic handler: use local_apic.x2 to select correct ICR
format (<<32 for x2APIC, <<56 for xAPIC) instead of hardcoded <<32
- Promote x2APIC/xAPIC detection from debug! to info! for bootlog
- Document build system durability in AGENTS.md: cardinal rule,
two-layer architecture, correct workflow, anti-patterns
2026-05-17 13:57:37 +03:00
vasilito
cee25393d8
fix: boot process improvements — dependency cycle, INIT_NOTIFY, probing loop, and log spam fixes
...
- Fix P15-8-init-cycle-detection.patch: replace visiting+error with seen+silent-skip
to eliminate 11 false-positive 'dependency cycle detected' errors on shared deps
- Fix P0-daemon-fix-init-notify-unwrap.patch: remove eprintln! for missing
INIT_NOTIFY (expected for oneshot_async services, ~7 daemons affected)
- Fix driver-manager hotplug loop: add PERMANENTLY_SKIPPED static set shared
between hotplug handler and DriverConfig::probe() to stop infinite re-probing
of Fatal/NotSupported/deferred-exhausted device+driver pairs (e.g. ided)
- Fix driver-manager log_timeline: suppress repeated EPIPE/ENOENT errors with
AtomicI32 dedup and AtomicBool one-shot guards for boot timeline JSON
- Add driver-manager SIGTERM handler, ACPI bus registration, --status mode,
driver reap loop, graceful shutdown, and reduced deferred retries (30→3)
2026-05-17 12:34:02 +03:00
vasilito
facf0c92e0
feat: track all source trees in git — full fork offline-first model
...
Red Bear OS is a full fork. All sources must be available from git clone
with zero network access. Removed gitignore rules that excluded fetched
source trees under recipes/*/source/, local/recipes/kde/*/source/,
local/recipes/qt/*/source/, and vendor source trees.
Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded.
127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt
frameworks, mesa, wayland, DRM drivers, and every other recipe source.
2026-05-14 10:55:53 +01:00
vasilito
ff4ff35918
feat: track all source trees in git — full fork offline-first model
...
Red Bear OS is a full fork. All sources must be available from git clone
with zero network access. Removed gitignore rules that excluded fetched
source trees under recipes/*/source/, local/recipes/kde/*/source/,
local/recipes/qt/*/source/, and vendor source trees.
Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded.
127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt
frameworks, mesa, wayland, DRM drivers, and every other recipe source.
2026-05-14 10:55:53 +01:00
vasilito
39807ca816
fix: consolidate kernel patch chain
...
Absorb redundant kernel patches into v2 carriers, remove debug and
suspend patches no longer needed. Wire v2 patches in recipe.toml.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-05-11 10:08:20 +01:00
vasilito
7dfb749b3d
fix: consolidate kernel patch chain
...
Absorb redundant kernel patches into v2 carriers, remove debug and
suspend patches no longer needed. Wire v2 patches in recipe.toml.
2026-05-11 10:08:20 +01:00
vasilito
7706617e7f
cub: full AUR package manager + Phase 1-5 native build tools
...
cub redesign (local/recipes/system/cub/):
- AUR RPC v5 client (serde_json) with search/info
- ~/.cub/ user-local recipe/source/repo storage
- Enhanced PKGBUILD parser: optdepends, .SRCINFO, split packages, 19 linuxism patterns
- Recipe generation: host: prefix on dev-deps, shallow_clone, cargopath, installs, optional-packages
- Dependency resolver: scans build errors for missing commands/headers/libs/pkgconfig, maps to packages
- Dependency installation: checks installed packages, fetches AUR deps, interactive prompt
- ~110 Arc→Redox dependency mappings
- ratatui TUI: search, info, install, build, query views
- 14 Arch-style CLI switches (-S/-Si/-Syu/-G/-R/-Q/-Qi/-Ql)
- 65 tests, 0 failures, clean build
Phase 1-5 native build tools (local/recipes/dev/):
- P1 Substrate: tar, m4, diffutils (gnulib bypass), mkfifo kernel patch (1085 lines)
- P2 Build Systems: bison, flex, meson (standalone wrapper), ninja-build, libtool
- P3 Native GCC: gcc-native, binutils-native (cross-compiled for redox host)
- P4 Native LLVM: llvm-native (clang + lld from monorepo)
- P5 Native Rust: rust-native (rustc + cargo)
- Groups: build-essential-native, dev-essential expanded
Config:
- redbear-mini: +7 tools (diffutils, tar, bison, flex, meson, ninja, m4)
- redbear-full: +4 native tools (gcc, binutils, llvm, rust)
- All recipes moved to local/ with symlinks for cookbook discovery (Red Bear policy)
Docs:
- BUILD-TOOLS-PORTING-PLAN.md: phased porting roadmap
- CUB-WORKFLOW-ASSESSMENT.md: gap analysis and integration assessment
2026-05-08 00:13:31 +01:00
vasilito
950edaa65f
cub: full AUR package manager + Phase 1-5 native build tools
...
cub redesign (local/recipes/system/cub/):
- AUR RPC v5 client (serde_json) with search/info
- ~/.cub/ user-local recipe/source/repo storage
- Enhanced PKGBUILD parser: optdepends, .SRCINFO, split packages, 19 linuxism patterns
- Recipe generation: host: prefix on dev-deps, shallow_clone, cargopath, installs, optional-packages
- Dependency resolver: scans build errors for missing commands/headers/libs/pkgconfig, maps to packages
- Dependency installation: checks installed packages, fetches AUR deps, interactive prompt
- ~110 Arc→Redox dependency mappings
- ratatui TUI: search, info, install, build, query views
- 14 Arch-style CLI switches (-S/-Si/-Syu/-G/-R/-Q/-Qi/-Ql)
- 65 tests, 0 failures, clean build
Phase 1-5 native build tools (local/recipes/dev/):
- P1 Substrate: tar, m4, diffutils (gnulib bypass), mkfifo kernel patch (1085 lines)
- P2 Build Systems: bison, flex, meson (standalone wrapper), ninja-build, libtool
- P3 Native GCC: gcc-native, binutils-native (cross-compiled for redox host)
- P4 Native LLVM: llvm-native (clang + lld from monorepo)
- P5 Native Rust: rust-native (rustc + cargo)
- Groups: build-essential-native, dev-essential expanded
Config:
- redbear-mini: +7 tools (diffutils, tar, bison, flex, meson, ninja, m4)
- redbear-full: +4 native tools (gcc, binutils, llvm, rust)
- All recipes moved to local/ with symlinks for cookbook discovery (Red Bear policy)
Docs:
- BUILD-TOOLS-PORTING-PLAN.md: phased porting roadmap
- CUB-WORKFLOW-ASSESSMENT.md: gap analysis and integration assessment
2026-05-08 00:13:31 +01:00
vasilito
cfe9d70e47
feat: S4 kernel eventfd wired — all 4 phases shipped and boot verified
...
S1: sem_open refcounting ✅
S2: name canonicalization (sem.* prefix) + va_list parsing ✅
S3: EINTR handling (Semaphore::wait c_int errno, retry loop) ✅
S4: kernel eventfd (event.rs eventfd field + scheme/event.rs path parsing) ✅
Kernel P0-eventfd-kernel.patch wired into recipe, compiles, boots.
Greeter ready on VT 3 verified.
Docs: RELIBC-AGAINST-GLIBC-ASSESSMENT.md (glibc 2.41 cross-reference) ✅
All 4 phases implemented, shipped, boot verified.
2026-05-05 21:52:36 +01:00
vasilito
5b4a23006b
feat: S4 kernel eventfd wired — all 4 phases shipped and boot verified
...
S1: sem_open refcounting ✅
S2: name canonicalization (sem.* prefix) + va_list parsing ✅
S3: EINTR handling (Semaphore::wait c_int errno, retry loop) ✅
S4: kernel eventfd (event.rs eventfd field + scheme/event.rs path parsing) ✅
Kernel P0-eventfd-kernel.patch wired into recipe, compiles, boots.
Greeter ready on VT 3 verified.
Docs: RELIBC-AGAINST-GLIBC-ASSESSMENT.md (glibc 2.41 cross-reference) ✅
All 4 phases implemented, shipped, boot verified.
2026-05-05 21:52:36 +01:00
vasilito
b9d52a4c73
fix: remove kernel eventfd patch from recipe (needs compile fix)
...
Kernel eventfd patch (P0-eventfd-kernel.patch) caused build failure.
Removed from recipe; patch preserved in local/patches/kernel/ for future fix.
S1+S2 shipped: sem_open refcounting + name canonicalization.
2026-05-05 21:41:10 +01:00
vasilito
1a76f76faf
fix: remove kernel eventfd patch from recipe (needs compile fix)
...
Kernel eventfd patch (P0-eventfd-kernel.patch) caused build failure.
Removed from recipe; patch preserved in local/patches/kernel/ for future fix.
S1+S2 shipped: sem_open refcounting + name canonicalization.
2026-05-05 21:41:10 +01:00
vasilito
ef96d33ead
feat: wire kernel eventfd patch + relibc S2-S4 recipe prep
...
- Kernel: P0-eventfd-kernel.patch wired into kernel recipe
- Event scheme now parses eventfd/{initval}/{sem} paths at kopenat
- EventQueue supports counter mode (AtomicU64 + semaphore)
- kread/kwrite handle eventfd u64 counter ops
S1: sem_open refcounting ✅ (in-tree)
S2: va_list parsing ✅ , name canonicalization 📋 (shm scheme needed)
S3: EINTR handling designed 📋 (sync layer change needed)
S4: kernel eventfd ✅ , relibc eventfd function 📋 (recipe wiring pending)
Docs: RELIBC-AGAINST-GLIBC-ASSESSMENT.md ✅
2026-05-05 21:28:59 +01:00
vasilito
66e6358b65
feat: wire kernel eventfd patch + relibc S2-S4 recipe prep
...
- Kernel: P0-eventfd-kernel.patch wired into kernel recipe
- Event scheme now parses eventfd/{initval}/{sem} paths at kopenat
- EventQueue supports counter mode (AtomicU64 + semaphore)
- kread/kwrite handle eventfd u64 counter ops
S1: sem_open refcounting ✅ (in-tree)
S2: va_list parsing ✅ , name canonicalization 📋 (shm scheme needed)
S3: EINTR handling designed 📋 (sync layer change needed)
S4: kernel eventfd ✅ , relibc eventfd function 📋 (recipe wiring pending)
Docs: RELIBC-AGAINST-GLIBC-ASSESSMENT.md ✅
2026-05-05 21:28:59 +01:00
vasilito
eb0718cddb
fix: kernel rebrand patch — correct post-consolidated context for fuzz=0
...
Generated from clean 866dfad0 + consolidated.patch state via diff.
Two hunks for x86_64: comment on line 87 and info! on line 110.
aarch64 (line 94) and riscv64 (line 100) — one hunk each.
Verified: patch applies with --fuzz=0 on top of redbear-consolidated.
Wired into kernel recipe after P8-msi.patch.
2026-05-04 20:07:59 +01:00
vasilito
dc59144946
fix: kernel rebrand patch — correct post-consolidated context for fuzz=0
...
Generated from clean 866dfad0 + consolidated.patch state via diff.
Two hunks for x86_64: comment on line 87 and info! on line 110.
aarch64 (line 94) and riscv64 (line 100) — one hunk each.
Verified: patch applies with --fuzz=0 on top of redbear-consolidated.
Wired into kernel recipe after P8-msi.patch.
2026-05-04 20:07:59 +01:00
vasilito
5eb969cd28
docs: QEMU desktop boot evidence — virtio-gpu works, login prompt reached
...
redbear-full (4GB) boots in QEMU with virtio-gpu-pci:
- virtio-gpu detected: display 0 (1280x800px) ✅
- framebuffer console: 'RedBear Login:' prompt appears ✅
- Wayland compositor: fails on /dev/fd/63 (bash process substitution
not supported on Redox) — documented as blocker in plan
- D-Bus system bus: session broker registered ✅
- KDE session assembly helper: started ✅
- iommu: no AMD-Vi units in QEMU (expected) ✅
CONSOLE-TO-KDE-DESKTOP-PLAN.md v4.1:
- Updated compositor blocker: /dev/fd missing on Redox
- Added QEMU boot evidence date and details
- Removed P2-rebrand from kernel recipe (line-number conflict
with consolidated patch — needs rebase)
Remaining errors (pre-existing):
- fbcond: 'No display present yet' (timing, self-recovers)
- procmgr: SIGCHLD to PID 1 not permitted
- cpufreqd: MSR write fails (QEMU, expected)
- keymapd: Bad file number on scheme read
2026-05-04 19:32:39 +01:00
vasilito
2e6592a7d1
docs: QEMU desktop boot evidence — virtio-gpu works, login prompt reached
...
redbear-full (4GB) boots in QEMU with virtio-gpu-pci:
- virtio-gpu detected: display 0 (1280x800px) ✅
- framebuffer console: 'RedBear Login:' prompt appears ✅
- Wayland compositor: fails on /dev/fd/63 (bash process substitution
not supported on Redox) — documented as blocker in plan
- D-Bus system bus: session broker registered ✅
- KDE session assembly helper: started ✅
- iommu: no AMD-Vi units in QEMU (expected) ✅
CONSOLE-TO-KDE-DESKTOP-PLAN.md v4.1:
- Updated compositor blocker: /dev/fd missing on Redox
- Added QEMU boot evidence date and details
- Removed P2-rebrand from kernel recipe (line-number conflict
with consolidated patch — needs rebase)
Remaining errors (pre-existing):
- fbcond: 'No display present yet' (timing, self-recovers)
- procmgr: SIGCHLD to PID 1 not permitted
- cpufreqd: MSR write fails (QEMU, expected)
- keymapd: Bad file number on scheme read
2026-05-04 19:32:39 +01:00
vasilito
508432e0e5
feat: build system hardening — unwired patch detector + rebrand
...
check-unwired-patches.sh: scans local/patches/ for .patch files not
referenced in any recipe.toml patches = [...] array. Detects 262
unwired patches (most intentionally kept for reference/rebase).
P2-rebrand-start-message.patch: minimal 39-line patch changing
'Redox OS starting' to 'RedBear OS starting' in x86_64, aarch64,
and riscv64 arch start files. Wired into kernel recipe after
P8-msi.patch. Verified: make r.kernel builds with all 3 patches.
Build system issues surfaced by the detector:
- 250+ kernel individual patches kept for reference (absorbed/)
- ~50 base individual patches — many intentionally unwired
- ~30 relibc patches — may need wiring into relibc recipe
- build-system patches applied by scripts, not recipes
2026-05-04 19:21:02 +01:00
vasilito
3dee740906
feat: build system hardening — unwired patch detector + rebrand
...
check-unwired-patches.sh: scans local/patches/ for .patch files not
referenced in any recipe.toml patches = [...] array. Detects 262
unwired patches (most intentionally kept for reference/rebase).
P2-rebrand-start-message.patch: minimal 39-line patch changing
'Redox OS starting' to 'RedBear OS starting' in x86_64, aarch64,
and riscv64 arch start files. Wired into kernel recipe after
P8-msi.patch. Verified: make r.kernel builds with all 3 patches.
Build system issues surfaced by the detector:
- 250+ kernel individual patches kept for reference (absorbed/)
- ~50 base individual patches — many intentionally unwired
- ~30 relibc patches — may need wiring into relibc recipe
- build-system patches applied by scripts, not recipes
2026-05-04 19:21:02 +01:00
vasilito
fc5c00cb68
fix: remove P7-scheduler-improvements from kernel recipe patches
...
P7 failed 3/4 hunks on context.rs at kernel rev 866dfad0.
Consolidated patch already includes P5-sched-rt-policy, P5-context-mod-sched,
P6-percpu-runqueues, P6-futex-sharding which cover most scheduler improvements.
P7 needs rebase — documented in recipe comment.
Verified: full 'make r.kernel' fetch+patch+build chain works:
git clone + consolidated.patch + P8-msi.patch + cargo build → 1.5MB kernel
2026-05-04 18:35:45 +01:00
vasilito
bd1a5320d5
fix: remove P7-scheduler-improvements from kernel recipe patches
...
P7 failed 3/4 hunks on context.rs at kernel rev 866dfad0.
Consolidated patch already includes P5-sched-rt-policy, P5-context-mod-sched,
P6-percpu-runqueues, P6-futex-sharding which cover most scheduler improvements.
P7 needs rebase — documented in recipe comment.
Verified: full 'make r.kernel' fetch+patch+build chain works:
git clone + consolidated.patch + P8-msi.patch + cargo build → 1.5MB kernel
2026-05-04 18:35:45 +01:00
vasilito
678980521c
feat: T1.1-T2.2 MSI subsystem — kernel MSI, vectors, affinity, validation
...
Kernel:
- T1.1 msi.rs: MSI message composition (MsiMessage), validation
(is_valid_msi_address, is_valid_msi_vector), capability parsing
(MsiCapability, MsixCapability) with bounds-safe .get() access
- T1.2 vector.rs: per-CPU bitmatrix vector allocation/deallocation
- T1.3 IRQ scheme: MSI vector validation gate at irq_trigger,
iommu_validate_msi_irq hook, msi_vector_is_valid helper
- mod.rs: declarations for msi + vector modules
- Fix validation mask 0xFEEF_F000→0xFFF0_0000 (bits 31:20 check)
T2.1 driver-sys: program_x86_message kernel-mediated validation
- Validates MSI address range 0xFEE0_0000–0xFEEF_EFFF and vector 32–254
- Gated behind #[cfg(target_os = "redox")]; clearly rejects non-Redox
- Uses correct 0xFFF0_0000 mask for destination-ID-tolerant validation
T2.2 kernel-side affinity: Handle::IrqAffinity variant
- kopenat handles <irq>/affinity and cpu-XX/<irq>/affinity paths
- kwrite validates CPU id exists, stores mask atomically
- kfstat/kfpath/kreadoff/close all handle new variant
- Fix unused handle_irq warning in kwrite match arm
T2.3 driver-sys: MsiAllocation struct + irq_set_affinity helper
- MsiAllocation with round-robin CPU allocation via alloc_cpu_id
- irq_set_affinity uses scheme:irq/<irq>/affinity write path
- IrqFd type alias in pci.rs for file descriptor tracking
IOMMU T3.1: InterruptRemapTable, IRTE encode/decode, IrqRemapManager
- IRTE (16-byte) encoding/decoding for AMD-Vi interrupt remapping
- InterruptRemapTable with program/invalidate/find_free
- IrqRemapManager with multi-table remap and validate_msi gate
- Remove arbitrary .min(256) bound on find_free
P8-msi.patch: 281-line durable kernel patch, wired in recipe.toml
2026-05-04 18:00:15 +01:00
vasilito
d1c04f2651
feat: T1.1-T2.2 MSI subsystem — kernel MSI, vectors, affinity, validation
...
Kernel:
- T1.1 msi.rs: MSI message composition (MsiMessage), validation
(is_valid_msi_address, is_valid_msi_vector), capability parsing
(MsiCapability, MsixCapability) with bounds-safe .get() access
- T1.2 vector.rs: per-CPU bitmatrix vector allocation/deallocation
- T1.3 IRQ scheme: MSI vector validation gate at irq_trigger,
iommu_validate_msi_irq hook, msi_vector_is_valid helper
- mod.rs: declarations for msi + vector modules
- Fix validation mask 0xFEEF_F000→0xFFF0_0000 (bits 31:20 check)
T2.1 driver-sys: program_x86_message kernel-mediated validation
- Validates MSI address range 0xFEE0_0000–0xFEEF_EFFF and vector 32–254
- Gated behind #[cfg(target_os = "redox")]; clearly rejects non-Redox
- Uses correct 0xFFF0_0000 mask for destination-ID-tolerant validation
T2.2 kernel-side affinity: Handle::IrqAffinity variant
- kopenat handles <irq>/affinity and cpu-XX/<irq>/affinity paths
- kwrite validates CPU id exists, stores mask atomically
- kfstat/kfpath/kreadoff/close all handle new variant
- Fix unused handle_irq warning in kwrite match arm
T2.3 driver-sys: MsiAllocation struct + irq_set_affinity helper
- MsiAllocation with round-robin CPU allocation via alloc_cpu_id
- irq_set_affinity uses scheme:irq/<irq>/affinity write path
- IrqFd type alias in pci.rs for file descriptor tracking
IOMMU T3.1: InterruptRemapTable, IRTE encode/decode, IrqRemapManager
- IRTE (16-byte) encoding/decoding for AMD-Vi interrupt remapping
- InterruptRemapTable with program/invalidate/find_free
- IrqRemapManager with multi-table remap and validate_msi gate
- Remove arbitrary .min(256) bound on find_free
P8-msi.patch: 281-line durable kernel patch, wired in recipe.toml
2026-05-04 18:00:15 +01:00
vasilito
07c6e422c1
feat: comprehensive scheduler, ACPI, driver, and cpufreqd improvements
...
Scheduler: LAPIC timer calibration, TSC-deadline mode, work-stealing
load balancer, RT scheduling class, per-CPU nr_running counter.
Direct tick routing via vector 48.
ACPI: S3/S4 sleep states with full AML sequence (_PTS/_GTS/_BFS/_WAK),
NVS save/restore, EC driver hardening, panic-grade behavior removed.
Drivers: 5 driver mains at zero unwrap, 12 new modules across storage,
network, and audio subsystems. AHCI NCQ/PM/TRIM, e1000 ITR/checksum/TSO,
rtl8169 PHY config, HDA codec/jack detection.
cpufreqd: Replaced 26-line stub with 5-governor implementation including
ACPI P-state reading, MSR control, thermal throttle, and error suppression.
thermald: Fan control module with speed curves and emergency mode.
Docs: IMPLEMENTATION-MASTER-PLAN.md, CPU-DMA-IRQ-MSI-SCHEDULER-FIX-PLAN.md.
30 stale docs archived. 3 superseded plans archived.
Patches: P5-named-semaphores (relibc), P6-driver fixes (base),
P7-scheduler (kernel), P6-cpufreqd (local).
2026-05-04 16:08:58 +01:00
vasilito
d91c09b54d
feat: comprehensive scheduler, ACPI, driver, and cpufreqd improvements
...
Scheduler: LAPIC timer calibration, TSC-deadline mode, work-stealing
load balancer, RT scheduling class, per-CPU nr_running counter.
Direct tick routing via vector 48.
ACPI: S3/S4 sleep states with full AML sequence (_PTS/_GTS/_BFS/_WAK),
NVS save/restore, EC driver hardening, panic-grade behavior removed.
Drivers: 5 driver mains at zero unwrap, 12 new modules across storage,
network, and audio subsystems. AHCI NCQ/PM/TRIM, e1000 ITR/checksum/TSO,
rtl8169 PHY config, HDA codec/jack detection.
cpufreqd: Replaced 26-line stub with 5-governor implementation including
ACPI P-state reading, MSR control, thermal throttle, and error suppression.
thermald: Fan control module with speed curves and emergency mode.
Docs: IMPLEMENTATION-MASTER-PLAN.md, CPU-DMA-IRQ-MSI-SCHEDULER-FIX-PLAN.md.
30 stale docs archived. 3 superseded plans archived.
Patches: P5-named-semaphores (relibc), P6-driver fixes (base),
P7-scheduler (kernel), P6-cpufreqd (local).
2026-05-04 16:08:58 +01:00
vasilito
ce0ac10b6d
chore: sync all pending changes — kirigami platform headers, cookbook fix, docs, patches
...
Kirigami: remove stub .cpp, add Qt platform integration headers for
QML gate. Matches KDE src/pattern for direct header-only builds.
Cookbook: add --no-backup-if-mismatch to patch invocation (fetch.rs).
Kernel: consolidate patch chain, add debug-scheme-serial-fix.
Docs: archive old audit reports, add CHANGELOG and hardware validation
matrix. Update AGENTS.md with Linux reference source policy.
Scripts: add test-network-qemu.sh, test-storage-qemu.sh.
.gitignore: add local/reference/ exclusion.
2026-05-04 11:57:48 +01:00
vasilito
1b5c19b22a
chore: sync all pending changes — kirigami platform headers, cookbook fix, docs, patches
...
Kirigami: remove stub .cpp, add Qt platform integration headers for
QML gate. Matches KDE src/pattern for direct header-only builds.
Cookbook: add --no-backup-if-mismatch to patch invocation (fetch.rs).
Kernel: consolidate patch chain, add debug-scheme-serial-fix.
Docs: archive old audit reports, add CHANGELOG and hardware validation
matrix. Update AGENTS.md with Linux reference source policy.
Scripts: add test-network-qemu.sh, test-storage-qemu.sh.
.gitignore: add local/reference/ exclusion.
2026-05-04 11:57:48 +01:00
vasilito
11993af01f
fix: rebase base patches, commit recipe drift, add relibc rlimit/sysconf
...
Base: fix P6-driver-new-modules.patch (ed format -> unified diff) for new
driver modules (ncq, itr, phy). P6-driver-main-fixes.patch now applies with
offset on current upstream source.
Relibc: remove stale P5-named-semaphores (upstream has stubs), add
P10-stack-size-8mb and P11-getrlimit-getrusage (per-process rlimit table,
sysconf integration, getdtablesize fix, null-pointer safety).
Kernel: consolidate 29 individual patches into single redbear-consolidated.patch.
Userutils: P5-redbear-branding replaces P4-login-rate-limit.
Recipe.toml changes now committed so they survive source resets.
2026-05-04 11:49:15 +01:00
vasilito
7f2bf081c5
fix: rebase base patches, commit recipe drift, add relibc rlimit/sysconf
...
Base: fix P6-driver-new-modules.patch (ed format -> unified diff) for new
driver modules (ncq, itr, phy). P6-driver-main-fixes.patch now applies with
offset on current upstream source.
Relibc: remove stale P5-named-semaphores (upstream has stubs), add
P10-stack-size-8mb and P11-getrlimit-getrusage (per-process rlimit table,
sysconf integration, getdtablesize fix, null-pointer safety).
Kernel: consolidate 29 individual patches into single redbear-consolidated.patch.
Userutils: P5-redbear-branding replaces P4-login-rate-limit.
Recipe.toml changes now committed so they survive source resets.
2026-05-04 11:49:15 +01:00
vasilito
1e71b37bdb
chore: close session — commit all remaining pre-existing state
...
Finalize all non-artifact changes accumulated from other sessions:
- config updates, recipe changes, source edits, patches
- pkgar/cache artifacts intentionally excluded (build outputs)
This is the maximum achievable scope for this session.
Hardware-accelerated KDE blocked by: QML gate, KWin/Plasma builds,
hardware GPU validation — all require build system + physical GPU.
2026-05-01 03:15:20 +01:00
vasilito
97f5a870a2
chore: close session — commit all remaining pre-existing state
...
Finalize all non-artifact changes accumulated from other sessions:
- config updates, recipe changes, source edits, patches
- pkgar/cache artifacts intentionally excluded (build outputs)
This is the maximum achievable scope for this session.
Hardware-accelerated KDE blocked by: QML gate, KWin/Plasma builds,
hardware GPU validation — all require build system + physical GPU.
2026-05-01 03:15:20 +01:00
vasilito
34360e1e4f
feat: P0-P6 kernel scheduler + relibc threading comprehensive implementation
...
P0-P2: Barrier SMP, sigmask/pthread_kill races, robust mutexes, RT scheduling, POSIX sched API
P3: PerCpuSched struct, per-CPU wiring, work stealing, load balancing, initial placement
P4: 64-shard futex table, REQUEUE, PI futexes (LOCK_PI/UNLOCK_PI/TRYLOCK_PI), robust futexes, vruntime tracking, min-vruntime SCHED_OTHER selection
P5: setpriority/getpriority, pthread_setaffinity_np, pthread_setname_np, pthread_setschedparam (Redox)
P6: Cache-affine scheduling (last_cpu + vruntime bonus), NUMA topology kernel hints + numad userspace daemon
Stability fixes: make_consistent stores 0 (dead TID fix), cond.rs error propagation, SPIN_COUNT adaptive spinning, Sys::open &str fix, PI futex CAS race, proc.rs lock ordering, barrier destroy
Patches: 33 kernel + 58 relibc patches, all tracked in recipes
Docs: KERNEL-SCHEDULER-MULTITHREAD-IMPROVEMENT-PLAN.md updated, SCHEDULER-REVIEW-FINAL.md created
Architecture: NUMA topology parsing stays userspace (numad daemon), kernel stores lightweight NumaTopology hints
2026-04-30 18:21:48 +01:00
vasilito
2e99d4073b
feat: P0-P6 kernel scheduler + relibc threading comprehensive implementation
...
P0-P2: Barrier SMP, sigmask/pthread_kill races, robust mutexes, RT scheduling, POSIX sched API
P3: PerCpuSched struct, per-CPU wiring, work stealing, load balancing, initial placement
P4: 64-shard futex table, REQUEUE, PI futexes (LOCK_PI/UNLOCK_PI/TRYLOCK_PI), robust futexes, vruntime tracking, min-vruntime SCHED_OTHER selection
P5: setpriority/getpriority, pthread_setaffinity_np, pthread_setname_np, pthread_setschedparam (Redox)
P6: Cache-affine scheduling (last_cpu + vruntime bonus), NUMA topology kernel hints + numad userspace daemon
Stability fixes: make_consistent stores 0 (dead TID fix), cond.rs error propagation, SPIN_COUNT adaptive spinning, Sys::open &str fix, PI futex CAS race, proc.rs lock ordering, barrier destroy
Patches: 33 kernel + 58 relibc patches, all tracked in recipes
Docs: KERNEL-SCHEDULER-MULTITHREAD-IMPROVEMENT-PLAN.md updated, SCHEDULER-REVIEW-FINAL.md created
Architecture: NUMA topology parsing stays userspace (numad daemon), kernel stores lightweight NumaTopology hints
2026-04-30 18:21:48 +01:00
vasilito
24289bf93f
feat: supplementary groups + credential syscalls — setgroups/getgroups/RLIMIT
...
Kernel (3 files, 32 lines):
- Context.groups: Vec<u32> — supplementary group storage
- CallerCtx.groups — exposed to schemes for access control
- Proc scheme Groups handle — auth-{fd}-groups read/write path
- Fork inheritance — new-context copies parent groups to child
Relibc (4 files, 82 insertions, 84 deletions):
- posix_setgroups()/posix_getgroups() in redox-rt sys.rs
- DynamicProcInfo.groups cache in lib.rs
- setgroups() real impl via thr_fd.dup(auth-{fd}-groups)
- getgroups() kernel-only (no /etc/group fallback)
- initgroups() functional via setgroups()
- getrlimit/setrlimit userspace stubs with defaults
Patches:
- local/patches/kernel/P4-supplementary-groups.patch
- local/patches/relibc/P4-setgroups-getgroups.patch
Docs updated:
- COMPREHENSIVE-OS-ASSESSMENT: credential blocker → RESOLVED
- KERNEL-IPC-CREDENTIAL-PLAN: marked Phases K1-K2,K4 complete
- local/AGENTS.md: credential gap section → RESOLVED
Unblocks: polkit, dbus-daemon, logind, sudo/su, redbear-authd
2026-04-30 10:08:54 +01:00