From owner-svn-src-head@freebsd.org Wed Feb 21 17:06:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4B4E5F15DF7; Wed, 21 Feb 2018 17:06:10 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from fry.fubar.geek.nz (fry.fubar.geek.nz [139.59.165.16]) by mx1.freebsd.org (Postfix) with ESMTP id D995086BA8; Wed, 21 Feb 2018 17:06:08 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from [IPv6:2001:630:212:2a8:5c38:d7dc:2091:57b5] (unknown [IPv6:2001:630:212:2a8:5c38:d7dc:2091:57b5]) by fry.fubar.geek.nz (Postfix) with ESMTPSA id CC7854E63F; Wed, 21 Feb 2018 17:06:07 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 11.2 \(3445.5.20\)) Subject: Re: svn commit: r329612 - in head/sys: kern sys From: Andrew Turner In-Reply-To: Date: Wed, 21 Feb 2018 17:06:06 +0000 Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201802200006.w1K067ZL032311@repo.freebsd.org> To: cem@freebsd.org X-Mailer: Apple Mail (2.3445.5.20) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Feb 2018 17:06:10 -0000 Yes, I=E2=80=99m still getting it on r329721. Andrew > On 21 Feb 2018, at 17:02, Conrad Meyer wrote: >=20 > Do you have r329672 yet? >=20 > Best, > Conrad >=20 > On Wed, Feb 21, 2018 at 7:11 AM, Andrew Turner = wrote: >>=20 >>> On 20 Feb 2018, at 00:06, Jeff Roberson wrote: >>>=20 >>> Author: jeff >>> Date: Tue Feb 20 00:06:07 2018 >>> New Revision: 329612 >>> URL: https://svnweb.freebsd.org/changeset/base/329612 >>>=20 >>> Log: >>> Further parallelize the buffer cache. >>>=20 >>> Provide multiple clean queues partitioned into 'domains'. Each = domain manages >>> its own bufspace and has its own bufspace daemon. Each domain has a = set of >>> subqueues indexed by the current cpuid to reduce lock contention on = the cleanq. >>>=20 >>> Refine the sleep/wakeup around the bufspace daemon to use atomics as = much as >>> possible. >>>=20 >>> Add a B_REUSE flag that is used to requeue bufs during the scan to = approximate >>> LRU rather than locking the queue on every use of a frequently = accessed buf. >>>=20 >>> Implement bufspace_reserve with only atomic_fetchadd to avoid loop = restarts. >>>=20 >>> Reviewed by: markj >>> Tested by: pho >>> Sponsored by: Netflix, Dell/EMC Isilon >>> Differential Revision: https://reviews.freebsd.org/D14274 >>=20 >> I=E2=80=99m seeing the following panic on FreeBSD/arm64 after this = change. >>=20 >> Andrew >>=20 >> panic: bq_remove: Remove buffer 0xffff00004082f260 from wrong queue. >> cpuid =3D 4 >> time =3D 1519088201 >> KDB: stack backtrace: >> db_trace_self() at db_trace_self_wrapper+0x28 >> pc =3D 0xffff00000062fee4 lr =3D 0xffff0000000c0450 >> sp =3D 0xffff000040364480 fp =3D 0xffff000040364690 >>=20 >> db_trace_self_wrapper() at vpanic+0x184 >> pc =3D 0xffff0000000c0450 lr =3D 0xffff000000354ce8 >> sp =3D 0xffff0000403646a0 fp =3D 0xffff000040364720 >>=20 >> vpanic() at kassert_panic+0x158 >> pc =3D 0xffff000000354ce8 lr =3D 0xffff000000354b60 >> sp =3D 0xffff000040364730 fp =3D 0xffff0000403647f0 >>=20 >> kassert_panic() at bq_remove+0x178 >> pc =3D 0xffff000000354b60 lr =3D 0xffff0000003f7014 >> sp =3D 0xffff000040364800 fp =3D 0xffff000040364810 >>=20 >> bq_remove() at buf_recycle+0x100 >> pc =3D 0xffff0000003f7014 lr =3D 0xffff0000003fca80 >> sp =3D 0xffff000040364820 fp =3D 0xffff000040364880 >>=20 >> buf_recycle() at bufspace_daemon+0xb4 >> pc =3D 0xffff0000003fca80 lr =3D 0xffff0000003fd31c >> sp =3D 0xffff000040364890 fp =3D 0xffff000040364910 >>=20 >> bufspace_daemon() at fork_exit+0x7c >> pc =3D 0xffff0000003fd31c lr =3D 0xffff000000318388 >> sp =3D 0xffff000040364920 fp =3D 0xffff000040364950 >>=20 >> fork_exit() at fork_trampoline+0x10 >> pc =3D 0xffff000000318388 lr =3D 0xffff000000649ec4 >> sp =3D 0xffff000040364960 fp =3D 0x0000000000000000 >>=20 >> KDB: enter: panic >=20