Keyboard lights, TLB shootdowns, battery in sysfs, /proc/pid/maps

Caps, Num and Scroll Lock now light their LEDs on PS/2 and USB keyboards,
share one state between keyboards, and stop toggling on key repeat. X sets
them through evdev writes while it holds the keyboard.

Unmapping memory in a process with threads on other CPUs now flushes their
TLBs with an IPI. Without it a freed page stayed reachable through stale
translations, which corrupted Epiphany's heap on SMP.

ACPI batteries and AC adapters appear under /sys/class/power_supply.
/proc/<pid>/maps lists file mappings, and a process killed by a fault
names the file and offset it died in. r8169 gets a 256-entry RX ring.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4
This commit is contained in:
Nexoniarz 2026-10-25 13:43:27 +01:00
commit 438e7af141
18 changed files with 945 additions and 9 deletions

View file

@ -128,7 +128,12 @@ struct rtl_desc {
#define DESC_LS 0x10000000 // last fragment
#define DESC_LEN 0x00003FFF
#define NRX 32
// 256, as the e1000 has. It was 32, and TCP advertises a 256 KB window --
// some 180 full frames in flight -- which a gigabit link fills 32 slots with
// in under half a millisecond. Everything past them was dropped, TCP read the
// drops as congestion, and a download on the laptop crawled: apk sat on its
// first index for minutes. The chip takes up to 1024.
#define NRX 256
#define NTX 32
#define BUFSZ 2048 // one frame, with room for a VLAN tag