Re: [PATCH 1/3 gnumach] vm_map: Fix deadlock in vm code

2024-02-21 Thread Sergey Bugaev
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

Re: [PATCH 1/3 gnumach] vm_map: Fix deadlock in vm code

2024-02-21 Thread Samuel Thibault
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

Re: [PATCH 0/3 gnumach] vm_map and gsync changes

2024-02-21 Thread Samuel Thibault
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

Re: [PATCH 2/3 gnumach] vm_map_lookup: Add parameter for exiting with map locked

2024-02-21 Thread Samuel Thibault
(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

[PATCH 2/3 gnumach] vm_map_lookup: Add parameter for exiting with map locked

2024-02-21 Thread Damien Zammit
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

[PATCH 0/3 gnumach] vm_map and gsync changes

2024-02-21 Thread Damien Zammit
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

[PATCH 1/3 gnumach] vm_map: Fix deadlock in vm code

2024-02-21 Thread Damien Zammit
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

Re: [PATCH 3/3 gnumach] kern/gsync: Use vm_map_lookup with exit_map_locked as appropriate

2024-02-21 Thread Samuel Thibault
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

[PATCH 3/3 gnumach] kern/gsync: Use vm_map_lookup with exit_map_locked as appropriate

2024-02-21 Thread Damien Zammit
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