- Aug 02, 2023
-
-
Jacob Lorentzon authored
-
- Jul 25, 2023
-
-
Jacob Lorentzon authored
-
- Nov 11, 2022
-
-
Jeremy Soller authored
-
- Jul 27, 2022
-
-
Jacob Lorentzon authored
-
Jacob Lorentzon authored
-
Jacob Lorentzon authored
Everything seems to work for the most part, but now there are tons of daemons which rely on syscall::clone, which is now implemented in relibc :(
-
Jacob Lorentzon authored
-
Jacob Lorentzon authored
Turns out the problem all along was that the ActivePageTable was never dropped in usermode_bootstrap. So as soon as any other hardware thread tried to do page table business, it deadlocked!
-
Jacob Lorentzon authored
-
- Aug 11, 2021
-
-
Jacob Lorentzon authored
Note that this is very preliminary, and I merely got my already freezing kernel branch not to triple fault, but I would probably apply this patch to upstream. What is changed here, is that rather than relying on recursive mapping for accessing page table frames, it now uses linear translation (virt=phys+KERNEL_OFFSET). The only problem is that the paging code now makes assumptions that the entire physical address space remains mapped, which is not necessarily the case on x86_64 architecturally, even though systems with RAM more than a PML4 are very rare. We'd probably lazily (but linearly) map physical address space using huge pages.
-
- May 04, 2021
-
-
Jeremy Soller authored
-
- May 03, 2021
-
-
Jeremy Soller authored
-
Jeremy Soller authored
-
- Apr 29, 2021
-
-
Jeremy Soller authored
-
- Feb 13, 2021
-
-
Jeremy Soller authored
-
- Jan 21, 2021
-
-
Robin Randhawa authored
-
- Jan 15, 2021
-
-
-
Robin Randhawa authored
-
- Jan 10, 2021
-
-
Jeremy Soller authored
-
- Jul 11, 2020
-
-
jD91mZM2 authored
Because the way we were using inline assembly was technically incorrect and breaking the laws of rust This *finally* compiles. That doesn't mean it works!
-
- Jun 16, 2020
- Jun 15, 2020
- Jun 13, 2020
-
-
jD91mZM2 authored
-
- Apr 19, 2020
-
-
Jeremy Soller authored
-
- Feb 11, 2020
-
-
Jeremy Soller authored
-
- Aug 15, 2019
- Jul 27, 2019
-
-
jD91mZM2 authored
-
- Jul 26, 2019
- Jul 24, 2019
-
-
jD91mZM2 authored
-
- Jul 21, 2019
- Jul 20, 2019
-
-
jD91mZM2 authored
This is a curious problem and it's really hard to solve it in a way that doesn't feel hacky. On one hand, of course you want to be able to modify and intercept what happens when you use a signal, right? On the other hand, changes made to the context (especially singlestepping) while a signal is handled (such as `SIGSTOP`) are not preserved since the stack is restored after the signal handler was invoked. I think what we have in this change makes sense anyway, as we don't really want users modifying registers and other data in the default signal behavior that occurs **in kernel mode**. Also trying to use `PTRACE_SINGLESTEP` will set the singlestep flag only if in a user-mode signal handler, else it will set it on the instruction after the signal handling, which I guess makes sense since it can't affect the kernel-mode code that runs the default handler. I don't know. Help. Pls.
-
jD91mZM2 authored
-