Andrew Mackenzie
d3a2fe7083
Qemu hpet bug
2023-05-02 16:19:01 +00:00
4lDO2
78557eff18
Fix memcpy, memmove, memset, and memcmp.
2023-04-01 21:30:10 +02:00
Jeremy Soller
12688a929e
Context switch optimization
...
- Contexts for other CPUs will never be evaluated for switch
- Running contexts will never be evaluated for switch
- Arc::clone is only called for previous and next context when there is a context to switch to
- Lots of cleanup to the switch function
2023-03-09 14:30:12 -07:00
Jeremy Soller
3bf381caf8
Do not panic if ACPI is not available
2023-03-03 18:56:23 -07:00
4lDO2
b73922bc95
Also fix outdated-#![feature(...)] warnings.
2023-02-24 23:16:57 +01:00
4lDO2
ac913e49f9
Pin kmain contexts to corresponding CPUs.
2023-02-24 23:05:11 +01:00
4lDO2
8d14d54fa9
Support scheduler CPU affinity.
2023-02-15 14:50:01 +01:00
Jeremy Soller
cb58500b68
Update for new Rust
2023-02-11 14:50:55 -07:00
Jeremy Soller
55fd7dfff7
Add centiseconds to context time
2023-01-30 10:51:32 -07:00
Jeremy Soller
e5c3be86cd
Ensure unmounting is read from atomic in all cases
2023-01-12 07:33:54 -07:00
Jeremy Soller
85e0a7c368
Record mappings in funmap with page aligned size, always
2022-12-21 18:29:15 -07:00
Jeremy Soller
523d00eeac
Make it possible to track syscall time when debugging
2022-12-19 10:11:59 -07:00
Jeremy Soller
d298459686
Add sys:irq
2022-11-18 14:18:06 -07:00
Jeremy Soller
1e81c9d78b
Fix compilation without ACPI feature
2022-11-16 13:53:04 -07:00
Jeremy Soller
111606ccdc
Increase PIT divisor again to reduce wasted interrupt handling time
2022-11-15 11:50:23 -07:00
Jeremy Soller
33aa263deb
Fixes for hpet counter read, choose better PIT divisor
2022-11-14 13:58:55 -07:00
Jeremy Soller
2052cc8cdc
Allow arch to provide higher precision time
2022-11-14 11:12:44 -07:00
Jeremy Soller
31868077f0
Use u128 for time, store CPU time of processes
2022-11-14 10:10:17 -07:00
Jeremy Soller
ee6c9f4020
Fix compilation on i686
2022-11-11 13:23:07 -07:00
Jeremy Soller
8e0f54cb31
Clippy fixes
2022-11-11 13:19:14 -07:00
Jeremy Soller
515a03b870
Fix warnings
2022-11-11 12:51:07 -07:00
Jeremy Soller
6bef3afee6
Support bootloader stride
2022-09-16 12:29:38 -06:00
Jeremy Soller
3bef7d7bad
Simplify ps2 interrupts to reduce latency to reading bytes
2022-09-08 10:33:31 -06:00
Jeremy Soller
f5bdae2d0c
Reduce schreduler time slices to reduce latency
2022-09-07 18:21:30 -06:00
Jeremy Soller
6753251af3
Do not allow mmap with page_count 0
2022-08-31 16:14:27 -06:00
Jeremy Soller
7fbe5112ca
Allow physmap with unaligned size
2022-08-29 09:41:35 -06:00
Jeremy Soller
1b3c6a957d
Add aarch64 debugger
2022-08-28 09:27:38 -06:00
Jeremy Soller
91b5d64c22
Use current address space for proc kfmap workaround
2022-08-27 18:05:20 -06:00
Jeremy Soller
2278fd7fe1
Workaround to ensure proc kfmap does not try to map kernel memory
2022-08-27 10:55:52 -06:00
Jeremy Soller
1fadde3ee8
Eliminate deadlock in capture_inner
2022-08-27 07:48:47 -06:00
Jeremy Soller
6f6648c4d2
Disable HPET use on x86
2022-08-26 11:13:53 -06:00
Jeremy Soller
6dbb85d4c9
Static mapping of some CPU devices outside of physmap
2022-08-26 11:08:13 -06:00
Jeremy Soller
002425d625
Fix trampoline on x86
2022-08-26 08:24:04 -06:00
Jeremy Soller
33b8fcecfb
Sync x86_64 trampoline with bootloader
2022-08-26 08:08:24 -06:00
Jeremy Soller
fb1bdf7c3e
Ignore null bytes from pl011 uart
2022-08-25 20:10:35 -06:00
Jeremy Soller
6a3fc5a68a
Send SIGSEGV on aarch64 exception
2022-08-25 20:00:53 -06:00
Jeremy Soller
80b8382cd7
Fix aarch64 kfx size
2022-08-25 18:40:19 -06:00
Jeremy Soller
82ac7a66f7
Only save preserved regs in aarch64 context switch
2022-08-25 18:23:51 -06:00
Jeremy Soller
ff738074d2
Cleanup aarch64 code
2022-08-25 15:46:27 -06:00
Jeremy Soller
afd82ba4bb
Save/restore aarch64 FPU regs
2022-08-25 09:30:53 -06:00
Jeremy Soller
31680bf5b9
Do not set tpidr_el0 from kernel
2022-08-25 08:46:26 -06:00
Jeremy Soller
b3b5bb8a91
Simplify handling of aarch64 env regs
2022-08-25 08:12:07 -06:00
Jeremy Soller
f7e8026494
Set aarch64 thread pointers
2022-08-24 19:21:36 -06:00
Jeremy Soller
545a561a26
Set ptrace regs for aarch64
2022-08-24 19:03:30 -06:00
Jeremy Soller
84704353af
Support address space change on aarch64
2022-08-24 18:54:42 -06:00
Jeremy Soller
6d3fa8b374
Enable clone_handler on aarch64
2022-08-24 15:50:10 -06:00
Jeremy Soller
b20a71113c
Implement aarch64 switch_to_inner using naked function
2022-08-24 13:24:37 -06:00
Jeremy Soller
fb34e4eddf
Partially implement stack trace on aarch64
2022-08-24 12:34:31 -06:00
Jeremy Soller
0ed9f03317
Use push/pop scratch for aarch64 signal handler
2022-08-24 12:29:48 -06:00
Jeremy Soller
613968dc30
Use push/pop scratch for x86 signal handler
2022-08-24 11:39:31 -06:00