NetBSD-Bugs archive

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

Re: kern/42656: netbsd-5: panic LOCKDEBUG in opencrypto(9)



The following reply was made to PR kern/42656; it has been noted by GNATS.

From: Hubert Feyrer <hubert%feyrer.de@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost, 
netbsd-bugs%netbsd.org@localhost
Subject: Re: kern/42656: netbsd-5: panic LOCKDEBUG in opencrypto(9)
Date: Wed, 27 Jan 2010 21:42:12 +0100 (CET)

 Looking more into the interaction of opencrypto and rnd,
 points:
 1/3: disabling rnd collection from hifn0 => still panics
 2/3: removing pseudo-device rnd from the kernel => needed for hifn(4)
 3/3: patching arc4_randrekey() to not use rnd_extract_data() =>
 
 Details:
 
 1/2:
 The panic still happens if the hifn0 device is not used for collecting 
 random data.
 
 # rndctl -l
 Source                 Bits Type      Flags
 wd0                    2367 disk estimate, collect
 hifn0                522989 rng  collect
 # rndctl -C -d hifn0
 # rndctl -l
 Source                 Bits Type      Flags
 wd0                    2367 disk estimate, collect
 hifn0                526426 rng
 # while true ; do  openssl speed -evp aes-128-cbc -elapsed ; done
 ...
 Mutex error: lockdebug_barrier: spin lock held
 
 lock address : 0x00000000c04a9954 type     :               spin
 initialized  : 0x00000000c0113204
 shared holds :                  0 exclusive:                  1
 shares wanted:                  0 exclusive:                  0
 current cpu  :                  0 last held:                  0
 current lwp  : 0x00000000cb9f85c0 last held: 0x00000000cb9f85c0
 last locked  : 0x00000000c0117984 unlocked : 0x00000000c0118b69
 owner field  : 0x0000000000010600 wait/spin:                0/1
 
 panic: LOCKDEBUG
 fatal breakpoint trap in supervisor mode
 trap type 1 code 0 eip c034f34c cs 8 eflags 246 cr2 bb9bd770 ilevel 6
 Stopped in pid 475.1 (openssl) at       netbsd:breakpoint+0x4:  popl 
 %ebp
 db{0}>
 db{0}> bt
 breakpoint(c0438322,cb91e7f8,c0464cc0,c02aba4f,6,1,0,0,cb91e7f8,c0100e1a) at 
netbsd:breakpoint+0x4
 panic(c0438324,c0434736,c04066e8,c043833d,5b40,1000001,6,0,0,0) at 
netbsd:panic+0x1b0
 lockdebug_abort1(c043833d,1,0,0,0,cb9f85c0,0,0,cb9f85c0,cb91e934) at 
netbsd:lockdebug_abort1+0xbb
 
mutex_vector_enter(c04b006c,cb9e8d40,cb91e8ec,c02a44df,cba65b4c,cb9e8d40,cb91e8ec,c02a48ba,8,20)
 at netbsd:mutex_vector_enter+0x3b7
 rnd_extract_data(cb91e8f0,20,1,4,4,4,293,c027955e,0,0) at 
netbsd:rnd_extract_data+0x13
 arc4_randrekey(cad0117c,10,c04a9956,c1198101,cad0117c,0,0,4,0,0) at 
netbsd:arc4_randrekey+0x3d
 hifn_newsession(cad01000,cb91ea5c,cb91eb0c,c027955e,0,0,4,c03df1b6,cb642880,0) 
at netbsd:hifn_newsession+0xeb
 
crypto_newsession(cb91eb54,cb91eb0c,1,c0419cbc,62d,cb6267d8,0,c02eb5b7,0,cb91eb0c)
 at netbsd:crypto_newsession+0xac
 
cryptodev_session(c11a8f00,cb91ec50,297,c027955e,7,0,cb91ebac,c03df1b6,c0700ec0,c11a8f00)
 at netbsd:cryptodev_session+0x432
 cryptof_ioctl(cb9e6100,c0206370,cb91ec50,0,c0296014,cb9f85c0,7,c06fc014,3,0) 
at netbsd:cryptof_ioctl+0x78
 
sys_ioctl(cb9f85c0,cb91ed00,cb91ed28,cb91ed40,c0343532,ca47ae40,293,3,c0206370,bb8120d0)
 at netbsd:sys_ioctl+0x13f
 syscall(cb91ed48,b3,ab,1f,1f,bb8120f0,b,bfbfb748,bbb99640,bb8120d0) at 
etbsd:syscall+0xc8
 db{0}>
 
 
 2/2:
 Disabling "pseudo-device rnd" in the kernel is a no-go:
 
 /usr/src-5/sys/dev/pci/hifn7751.c:56:2: error: #error hifn7751 requires rnd 
pseudo-devices
 
 
 3/3:
 patching arc4_randrekey() to not use rnd_extract_data()
 gives makes the above "openssl speed -evp aes-128-cbc -elapsed" run for 
 several hours without panic.
 
 Unfortunately, performance still bad:
 aes-128-cbc        137.54k      541.53k     1677.18k     4404.90k    14008.05k
 aes-128-cbc        135.32k      536.01k     1816.32k     4451.51k    13926.40k
 aes-128-cbc        137.91k      531.14k     1689.77k     4468.86k    14024.38k
 
 
   - Hubert
 


Home | Main Index | Thread Index | Old Index