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
|
|
@ -282,6 +282,10 @@ mmap_locked(void)
|
|||
vm_unmap_range(myproc()->pgdir, va, length);
|
||||
int fixed_file = f && f->type == FD_INODE && f->ip->type != T_DEV &&
|
||||
!(flags & MAP_ANONYMOUS);
|
||||
if (fixed_file)
|
||||
mapname_add(myproc()->mm, va, length, offset, f->path);
|
||||
else
|
||||
mapname_unmap(myproc()->mm, va, length);
|
||||
// Reserved, not backed. PROT_NONE is recorded too: mprotect() does not
|
||||
// change pages here, so a range reserved PROT_NONE and opened up later
|
||||
// has to be memory that can appear when it is touched.
|
||||
|
|
@ -440,6 +444,7 @@ mmap_locked(void)
|
|||
vm_unmap_range(myproc()->pgdir, va, length);
|
||||
return -ENOMEM;
|
||||
}
|
||||
mapname_add(myproc()->mm, va, length, offset, f->path);
|
||||
return va;
|
||||
}
|
||||
|
||||
|
|
@ -531,6 +536,7 @@ munmap_locked(void)
|
|||
if (bad_user_range(addr, length) || (addr % PGSIZE))
|
||||
return -EINVAL;
|
||||
uint64 end = addr + length;
|
||||
mapname_unmap(p->mm, addr, length);
|
||||
|
||||
// A segment or device mapping goes only as a whole, by its own address.
|
||||
// Part of one is refused: unmapping it the anonymous way below would kfree
|
||||
|
|
|
|||
Loading…
Reference in a new issue