Nexoniarz
c1e52e172f
q35: five seconds of boot spent waiting on disks that are not there
...
/proc/interrupts on q35 said "LOSING 526" ticks: 5 s of boot with
interrupts off. Timing each step of kmain() found two waits:
- AHCI sent a COMRESET to every empty port and waited a second for a
link. DET = 0 is "no device", so only DET = 1 is worth a reset now
(after 20 ms of grace for a drive that is still spinning up).
- ideinit() read 0xFF from a bus with no IDE controller, took the BSY
bit for a busy drive, and waited out its 1 s timeout. A status of
0xFF means no controller and is answered at once.
That is every PC with SATA disks. q35 now loses 33 ticks, under the
flag; i440fx still roots on IDE and loses none.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HH7xukt4aaiGj1nQEAoQf1
2026-10-22 11:10:07 +02:00
..
audio.c
audio: /dev/dsp, AudioEngine, and an AC'97 under it
2026-09-24 14:23:13 +02:00
bio.c
storage: AHCI, GPT/MBR partitions, and a disk a PC can boot
2026-10-22 10:57:41 +02:00
blkdev.c
storage: AHCI, GPT/MBR partitions, and a disk a PC can boot
2026-10-22 10:57:41 +02:00
cdev.c
audio: /dev/dsp, AudioEngine, and an AC'97 under it
2026-09-24 14:23:13 +02:00
dbg.c
licence: SchOS is GPL-2.0-or-later, no longer Apache-2.0
2026-10-22 08:48:45 +02:00
device.c
audio: /dev/dsp, AudioEngine, and an AC'97 under it
2026-09-24 14:23:13 +02:00
disk.c
dev: raw disks are 64-bit, so a real drive stops wrapping at 4 GB
2026-08-11 12:15:38 +02:00
fb.c
gfx: the console and the crash screen stop drawing on a driver by name
2026-08-15 17:04:10 +02:00
gfx.c
smp: every stack on every AP was misaligned by eight
2026-09-23 19:37:35 +02:00
ide.c
q35: five seconds of boot spent waiting on disks that are not there
2026-10-22 11:10:07 +02:00
input.c
kernel: the clock ran 7x slow because the GPU never acknowledged its interrupt
2026-09-12 21:34:36 +02:00
irq.c
irq: MSI first, and poll the INTx lines that never arrive
2026-10-22 10:29:24 +02:00
kbd.c
kbd: three layouts, and the arrow keys were sitting on top of UTF-8
2026-09-20 01:09:32 +02:00
keymap.c
kbd: three layouts, and the arrow keys were sitting on top of UTF-8
2026-09-20 01:09:32 +02:00
mouse.c
boot: stop assuming the machine is an emulator
2026-10-22 10:29:12 +02:00
netuser.c
licence: SchOS is GPL-2.0-or-later, no longer Apache-2.0
2026-10-22 08:48:45 +02:00
pci.c
irq: MSI first, and poll the INTx lines that never arrive
2026-10-22 10:29:24 +02:00
pciuser.c
licence: SchOS is GPL-2.0-or-later, no longer Apache-2.0
2026-10-22 08:48:45 +02:00
procfs.c
dbg: the boot menu can turn on remote debugging, in a debug build
2026-09-24 15:05:23 +02:00
ramdisk.c
Initial commit: Schunix as it stands before the SchOS rename
2026-08-09 13:47:01 +02:00
text.c
gfx: one glyph blitter, and a terminal cell is a surface
2026-09-23 17:57:16 +02:00
ttf.c
font: the console draws outlines now, and a byte could not have held Ą
2026-09-20 00:35:34 +02:00
uart.c
boot: one line when it works, all of it when it does not
2026-09-14 21:19:50 +02:00
vt.c
licence: SchOS is GPL-2.0-or-later, no longer Apache-2.0
2026-10-22 08:48:45 +02:00