From owner-freebsd-arm@FreeBSD.ORG Sun Dec 22 09:26:51 2013 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6144072F for ; Sun, 22 Dec 2013 09:26:51 +0000 (UTC) Received: from mail.bsdpad.com (mail.bsdpad.com [109.107.176.56]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 13E8A1E71 for ; Sun, 22 Dec 2013 09:26:50 +0000 (UTC) Received: from mail.bsdpad.com ([109.107.176.56]) by mail.bsdpad.com with smtp (Exim 4.80.1 (FreeBSD)) (envelope-from ) id 1VufLV-000OBL-JQ; Sun, 22 Dec 2013 13:29:13 +0400 Received: by mail.bsdpad.com (nbSMTP-1.00) for uid 1001 br@mail.bsdpad.com; Sun, 22 Dec 2013 13:29:13 +0400 (MSK) Date: Sun, 22 Dec 2013 13:29:13 +0400 From: Ruslan Bukin To: Wojciech Macek Subject: Re: arm SMP on Cortex-A15 Message-ID: <20131222092913.GA89153@mail.bsdpad.com> References: <20131220125638.GA5132@mail.bsdpad.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Qxx1br4bt0+wmkIi" Content-Disposition: inline In-Reply-To: <20131220125638.GA5132@mail.bsdpad.com> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: freebsd-arm@freebsd.org X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Dec 2013 09:26:51 -0000 --Qxx1br4bt0+wmkIi Content-Type: text/plain; charset=utf-8 Content-Disposition: inline On Fri, Dec 20, 2013 at 04:56:39PM +0400, Ruslan Bukin wrote: > On Thu, Dec 19, 2013 at 12:41:59PM +0100, Wojciech Macek wrote: > > Hi, > > > > Finally, I'm able to run FreeBSD stable on Cortex-A15. The TLB issue which > > was observed, was caused by an aggressive A15 feature called "L2 TLB > > prefetch". > > > > Great!? I successfully run buildworld with these patches on SMP-enabled > dual-core Cortex-A15 machine (Exynos5250) with no problems at all. > > My timings: > kernel-toolchain - ~3h > buildkernel - ~1h > buildworld - ~16h > > Note I used NFS for mount source and obj using USB-based ethernet. > The next test I will try to produce is to adding -j2 option. > With -j2 it always goes panic, not immediately, but after a few minutes of compilation, like this. -Ruslan --Qxx1br4bt0+wmkIi Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename=panic --- games.cleandir__D --- ===> games/primes (cleandir) --- lib.cleandir__D --- --- cleanobj --- --- games.cleandir__D --- --- cleanobj --- --- lib.cleandir__D --- ===> lib/libedit (cleandir) --- games.cleandir__D --- ===> games/random (cleandir) --- lib.cleandir__D --- --- cleanobj --- panic: Undefined instruction in kernel. cpuid = 1 KDB: enter: panic [ thread pid 5469 tid 100078 ] Stopped at kdb_enter+0x4c: ldrb r15, [r15, r15, ror r15]! db> bt Tracing pid 5469 tid 100078 td 0xc6132640 db_trace_self() at db_trace_self pc = 0xc1231a24 lr = 0xc0f2f2d4 (db_hex2dec+0x4dc) sp = 0xfa2449b0 fp = 0xfa2449c8 r10 = 0xc131af80 db_hex2dec() at db_hex2dec+0x4dc pc = 0xc0f2f2d4 lr = 0xc0f2ec40 (db_command_loop+0x2f0) sp = 0xfa2449d0 fp = 0xfa244a70 r4 = 0x00000000 r5 = 0x00000000 r6 = 0xc1289f9c db_command_loop() at db_command_loop+0x2f0 pc = 0xc0f2ec40 lr = 0xc0f2e9b0 (db_command_loop+0x60) sp = 0xfa244a78 fp = 0xfa244a88 r4 = 0xc1267b79 r5 = 0xc1283402 r6 = 0xc136608c r7 = 0xc135c4d0 r8 = 0xfa244c60 r9 = 0xc131b1f0 r10 = 0xc135c4d4 db_command_loop() at db_command_loop+0x60 pc = 0xc0f2e9b0 lr = 0xc0f313b0 (X_db_symbol_values+0x254) sp = 0xfa244a90 fp = 0xfa244bb0 r4 = 0x00000000 r5 = 0xfa244a98 r6 = 0xc135c500 X_db_symbol_values() at X_db_symbol_values+0x254 pc = 0xc0f313b0 lr = 0xc1090984 (kdb_trap+0x164) sp = 0xfa244bb8 fp = 0xfa244be0 r4 = 0x00000000 r5 = 0x00000001 r6 = 0xc135c500 r7 = 0xc135c4d0 kdb_trap() at kdb_trap+0x164 pc = 0xc1090984 lr = 0xc1244c50 (undefinedinstruction+0x2b4) sp = 0xfa244be8 fp = 0xfa244c58 r4 = 0x00000000 r5 = 0xc1244900 r6 = 0x00000000 r7 = 0xe7ffffff r8 = 0xc6132640 r9 = 0xfa244c60 r10 = 0xc10900e8 undefinedinstruction() at undefinedinstruction+0x2b4 pc = 0xc1244c50 lr = 0xc1233610 (exception_exit) sp = 0xfa244c60 fp = 0xfa244cb8 r4 = 0xc128345c r5 = 0x00000001 r6 = 0xc134e030 r7 = 0xc134e1d0 r8 = 0xc6132640 r9 = 0xc1367bd0 r10 = 0xfa244cfc exception_exit() at exception_exit pc = 0xc1233610 lr = 0xc10900dc (kdb_enter+0x40) sp = 0xfa244cb4 fp = 0xfa244cb8 r0 = 0xc135c4e4 r1 = 0x00000000 r2 = 0xc1286ffa r3 = 0x000000ab r4 = 0xc128345c r5 = 0x00000001 r6 = 0xc134e030 r7 = 0xc134e1d0 r8 = 0xc6132640 r9 = 0xc1367bd0 r10 = 0xfa244cfc r12 = 0x00000000 kdb_enter() at kdb_enter+0x50 pc = 0xc10900ec lr = 0xc1059d28 (kassert_panic+0x244) sp = 0xfa244cc0 fp = 0xfa244ce0 r4 = 0x00000100 kassert_panic() at kassert_panic+0x244 pc = 0xc1059d28 lr = 0xc1059d98 (kproc_shutdown) sp = 0xfa244ce8 fp = 0xfa244cf0 r4 = 0x00000000 r5 = 0xc12457b4 r6 = 0xc1365f64 r7 = 0xecb20a20 r8 = 0xc6132640 r9 = 0xfa244d80 r10 = 0xc12458c4 kproc_shutdown() at kproc_shutdown pc = 0xc1059d98 lr = 0xc1244cd0 (undefinedinstruction+0x334) sp = 0xfa244cf8 fp = 0xfa244d78 r4 = 0xfa244cfc r5 = 0xc107f470 undefinedinstruction() at undefinedinstruction+0x334 pc = 0xc1244cd0 lr = 0xc1233610 (exception_exit) sp = 0xfa244d80 fp = 0xfa244de0 r4 = 0x00000010 r5 = 0x00000000 r6 = 0xc1365f70 r7 = 0x00000000 r8 = 0xc6132640 r9 = 0xfa244e60 r10 = 0x2011e750 exception_exit() at exception_exit pc = 0xc1233610 lr = 0xc1244aa8 (undefinedinstruction+0x10c) sp = 0xfa244dd4 fp = 0xfa244de0 r0 = 0x00000001 r1 = 0xfa244eb0 r2 = 0xfa244ef0 r3 = 0x00000010 r4 = 0x00000010 r5 = 0x00000000 r6 = 0xc1365f70 r7 = 0x00000000 r8 = 0xc6132640 r9 = 0xfa244e60 r10 = 0x2011e750 r12 = 0x0002ec68 vfp_bounce() at vfp_bounce+0x110 pc = 0xc12458c4 lr = 0xc1244aa8 (undefinedinstruction+0x10c) sp = 0xfa244de8 fp = 0xfa244e58 r4 = 0x00000010 r5 = 0xc12457b4 r6 = 0xc1365f70 r7 = 0xec828b10 undefinedinstruction() at undefinedinstruction+0x10c pc = 0xc1244aa8 lr = 0xc1233610 (exception_exit) sp = 0xfa244e60 fp = 0xbfffe658 r4 = 0x00000000 r5 = 0xbfffe530 r6 = 0x2080b2ac r7 = 0x00030a04 r8 = 0xbfffec39 r9 = 0x00000008 r10 = 0x2080b2bc exception_exit() at exception_exit pc = 0xc1233610 lr = 0x2013481c (0x2013481c) sp = 0xfa244eb4 fp = 0xbfffe658 r0 = 0xbfffe530 r1 = 0x4278f502 r2 = 0xbfffe5b0 r3 = 0x20233ae0 r4 = 0x00000000 r5 = 0xbfffe530 r6 = 0x2080b2ac r7 = 0x00030a04 r8 = 0xbfffec39 r9 = 0x00000008 r10 = 0x2080b2bc r12 = 0x0002ec68 Unable to unwind into user mode db> --Qxx1br4bt0+wmkIi--