bjorn3
219dedda32
Unify start.rs between x86 and x86_64
2025-06-28 19:57:52 +02:00
bjorn3
1864f12913
Make the HPET debug logs more compact
2025-06-28 19:37:56 +02:00
Jeremy Soller
0140e2a382
Fix compilation of emergency_stop on x86
2025-04-11 20:55:56 -06:00
4lDO2
92fcb4472b
Use more reliable triple fault for emerg..._reset.
2025-03-31 14:58:05 +02:00
4lDO2
3ae117b812
Outsource x86 RTC handling to rtcd.
2025-03-30 15:28:25 +02:00
bjorn3
23fd308745
Reduce verbosity of debug logs during booting
...
A bunch of things are now printed a bit more compactly or without
interleaving of logs on a single line. Also a bunch of not that useful
logs are no longer printed by default at all.
2025-03-15 20:52:06 +01:00
4lDO2
f044ffb03b
Remove stable #![feature] and most x86_64 static mut.
2025-02-21 14:16:58 +01:00
Andrey Turkin
9fe8f759af
Fix formatting and a warning
2024-11-06 12:13:13 +03:00
Jeremy Soller
99fbdf426c
Fix assumption that CPU ID must equal APIC ID
2024-11-04 14:46:46 -07:00
Jeremy Soller
4db9673e2a
Support SPCR and clean up device memory allocation
2024-10-31 10:53:58 -06:00
IncompententPirate
fc5d246b30
remove wrapper functions
2024-09-26 22:34:55 +00:00
Andrey Turkin
14eb140f7a
Refactor panic stack walking
2024-09-26 19:22:21 +03:00
Andrey Turkin
755694494b
Factor KernelMapper out of arch
...
Same implementation on all the platforms. Also remove mutable Deref as it allowed circumventing RO check
2024-09-25 21:51:39 +03:00
Kamil Koczurek
548fd63264
tsc: calculate elapsed ticks using saturating_sub
...
RDTSC readouts might not actually be monotonically increasing due to
desynchronization between CPU cores, so checked_sub was causing a kernel
panic.
2024-09-10 14:16:38 +02:00
4lDO2
652cdc7ef2
Replace repr(packed) with repr(C, packed).
2024-09-08 20:56:50 +02:00
Andrey Turkin
d2ebc7ff05
Wholesale fix of warnings
...
Pretty straightforward changes. This commit tries to avoid making any non-trivial fixes.
2024-09-04 10:55:01 +03:00
Jacob Lorentzon
643d7400db
Implement paravirtualized KVM TSC support
2024-09-03 21:20:06 +00:00
bjorn3
8f186a692f
Allow writing messages to debug: without preserving them in sys:log
...
This would allow logd to write all received log messages to debug:
without causing an infinite loop when it at the same time reads all
messages in sys:log.
2024-07-25 12:49:43 +02:00
bjorn3
dc36d18812
Remove unnecessary discard of return value in debug::Writer
2024-07-22 14:15:20 +02:00
4lDO2
d94baa2712
Run rustfmt.
2024-07-15 17:50:18 +02:00
4lDO2
f3532f4549
Fix static mut ref warnings.
2024-07-15 17:48:46 +02:00
4lDO2
5e7db80285
Fix a bunch of warnings.
2024-07-15 17:48:45 +02:00
Jeremy Soller
5b5b2dbc97
Debug messages during device init
2024-04-13 09:34:00 -06:00
4lDO2
9253e16240
Fix kernel stack sizes, other arches.
2024-03-25 16:29:07 +01:00
4lDO2
b5523df187
Only support power-of-two frame allocations.
2024-03-24 14:40:15 +01:00
4lDO2
1b3e024f7d
Fix profiling code.
2024-03-23 15:52:18 +01:00
4lDO2
0e8c187a50
WIP: Implement more of deallocate_p2frame.
2024-03-22 13:21:52 +01:00
Jeremy Soller
8f09b4aa06
Do not use HPET on i686
2024-03-19 20:44:47 -06:00
4lDO2
4862977fa5
Optimize syscall fast path without tracing.
2024-03-18 20:38:11 +01:00
4lDO2
8e19da338b
Fix kstop and kreset.
2024-03-16 17:49:31 +01:00
4lDO2
1f8d7bc67c
Always check shootdown reqs when locking addrsp.
2024-03-04 19:03:01 +01:00
4lDO2
3a592b9079
Use regular non-NMI IPIs for TLB shootdown.
2024-03-04 19:03:00 +01:00
4lDO2
b5efaceb51
Fix more synchronization.
2024-03-04 19:03:00 +01:00
4lDO2
098cdd6067
Fix flusher, currently only with -smp 1
2024-03-04 19:03:00 +01:00
4lDO2
79381249a2
Implement a TLB shootdown draft.
2024-03-04 19:03:00 +01:00
4lDO2
6bf90f9eee
Build the foundation for TLB shootdown.
2024-03-04 19:03:00 +01:00
4lDO2
0c6c857012
Improve LogicalCpu{Id,Set}, make set atomic.
...
Technically there should be an atomic and nonatomic set type, but perf
should be the same, as the nonatomic one would only be used when setting
the sched_affinity.
2024-03-04 19:02:56 +01:00
bjorn3
e23f0ed66b
Share idt.rs between x86 and x86_64
2024-02-25 15:49:29 +01:00
bjorn3
f92b4c9608
Unify cpuid between x86 and x86_64 and don't return an Option
...
Systems without cpuid support aren't supported anyway.
2024-02-25 15:07:31 +01:00
bjorn3
eecfbb19d2
Share the functions in interrupt/mod.rs between x86 and x86_64
2024-02-25 14:48:28 +01:00
bjorn3
fbe2980b3d
Share interrupt/ipi.rs between x86 and x86_64
2024-02-25 14:48:15 +01:00
bjorn3
62614db9ac
Share interrupt/trace.rs between x86 and x86_64
2024-02-25 14:48:12 +01:00
Jeremy Soller
39c20720ee
Fix compilation on x86_64
2024-02-16 22:05:57 -07:00
Jeremy Soller
e4eb4031bd
Fix APIC offsets for x86 32-bit
2024-02-16 22:02:47 -07:00
Jeremy Soller
6c6fc18f8e
Format
2024-02-16 21:40:42 -07:00
bjorn3
58314e6a47
Share a whole lot more code between x86 and x86_64
2024-01-25 13:34:04 +00:00
bjorn3
785975089b
Dedup the last remaining piece of code in the driver module between x86 and x86_64
2024-01-25 13:34:04 +00:00
bjorn3
0d86348e41
Dedup the apic code between x86 and x86_64
2024-01-25 13:34:04 +00:00
bjorn3
86fb4208f2
Dedup some more code between x86 and x86_64
2024-01-25 13:34:04 +00:00
bjorn3
0d092d7921
Dedup code for most x86 and x86_64 device drivers
2024-01-25 13:34:04 +00:00