Date: Fri, 12 Aug 2005 13:50:10 -0400 From: Mike Tancsa <mike@sentex.net> To: Pawel Jakub Dawidek <pjd@freebsd.org>, FreeBSD-current <freebsd-current@freebsd.org> Subject: Re: VIA/ACE PadLock integration with crypto(9). Message-ID: <6.2.3.4.0.20050812130608.07aaf5f8@64.7.153.2> In-Reply-To: <20050812134511.GE25162@garage.freebsd.pl> References: <20050812134511.GE25162@garage.freebsd.pl>
next in thread | previous in thread | raw e-mail | index | archive | help
At 09:45 AM 12/08/2005, Pawel Jakub Dawidek wrote: >Hi. > >This is a call for testers. >I integrated VIA/ACE PadLock with our crypto(9) subsystem, so now it can >be used with things like fast_ipsec(4) and geli(8). Havent got to the FAST_IPSEC tests yet (will=20 soon) but against CURRENT from this morning, I get a lot of Aug 12 13:07:47 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D470958080, length=3D131072)] Aug 12 13:07:47 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D471089152, length=3D131072)] Aug 12 13:07:47 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D471220224, length=3D131072)] Aug 12 13:07:47 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D471351296, length=3D131072)] Aug 12 13:07:47 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D472006656, length=3D131072)] Aug 12 13:07:47 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D472137728, length=3D131072)] Aug 12 13:07:47 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D472268800, length=3D131072)] Aug 12 13:07:47 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D472399872, length=3D131072)] Aug 12 13:07:47 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D472530944, length=3D131072)] Aug 12 13:07:48 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D472530944, length=3D131072)] with and without the padlock loaded. This is just running bonnie -s 500 -d /cryptedmnt against a normal=20 ufs2 partition, and against the same partition=20 with aes. I was about to do the test with the=20 padlock.ko loaded, but it cannot complete the test. -------Sequential Output--------=20 ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite--=20 -Per Char- --Block--- --Seeks--- Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec= %CPU 70-raw 512 23589 94.5 30965 29.7 10836 12.3 16836 79.7 32200 26.3 189.7 = 2.1 7-s-crypt 500 5856 24.2 7014 7.6 1296 1.5 5923 28.6 6712 6.1 155.9 = 1.7 I detach and then load the kld, and attach the drive again Aug 12 13:17:11 via-releng5 kernel: GEOM_ELI: Device ad0s1e.eli destroyed. Aug 12 13:28:38 via-releng5 kernel: GEOM_ELI: Device ad0s1e.eli created. Aug 12 13:28:38 via-releng5 kernel: GEOM_ELI: Cipher: AES Aug 12 13:28:38 via-releng5 kernel: GEOM_ELI: Key length: 128 Aug 12 13:28:38 via-releng5 kernel: GEOM_ELI: Crypto: hardware Aug 12 13:29:53 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D106971136, length=3D131072 )] Aug 12 13:29:53 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D107757568, length=3D131072 )] Aug 12 13:29:54 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D107757568, length=3D131072 )] Aug 12 13:29:54 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D108937216, length=3D131072 )] Aug 12 13:29:54 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D109592576, length=3D131072 )] Aug 12 13:29:54 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D109592576, length=3D131072 )] Aug 12 13:29:55 via-releng5 kernel: GEOM_ELI:=20 g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D110641152, length=3D131072 )] And then start up bonnie once more. Its blasting=20 along quite well (speed at least twice as fast) and then crash. [via-releng5]# bonnie -s 500 -d /mnt File '/mnt/Bonnie.680', size: 524288000 Writing with putc()...done Rewriting... [via-releng5]# GEOM_ELI: Device ad0s1e.eli created. GEOM_ELI: Cipher: AES GEOM_ELI: Key length: 128 GEOM_ELI: Crypto: software GEOM_ELI: Device ad0s1e.eli destroyed. GEOM_ELI: Device ad0s1e.eli created. GEOM_ELI: Cipher: AES GEOM_ELI: Key length: 128 GEOM_ELI: Crypto: hardware [via-releng5]# GEOM_ELI: g_eli_crypto_run()=20 failed (error=3D12). ad0s1e.eli[WRITE(offset=3D6045696, length=3D131072)] GEOM_ELI: g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D7094272, length=3D131072)] GEOM_ELI: g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D8011776, length=3D131072)] Fatal trap 12: page fault while in kernel mode fault virtual address =3D 0xc1ad8004 fault code =3D supervisor write, page not present instruction pointer =3D 0x20:0xc061909c stack pointer =3D 0x28:0xcb788cf4 frame pointer =3D 0x28:0xcb788d10 code segment =3D base 0x0, limit 0xfffff, type 0x1b =3D DPL 0, pres 1, def32 1, gran 1 processor eflags =3D interrupt enabled, resume, IOPL =3D 0 current process =3D 6 (crypto returns) trap number =3D 12 panic: page fault Uptime: 3m5s Dumping 239 MB (2 chunks) chunk 0: 1MB (160 pages) ... ok chunk 1: 239MB (61168 pages) 223 207 191 175=20 159 143 127 111 95 79 63 47 31 15 ... ok Dump complete (kgdb) bt #0 doadump () at pcpu.h:165 #1 0xc053a90d in boot (howto=3D260) at= /usr/src/sys/kern/kern_shutdown.c:397 #2 0xc053aba0 in panic (fmt=3D0xc06e93bf "%s") at=20 /usr/src/sys/kern/kern_shutdown.c:553 #3 0xc06a9ba4 in trap_fatal (frame=3D0xcb788cb4,=20 eva=3D3249401860) at /usr/src/sys/i386/i386/trap.c:841 #4 0xc06a990f in trap_pfault (frame=3D0xcb788cb4,=20 usermode=3D0, eva=3D3249401860) at /usr/src/sys/i386/i386/trap.c:752 #5 0xc06a9555 in trap (frame=3D {tf_fs =3D 8, tf_es =3D 40, tf_ds =3D 40, tf_edi=20 =3D 0, tf_esi =3D -1045699744, tf_ebp =3D -881292016,=20 tf_isp =3D -881292064, tf_ebx =3D -1051817936, tf_edx=20 =3D -1045565440, tf_ecx =3D -1066090464, tf_eax =3D=20 -1066009788, tf_trapno =3D 12, tf_err =3D 2, tf_eip =3D=20 -1067347812, tf_cs =3D 32, tf_eflags =3D 66182,=20 tf_esp =3D 0, tf_ss =3D 0}) at /usr/src/sys/i386/i386/trap.c:442 #6 0xc0698e0a in calltrap () at /usr/src/sys/i386/i386/exception.s:139 #7 0x00000008 in ?? () #8 0x00000028 in ?? () #9 0x00000028 in ?? () #10 0x00000000 in ?? () #11 0xc1abe360 in ?? () #12 0xcb788d10 in ?? () #13 0xcb788ce0 in ?? () #14 0xc14e8830 in ?? () #15 0xc1adf000 in ?? () #16 0xc074c020 in g_wither_work () #17 0xc075fb44 in crypto_q_mtx () #18 0x0000000c in ?? () #19 0x00000002 in ?? () #20 0xc061909c in crypto_ret_proc () at= /usr/src/sys/opencrypto/crypto.c:1202 #21 0xc0525ad8 in fork_exit (callout=3D0xc061904c=20 <crypto_ret_proc>, arg=3D0x0, frame=3D0xcb788d38) at=20 /usr/src/sys/kern/kern_fork.c:789 #22 0xc0698e6c in fork_trampoline () at= /usr/src/sys/i386/i386/exception.s:208 This is on Copyright (c) 1992-2005 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 7.0-CURRENT #1: Fri Aug 12 12:07:13 EDT 2005 mdtancsa@via-releng5.sentex.ca:/usr/obj/usr/src/sys/pioneer Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: VIA C3 Nehemiah+RNG+ACE (1199.79-MHz 686-class CPU) Orig # kgdb /usr/obj/usr/src/sys/pioneer/kernel.debug vmcore.2 [GDB will not be able to debug user-mode threads:=20 /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"] GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain= conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-marcel-freebsd". Unread portion of the kernel message buffer: GEOM_ELI: g_eli_crypto_run() failed (error=3D12).=20 ad0s1e.eli[WRITE(offset=3D8011776, length=3D131072)] Fatal trap 12: page fault while in kernel mode fault virtual address =3D 0xc1ad8004 fault code =3D supervisor write, page not present instruction pointer =3D 0x20:0xc061909c stack pointer =3D 0x28:0xcb788cf4 frame pointer =3D 0x28:0xcb788d10 code segment =3D base 0x0, limit 0xfffff, type 0x1b =3D DPL 0, pres 1, def32 1, gran 1 processor eflags =3D interrupt enabled, resume, IOPL =3D 0 current process =3D 6 (crypto returns) trap number =3D 12 panic: page fault Uptime: 3m5s Dumping 239 MB (2 chunks) chunk 0: 1MB (160 pages) ... ok chunk 1: 239MB (61168 pages) 223 207 191 175=20 159 143 127 111 95 79 63 47 31 15 #0 doadump () at pcpu.h:165 165 pcpu.h: No such file or directory. in pcpu.h (kgdb) bt #0 doadump () at pcpu.h:165 #1 0xc053a90d in boot (howto=3D260) at= /usr/src/sys/kern/kern_shutdown.c:397 #2 0xc053aba0 in panic (fmt=3D0xc06e93bf "%s") at=20 /usr/src/sys/kern/kern_shutdown.c:553 #3 0xc06a9ba4 in trap_fatal (frame=3D0xcb788cb4,=20 eva=3D3249373188) at /usr/src/sys/i386/i386/trap.c:841 #4 0xc06a990f in trap_pfault (frame=3D0xcb788cb4,=20 usermode=3D0, eva=3D3249373188) at /usr/src/sys/i386/i386/trap.c:752 #5 0xc06a9555 in trap (frame=3D {tf_fs =3D 8, tf_es =3D 40, tf_ds =3D 40, tf_edi=20 =3D 0, tf_esi =3D -1045728416, tf_ebp =3D -881292016,=20 tf_isp =3D -881292064, tf_ebx =3D -1051817936, tf_edx=20 =3D -1045594112, tf_ecx =3D -1066090464, tf_eax =3D=20 -1066009788, tf_trapno =3D 12, tf_err =3D 2, tf_eip =3D=20 -1067347812, tf_cs =3D 32, tf_eflags =3D 66182,=20 tf_esp =3D 0, tf_ss =3D 0}) at /usr/src/sys/i386/i386/trap.c:442 #6 0xc0698e0a in calltrap () at /usr/src/sys/i386/i386/exception.s:139 #7 0x00000008 in ?? () #8 0x00000028 in ?? () #9 0x00000028 in ?? () #10 0x00000000 in ?? () #11 0xc1ab7360 in ?? () #12 0xcb788d10 in ?? () #13 0xcb788ce0 in ?? () #14 0xc14e8830 in ?? () #15 0xc1ad8000 in ?? () #16 0xc074c020 in g_wither_work () #17 0xc075fb44 in crypto_q_mtx () #18 0x0000000c in ?? () #19 0x00000002 in ?? () #20 0xc061909c in crypto_ret_proc () at= /usr/src/sys/opencrypto/crypto.c:1202 #21 0xc0525ad8 in fork_exit (callout=3D0xc061904c=20 <crypto_ret_proc>, arg=3D0x0, frame=3D0xcb788d38) at=20 /usr/src/sys/kern/kern_fork.c:789 #22 0xc0698e6c in fork_trampoline () at= /usr/src/sys/i386/i386/exception.s:208 (kgdb) bt full #0 doadump () at pcpu.h:165 No locals. #1 0xc053a90d in boot (howto=3D260) at= /usr/src/sys/kern/kern_shutdown.c:397 first_buf_printf =3D 1 #2 0xc053aba0 in panic (fmt=3D0xc06e93bf "%s") at=20 /usr/src/sys/kern/kern_shutdown.c:553 td =3D (struct thread *) 0xc14c3780 bootopt =3D 260 newpanic =3D 0 ap =3D 0xc14c3780 "0\210N=C1@HL=C1" buf =3D "page fault", '\0' <repeats 245 times> #3 0xc06a9ba4 in trap_fatal (frame=3D0xcb788cb4,=20 eva=3D3249373188) at /usr/src/sys/i386/i386/trap.c:841 code =3D 40 type =3D 12 ss =3D 40 esp =3D 0 softseg =3D {ssd_base =3D 0, ssd_limit =3D=20 1048575, ssd_type =3D 27, ssd_dpl =3D 0, ssd_p =3D 1, ssd_xx =3D 8, ssd_xx1= =3D 0, ssd_def32 =3D 1, ssd_gran =3D 1} #4 0xc06a990f in trap_pfault (frame=3D0xcb788cb4,=20 usermode=3D0, eva=3D3249373188) at /usr/src/sys/i386/i386/trap.c:752 va =3D 3249373184 vm =3D (struct vmspace *) 0x0 map =3D 0xc1043000 rv =3D 1 ftype =3D 1 '\001' td =3D (struct thread *) 0xc14c3780 p =3D (struct proc *) 0xc14e8830 #5 0xc06a9555 in trap (frame=3D {tf_fs =3D 8, tf_es =3D 40, tf_ds =3D 40, tf_edi=20 =3D 0, tf_esi =3D -1045728416, tf_ebp =3D -881292016,=20 tf_isp =3D -881292064, tf_ebx =3D -1051817936, tf_edx=20 =3D -1045594112, tf_ecx =3D -1066090464, tf_eax =3D=20 -1066009788, tf_trapno =3D 12, tf_err =3D 2, tf_eip =3D=20 -1067347812, tf_cs =3D 32, tf_eflags =3D 66182,=20 tf_esp =3D 0, tf_ss =3D 0}) at /usr/src/sys/i386/i386/trap.c:442 td =3D (struct thread *) 0xc14c3780 p =3D (struct proc *) 0xc14e8830 sticks =3D 3226734063 i =3D 0 ucode =3D 0 type =3D 12 code =3D 2 eva =3D 3249373188 #6 0xc0698e0a in calltrap () at /usr/src/sys/i386/i386/exception.s:139 No locals. #7 0x00000008 in ?? () No symbol table info available. #8 0x00000028 in ?? () ---Type <return> to continue, or q <return> to quit--- No symbol table info available. #9 0x00000028 in ?? () No symbol table info available. #10 0x00000000 in ?? () No symbol table info available. #11 0xc1ab7360 in ?? () No symbol table info available. #12 0xcb788d10 in ?? () No symbol table info available. #13 0xcb788ce0 in ?? () No symbol table info available. #14 0xc14e8830 in ?? () No symbol table info available. #15 0xc1ad8000 in ?? () No symbol table info available. #16 0xc074c020 in g_wither_work () No symbol table info available. #17 0xc075fb44 in crypto_q_mtx () No symbol table info available. #18 0x0000000c in ?? () No symbol table info available. #19 0x00000002 in ?? () No symbol table info available. #20 0xc061909c in crypto_ret_proc () at= /usr/src/sys/opencrypto/crypto.c:1202 crpt =3D (struct cryptop *) 0xc1ab7360 krpt =3D (struct cryptkop *) 0x0 #21 0xc0525ad8 in fork_exit (callout=3D0xc061904c=20 <crypto_ret_proc>, arg=3D0x0, frame=3D0xcb788d38) at=20 /usr/src/sys/kern/kern_fork.c:789 p =3D (struct proc *) 0xc14e8830 td =3D (struct thread *) 0x0 #22 0xc0698e6c in fork_trampoline () at= /usr/src/sys/i386/i386/exception.s:208 No locals. (kgdb)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6.2.3.4.0.20050812130608.07aaf5f8>