svn commit: r329612 - in head/sys: kern sys
Andrew Turner
andrew at fubar.geek.nz
Wed Feb 21 17:06:10 UTC 2018
Yes, I’m still getting it on r329721.
Andrew
> On 21 Feb 2018, at 17:02, Conrad Meyer <cem at freebsd.org> wrote:
>
> Do you have r329672 yet?
>
> Best,
> Conrad
>
> On Wed, Feb 21, 2018 at 7:11 AM, Andrew Turner <andrew at fubar.geek.nz> wrote:
>>
>>> On 20 Feb 2018, at 00:06, Jeff Roberson <jeff at FreeBSD.org> wrote:
>>>
>>> Author: jeff
>>> Date: Tue Feb 20 00:06:07 2018
>>> New Revision: 329612
>>> URL: https://svnweb.freebsd.org/changeset/base/329612
>>>
>>> Log:
>>> Further parallelize the buffer cache.
>>>
>>> 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.
>>>
>>> Refine the sleep/wakeup around the bufspace daemon to use atomics as much as
>>> possible.
>>>
>>> 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.
>>>
>>> Implement bufspace_reserve with only atomic_fetchadd to avoid loop restarts.
>>>
>>> Reviewed by: markj
>>> Tested by: pho
>>> Sponsored by: Netflix, Dell/EMC Isilon
>>> Differential Revision: https://reviews.freebsd.org/D14274
>>
>> I’m seeing the following panic on FreeBSD/arm64 after this change.
>>
>> Andrew
>>
>> panic: bq_remove: Remove buffer 0xffff00004082f260 from wrong queue.
>> cpuid = 4
>> time = 1519088201
>> KDB: stack backtrace:
>> db_trace_self() at db_trace_self_wrapper+0x28
>> pc = 0xffff00000062fee4 lr = 0xffff0000000c0450
>> sp = 0xffff000040364480 fp = 0xffff000040364690
>>
>> db_trace_self_wrapper() at vpanic+0x184
>> pc = 0xffff0000000c0450 lr = 0xffff000000354ce8
>> sp = 0xffff0000403646a0 fp = 0xffff000040364720
>>
>> vpanic() at kassert_panic+0x158
>> pc = 0xffff000000354ce8 lr = 0xffff000000354b60
>> sp = 0xffff000040364730 fp = 0xffff0000403647f0
>>
>> kassert_panic() at bq_remove+0x178
>> pc = 0xffff000000354b60 lr = 0xffff0000003f7014
>> sp = 0xffff000040364800 fp = 0xffff000040364810
>>
>> bq_remove() at buf_recycle+0x100
>> pc = 0xffff0000003f7014 lr = 0xffff0000003fca80
>> sp = 0xffff000040364820 fp = 0xffff000040364880
>>
>> buf_recycle() at bufspace_daemon+0xb4
>> pc = 0xffff0000003fca80 lr = 0xffff0000003fd31c
>> sp = 0xffff000040364890 fp = 0xffff000040364910
>>
>> bufspace_daemon() at fork_exit+0x7c
>> pc = 0xffff0000003fd31c lr = 0xffff000000318388
>> sp = 0xffff000040364920 fp = 0xffff000040364950
>>
>> fork_exit() at fork_trampoline+0x10
>> pc = 0xffff000000318388 lr = 0xffff000000649ec4
>> sp = 0xffff000040364960 fp = 0x0000000000000000
>>
>> KDB: enter: panic
>
More information about the svn-src-all
mailing list