From owner-freebsd-current@freebsd.org Wed May 3 04:13:00 2017 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C8152D5BB5C for ; Wed, 3 May 2017 04:13:00 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-62.reflexion.net [208.70.210.62]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 59B487BE for ; Wed, 3 May 2017 04:12:59 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 8887 invoked from network); 3 May 2017 04:12:58 -0000 Received: from unknown (HELO rtc-sm-01.app.dca.reflexion.local) (10.81.150.1) by 0 (rfx-qmail) with SMTP; 3 May 2017 04:12:58 -0000 Received: by rtc-sm-01.app.dca.reflexion.local (Reflexion email security v8.40.0) with SMTP; Wed, 03 May 2017 00:12:58 -0400 (EDT) Received: (qmail 1132 invoked from network); 3 May 2017 04:12:58 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 3 May 2017 04:12:58 -0000 Received: from [192.168.1.106] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id 6C86FEC7E18; Tue, 2 May 2017 21:12:57 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: FYI: [My FreeBSD-12.0-CURRENT-arm64-aarch64.raw ] under qemu-system-aarch64 on odroid-c2 under UbuntuMate : [A combination that boots but gets some panics] From: Mark Millard In-Reply-To: Date: Tue, 2 May 2017 21:12:56 -0700 Cc: freebsd-arm , FreeBSD Current Content-Transfer-Encoding: quoted-printable Message-Id: <04D483DF-56BA-4A49-9DA9-6EE0AD9C38D8@dsl-only.net> References: <47F6A67D-2D97-4992-96CE-45751190CA86@dsl-only.net> <61C08AFE-0BE8-4BDE-B50C-09268850AE21@fubar.geek.nz> <9D0414D3-7A48-4C37-8710-1AFAA5E2874E@dsl-only.net> <85D4E274-07FC-4E92-8A23-99712FB50707@dsl-only.net> <9E66D0B3-3682-49DD-A792-95E29F9DC55C@dsl-only.net> <934E8CA3-A100-47F8-B6F7-F49C83AA8EF0@dsl-only.net> To: Andrew Turner , Konstantin Belousov X-Mailer: Apple Mail (2.3273) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 May 2017 04:13:00 -0000 FYI: differences in FreeBSD's code vs.: = http://infocenter.arm.com/help/index.jsp?topic=3D/com.arm.doc.den0024a/BAB= JDBHI.html and its "Example 11.5. Cleaning by Virtual Address". . . (I do not claim to know that the differences point to any error. But I note them in case they prompt something. A couple of points do seem odd to me for the FreeBSD code.) The ARM example code does: DSB ISH DSB ISH ISB This has the property of forcing visibility only after everything is available to be visible (DSB ISH being referenced here). (The FreeBSD code does not have this property, but enforces visibility of a mix of old and new as it goes along.) It is point-of-unification code (data and instruction) for its purpose. The FreeBSD arm64_dcache__range code always pairs: DC CAVAC (or CIVAC or IVAC) DSB ISH inside it loop, forcing visibility of its intermediate state as it goes along. It is also point-of-coherency instead of point of unification (because of its purpose). The FreeBSD arm64_idcache_wbinv_range code always does the sequence of 4: DC CIVAC DSB ISH IC IVAU DSB ISH inside its loop and after the loop does one: ISB This is is a mix of point-of-coherency and point of unification code that forces visibility (DSB ISH) as it goes along, not just after the overall loop. To me the mix of point-of-coherency and point-of-unification seems strange. The FreeBSD arm64_icache_sync_range code always does the sequence of 4: DC CIVAU DSB ISH IC IVAU DSB ISH inside its loop and after the loop does one: ISB This is the closest to the "Example 11.5. Cleaning by Virtual Address" code and its purpose. It is all point-of-unification code that forces visibility (DSB ISH) as it goes long, not just after the overall loop. =3D=3D=3D Mark Millard markmi at dsl-only.net