tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: vmspace refcnt refactor patch



On 16.05.2020 07:48, Nick Hudson wrote:
> On 15/05/2020 17:35, Kamil Rytarowski wrote:
>> I propose the following patch:
>>
>> http://netbsd.org/~kamil/patch-00253-refactor-vmspace-refcnt.txt
>>
>> Does it look good?
>>
>> Nick, does it fix the hppa locking problem?
>>
> 
> Thanks for working on this.
> 
> Unfortunately, it doesn't fix all the problems...
> 

Please check this:

http://netbsd.org/~kamil/patch-00254-remove-lwp_lock_in_sstep.txt

In general I don't like the locking model in ptrace(2), but this change
is not making anything worse.

> 
>     setstep1: [ 209.5497837] Mutex error: assert_sleepable,78: spin
> lock held
> 
> [ 209.5497837] lock address : 0x000000003ffccf00 type     :  spin
> [ 209.5497837] initialized  : 0x00000000007d6f78
> [ 209.5497837] shared holds :                  0 exclusive:     1
> [ 209.5497837] shares wanted:                  0 exclusive:     0
> [ 209.5497837] relevant cpu :                  0 last held:     0
> [ 209.5497837] relevant lwp : 0x000000003fc36d00 last held:
> 0x000000003fc36d00
> [ 209.5497837] last locked* : 0x000000000084a760 unlocked :
> 0x00000000007d5134
> [ 209.5497837] owner field  : 0x00000000ffffff10 wait/spin:   0/1
> 
> [ 209.5497837] panic: LOCKDEBUG: Mutex error: assert_sleepable,78: spin
> lock held
> [ 209.5497837] cpu0: Begin traceback...
> [ 209.5497837] vpanic() at netbsd:vpanic+0x1b8
> [ 209.5497837] panic() at netbsd:panic+0x38
> [ 209.5497837] lockdebug_abort1() at netbsd:lockdebug_abort1+0x170
> [ 209.5497837] lockdebug_barrier() at netbsd:lockdebug_barrier+0x114
> [ 209.5497837] assert_sleepable() at netbsd:assert_sleepable+0xa0
> [ 209.5497837] pool_cache_get_paddr() at netbsd:pool_cache_get_paddr+0x254
> [ 209.5497837] uvm_mapent_alloc() at netbsd:uvm_mapent_alloc+0x150
> [ 209.5497837] uvm_map_enter() at netbsd:uvm_map_enter+0x848
> [ 209.5497837] uvm_map() at netbsd:uvm_map+0xd4
> [ 209.5497837] uvm_map_reserve() at netbsd:uvm_map_reserve+0x240
> [ 209.5497837] uvm_map_extract() at netbsd:uvm_map_extract+0x6fc
> [ 209.5497837] uvm_io() at netbsd:uvm_io+0xf8
> [ 209.5497837] process_domem() at netbsd:process_domem+0x94
> [ 209.5497837] ss_get_value() at netbsd:ss_get_value+0x74
> [ 209.5497837] process_sstep() at netbsd:process_sstep+0x74
> [ 209.5497837] do_ptrace() at netbsd:do_ptrace+0xe00
> [ 209.5497837] sys_ptrace() at netbsd:sys_ptrace+0x4c
> [ 209.5497837] syscall() at netbsd:syscall+0x480
> [ 209.5497837] -- syscall #26(7, 141a, 1, 0, ...) (0xd3131000)
> [ 209.5497837] cpu0: End traceback...
> 
> nick@zoom:/netbsd/hppa/obj.hppa/sys/arch/hppa/compile/GENERIC$
> hppa--netbsd-addr2line -e netbsd.gdb  -f 0x00000000007d6f78
> sched_cpuattach
> /netbsd/hppa/src/sys/kern/kern_runq.c:147
> nick@zoom:/netbsd/hppa/obj.hppa/sys/arch/hppa/compile/GENERIC$
> hppa--netbsd-addr2line -e netbsd.gdb  -f 0x000000000084a760
> lwp_lock
> /netbsd/hppa/src/sys/sys/lwp.h:412
> nick@zoom:/netbsd/hppa/obj.hppa/sys/arch/hppa/compile/GENERIC$
> hppa--netbsd-addr2line -e netbsd.gdb  -f 0x00000000007d5134
> calcru
> /netbsd/hppa/src/sys/kern/kern_resource.c:506 (discriminator 2)
> nick@zoom:/netbsd/hppa/obj.hppa/sys/arch/hppa/compile/GENERIC$
> 
> Nick



Attachment: signature.asc
Description: OpenPGP digital signature



Home | Main Index | Thread Index | Old Index