On Wed, Feb 21, 2024 at 9:44 PM Samuel Thibault wrote:
> Damien Zammit, le mer. 21 févr. 2024 13:45:59 +, a ecrit:
> > Authored-by: Sergey Bugaev
> IIRC you got to see which kind of deadlock we are protecting from here?
> I'd be very useful to document it here, so next people reading this ge
Damien Zammit, le mer. 21 févr. 2024 13:45:59 +, a ecrit:
> Authored-by: Sergey Bugaev
> ---
> vm/vm_map.c | 32 ++--
> 1 file changed, 22 insertions(+), 10 deletions(-)
>
> diff --git a/vm/vm_map.c b/vm/vm_map.c
> index f221c532..e4672260 100644
> --- a/vm/vm_map
Damien Zammit, le mer. 21 févr. 2024 13:45:55 +, a ecrit:
> gnumach source code to be compiled on 7 cores without faults, using:
> ./smp /bin/bash
> make -j7
Oh!!! We definitely want to try to deploy this on the buildds :D
Could you also try to benchmark a bit, to get an idea of h
(sorry my mail server kept the first mails for itself for some time...)
Damien Zammit, le mer. 21 févr. 2024 13:46:05 +, a ecrit:
> diff --git a/vm/vm_map.c b/vm/vm_map.c
> index e4672260..090a5c9c 100644
> --- a/vm/vm_map.c
> +++ b/vm/vm_map.c
> @@ -4627,7 +4627,8 @@ vm_map_t vm_map_fork(vm_m
This adds a parameter called exit_map_locked to vm_map_lookup()
that allows the function to return with the map locked.
This is to prepare for fixing a bug with gsync where the map
is locked twice by mistake.
Co-Authored-By: Sergey Bugaev
---
i386/intel/read_fault.c | 4 ++--
kern/gsync.c
This patchset fixes two critical deadlocks when running with SMP:
The first one is isolated to patch 1 (vm_map), the second is a combination of
patch 2 and 3 (vm_map_lookup + gsync).
When applied, these patches allow slave_pset to be entered
and gnumach source code to be compiled on 7 cores witho
Authored-by: Sergey Bugaev
---
vm/vm_map.c | 32 ++--
1 file changed, 22 insertions(+), 10 deletions(-)
diff --git a/vm/vm_map.c b/vm/vm_map.c
index f221c532..e4672260 100644
--- a/vm/vm_map.c
+++ b/vm/vm_map.c
@@ -1424,8 +1424,9 @@ vm_map_pageable_scan(struct vm_map
Damien Zammit, le mer. 21 févr. 2024 13:46:10 +, a ecrit:
> This refactors gsync functions so that the read lock on vm map
> is only taken once and extended throughout appropriate calls.
Please also explain here the "why": the deadlock scenario that was found
otherwise.
> Co-Authored-By: Serg
This refactors gsync functions so that the read lock on vm map
is only taken once and extended throughout appropriate calls.
Co-Authored-By: Sergey Bugaev
---
kern/gsync.c | 28 +++-
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/kern/gsync.c b/kern/gsync