4lDO2
1f8d7bc67c
Always check shootdown reqs when locking addrsp.
2024-03-04 19:03:01 +01:00
4lDO2
3a915c7fd5
Fix lock/guard mismatch, move r#move to wrapper.
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
156017a25d
Refactor: wrap RwLock<AddrSpace>.
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
96f1a14115
Remove some dead code
2024-02-25 20:06:22 +01:00
bjorn3
782ec87f27
Fix UB in the locking code of context switching
...
The spin crate considers it UB to call force_write_unlock while there is
a threads trying to obtain a read lock on the same rwlock.
This also switches to the spinning_lot crate for the context rwlock as
it has support for a write guard keeping a reference to the rwlock using
an Arc instead of a reference.
2024-02-25 17:07:41 +01:00
Jeremy Soller
45f1c4e29e
Add rustfmt from relibc and apply it with cargo fmt
2024-01-17 13:52:01 -07:00
Jeremy Soller
d18c316012
Add session ID
2024-01-08 14:43:11 -07:00
bjorn3
2d065083df
Use HashMap instead of BTreeMap where possible
...
This shrinks the kernel from 905840 bytes to 862408 bytes.
2023-12-13 19:55:20 +01:00
4lDO2
3a35338aa7
Remove as_{filetable,sigaction,addrspace}.
2023-12-13 11:08:12 +01:00
4lDO2
f3ce5b167d
Make proc: and thisproc: global.
2023-12-13 11:08:11 +01:00
4lDO2
679c26c03b
s/Arc<dyn KernelScheme>/enum, but deref as dyn.
2023-12-13 11:08:07 +01:00
4lDO2
036a4bdee4
Replace syscall::Scheme with KernelScheme.
2023-11-15 20:00:47 +01:00
4lDO2
38e669c807
Dynamic fsgsbase support, enable by default.
2023-09-14 09:25:30 +02:00
4lDO2
f028b77412
Use config.toml instead of x86_* Cargo feature.
2023-09-12 21:19:06 +02:00
4lDO2
f025ece614
Replace from/into with get/new when necessary.
2023-09-06 08:38:10 +02:00
4lDO2
45d1c256ea
Add LogicalCpuSet as a sched affinity mask.
2023-09-04 21:57:54 +02:00
4lDO2
3b725b2c27
Add logical CPU ID newtype, switch to u32.
2023-09-04 21:27:48 +02:00
4lDO2
8f98d5b987
Extend mremap, eager mappings for real hardware.
2023-08-03 12:37:58 +02:00
4lDO2
2070fa44b7
Fix warnings.
2023-08-02 13:07:49 +02:00
4lDO2
c9aa5ca851
WIP: Add SYS_MREMAP.
2023-07-25 10:52:24 +02:00
4lDO2
2660c3e07a
WIP: Pin fmap grants that are borrowed too.
...
This might not be the most ideal solution, since a GiB grant can be
EBUSY blocked if a single page is used by an indefinitely-blocking
UserScheme. But, the alternatives would impose lots of additional
complexity, such as increasing the PageInfo size, adding more
refcounting arrays to grants, etc.
2023-07-25 10:52:24 +02:00
4lDO2
d3ecedefd9
Notify schemes when mmaps are unmapped.
2023-07-25 10:52:23 +02:00
4lDO2
70b4d99c96
Implement MAP_FIXED without MAP_FIXED_NOREPLACE.
2023-07-25 10:52:23 +02:00
4lDO2
cbec83215a
Lazy-evaluate pages returned by fmap.
2023-07-25 10:52:22 +02:00
4lDO2
9182722f84
WIP: Allow listing address space grants again.
2023-07-25 10:52:22 +02:00
4lDO2
b24cf821c2
Support transferring grants again.
2023-07-25 10:52:22 +02:00
4lDO2
b3a6a6744a
Pin grants that are used in UserScheme.
2023-07-25 10:52:22 +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
23fede5db0
Remove scheme funmap methods.
2023-07-25 10:52:20 +02:00
4lDO2
f7bffacef0
Implement Drop for AddrSpace.
2023-07-25 10:52:20 +02:00
4lDO2
593e21d95e
Support schemes.
2023-07-25 10:52:19 +02:00
4lDO2
f53a1ffd53
Remove proc:pid/memory.
2023-07-25 10:52:19 +02:00
4lDO2
490e1b2777
WIP: Track grant ownership.
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
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
4lDO2
58c0c5d040
Remove one level of indirection for Context::name.
2023-05-27 14:27:34 +02:00
4lDO2
45f031b50d
Improve clone_entry lock granularity.
2023-04-30 17:54:05 +02:00
4lDO2
62eab8a2fe
Retry rather than panic if clone_entry is unset.
2023-04-09 12:04:08 +02:00
4lDO2
8d14d54fa9
Support scheduler CPU affinity.
2023-02-15 14:50:01 +01:00
Jeremy Soller
8e0f54cb31
Clippy fixes
2022-11-11 13:19:14 -07: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
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
84704353af
Support address space change on aarch64
2022-08-24 18:54:42 -06:00