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:
parent
73dcea7496
commit
438e7af141
18 changed files with 945 additions and 9 deletions
|
|
@ -581,3 +581,19 @@ void cmostime(struct rtcdate *r)
|
|||
*r = t1;
|
||||
r->year += 2000;
|
||||
}
|
||||
|
||||
// A fixed interrupt to one processor, by APIC id. Waits for the local APIC
|
||||
// to say it has sent the last one before writing the next: two ICR writes
|
||||
// back to back lose the first.
|
||||
void
|
||||
lapic_send_ipi(int apicid, int vector)
|
||||
{
|
||||
if (!lapic)
|
||||
return;
|
||||
while (lapic[ICRLO] & DELIVS)
|
||||
;
|
||||
lapicw(ICRHI, apicid << 24);
|
||||
lapicw(ICRLO, vector); // fixed, physical, edge, no shorthand
|
||||
while (lapic[ICRLO] & DELIVS)
|
||||
;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue