4lDO2
b3a6a6744a
Pin grants that are used in UserScheme.
2023-07-25 10:52:22 +02:00
4lDO2
954a8d00fe
Make page fault handler recursive.
...
This is probably a bad idea, but it works for now, and can only cause
problems, if grants that borrow grants that borrow grants etc., are
used.
2023-07-25 10:52:21 +02:00
4lDO2
da6f6a316c
Return only one grant, External, for Grant::borrow.
2023-07-25 10:52:21 +02:00
4lDO2
b5430359d8
Forbid scheme calls with non-RAM physmapped memory.
2023-07-25 10:52:21 +02:00
4lDO2
43c433a3f0
Remove FmapCtxt.
2023-07-25 10:52:21 +02:00
4lDO2
8553bc7a59
WIP: Support userspace-backed borrowing mmaps.
2023-07-25 10:52:21 +02:00
4lDO2
024f3e3828
Fix deadlock, booting to shell works now.
2023-07-25 10:52:21 +02:00
4lDO2
ad78dcc5a1
WIP: Rudimentary MAP_SHARED fmap implementation.
2023-07-25 10:52:21 +02:00
4lDO2
afa61601c4
Add ContextStatus::HardBlocked.
2023-07-25 10:52:21 +02:00
4lDO2
23fede5db0
Remove scheme funmap methods.
2023-07-25 10:52:20 +02:00
4lDO2
0c365f54e6
WIP: FmapBorrowed.
2023-07-25 10:52:20 +02:00
4lDO2
20c3adf38d
WIP: Start rewriting fmap impl.
2023-07-25 10:52:20 +02:00
4lDO2
99975c0e42
WIP: Ensure that Grant::borrow does not borrow nonpresent grants.
2023-07-25 10:52:20 +02:00
4lDO2
dffc8ec9fc
Do not expect PageInfo for PhysMap grants.
2023-07-25 10:52:20 +02:00
4lDO2
20a84decdf
Fix MemoryScheme fmap.
2023-07-25 10:52:20 +02:00
4lDO2
15ce84164b
Reminder that borrow does handle "lack of grant".
2023-07-25 10:52:20 +02:00
4lDO2
50e2f51ab3
Remove outdated #[must_use].
2023-07-25 10:52:20 +02:00
4lDO2
f7bffacef0
Implement Drop for AddrSpace.
2023-07-25 10:52:20 +02:00
4lDO2
829d2276fb
Remove Context::vfork.
...
Since clone is no longer exists as a syscall, it makes little sense to
manage vfork in the kernel. Implementing vfork in userspace would still
be possible.
2023-07-25 10:52:20 +02:00
4lDO2
e34a3cee42
Fix mmap/munmap, invert borrowed/owned refcount.
2023-07-25 10:52:19 +02:00
4lDO2
45ec3ecc70
Track Allocated and CoW External the same way.
2023-07-25 10:52:19 +02:00
4lDO2
a599d9b389
WIP: Store PageInfo in separate data structure.
2023-07-25 10:52:19 +02:00
4lDO2
760fc2ba5a
WIP: Global page info structs.
2023-07-25 10:52:19 +02:00
4lDO2
593e21d95e
Support schemes.
2023-07-25 10:52:19 +02:00
4lDO2
0a5b6ce656
Reach proc:memory access in userspace.
2023-07-25 10:52:19 +02:00
4lDO2
11fdb3bb46
Copy on writes to CoW pages.
2023-07-25 10:52:19 +02:00
4lDO2
565db7694f
Add cow_refcount.
2023-07-25 10:52:19 +02:00
4lDO2
276f051d19
Further userspace progress, fix RMM bug.
2023-07-25 10:52:18 +02:00
4lDO2
8cfbc39b9f
Get further in userspace.
2023-07-25 10:52:18 +02:00
4lDO2
490e1b2777
WIP: Track grant ownership.
2023-07-25 10:52:18 +02:00
4lDO2
e7d94ddff5
WIP: Lazy zeroed mapping and page fault handler.
2023-07-25 10:52:18 +02:00
4lDO2
8dfa73db35
Post-refactor fixes.
2023-07-25 10:52:18 +02:00
4lDO2
34b4512dbd
Refactor Grants.
...
Page alignment is now verified at compile time, for example.
2023-07-25 10:52:13 +02:00
4lDO2
d4b5899c53
Remove allocator_owned hack.
2023-07-25 10:49:55 +02:00
bjorn3
e73e42be66
Replace intrinsics::abort() call in switch_finish_hook with safer abort mechanism
...
abort will still run the illegal instruction interrupt handler which may
not be safe.
2023-07-10 17:03:36 +02:00
bjorn3
7500ffaa5a
Remove uses of the arbitrary_self_types feature
2023-07-10 17:03:36 +02:00
4lDO2
3ded84c945
Simplify x86_64 percpu and GSBASE calculation
2023-07-10 14:13:12 +00:00
4lDO2
56f88e80c2
Usercopy migration
2023-07-06 13:03:21 +00:00
uuuvn
a5d4ccba57
More aarch64 stuff
2023-06-13 10:15:47 +00:00
uuuvn
63290429b2
Improve aarch64 code + memory management and crush some bugs
2023-06-12 14:46:02 +00:00
4lDO2
58c0c5d040
Remove one level of indirection for Context::name.
2023-05-27 14:27:34 +02:00
4lDO2
a451c0aa1b
Fix aarch64 build.
2023-05-06 17:49:39 +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
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
33aa263deb
Fixes for hpet counter read, choose better PIT divisor
2022-11-14 13:58:55 -07:00
Jeremy Soller
31868077f0
Use u128 for time, store CPU time of processes
2022-11-14 10:10:17 -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
6753251af3
Do not allow mmap with page_count 0
2022-08-31 16:14:27 -06:00