[Bug 257298] kernel panic with kern.cam.da.enable_uma_ccbs=1
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 257298] kernel panic with kern.cam.da.enable_uma_ccbs=1"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 257298] kernel panic with kern.cam.da.enable_uma_ccbs=1"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 257298] kernel panic with kern.cam.da.enable_uma_ccbs=1"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 20 Jul 2021 15:43:17 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257298
Bug ID: 257298
Summary: kernel panic with kern.cam.da.enable_uma_ccbs=1
Product: Base System
Version: CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: kern
Assignee: bugs@FreeBSD.org
Reporter: pr@aoek.com
Hi,
despite https://reviews.freebsd.org/D31054 I can still reproduce the same exact
bt as reported in the mailing list
https://lists.freebsd.org/archives/freebsd-current/2021-June/000267.html
In particular, with a GENERIC kernel I get:
panic: Duplicate free of 0xffffa02039d7a000 from zone
0xffff000166aec000(ada_ccb) slab 0xffffa02039d7afd8(0)
cpuid = 10
time = 1626781044
KDB: stack backtrace:
db_trace_self() at db_trace_self
db_trace_self_wrapper() at db_trace_self_wrapper+0x30
vpanic() at vpanic+0x188
panic() at panic+0x44
uma_dbg_free() at uma_dbg_free+0x1e4
uma_zfree_arg() at uma_zfree_arg+0x358
ahci_end_transaction() at ahci_end_transaction+0x7a4
ahci_ch_intr_main() at ahci_ch_intr_main+0x660
ahci_ch_intr() at ahci_ch_intr+0x5c
ahci_intr() at ahci_intr+0xe4
ithread_loop() at ithread_loop+0x2a8
fork_exit() at fork_exit+0x74
fork_trampoline() at fork_trampoline+0x14
KDB: enter: panic
[ thread pid 12 tid 100137 ]
Stopped at kdb_enter+0x48: undefined f904411f
And with a GENERIC-NODEBUG kernel I get:
panic: vm_fault failed: ffff0000007a9b40 error 1
cpuid = 2
time = 1626773972
KDB: stack backtrace:
db_trace_self() at db_trace_self
db_trace_self_wrapper() at db_trace_self_wrapper+0x30
vpanic() at vpanic+0x188
panic() at panic+0x44
data_abort() at data_abort+0x1e0
handle_el1h_sync() at handle_el1h_sync+0x74
--- exception, esr 0x96000044
zone_release() at zone_release+0x224
bucket_drain() at bucket_drain+0xe8
bucket_cache_reclaim_domain() at bucket_cache_reclaim_domain+0x3b0
zone_reclaim() at zone_reclaim+0x194
uma_reclaim_domain() at uma_reclaim_domain+0xbc
vm_pageout_worker() at vm_pageout_worker+0x594
vm_pageout() at vm_pageout+0x1e0
fork_exit() at fork_exit+0x94
fork_trampoline() at fork_trampoline+0x14
KDB: enter: panic
[ thread pid 33 tid 100222 ]
Stopped at kdb_enter+0x48: undefined f903c11f
This is with CURRENT as of 439097486ba0453e057c05d548fa306d91c784e5
Author: Jessica Clarke <jrtc27@FreeBSD.org>
Date: Mon Jul 19 17:19:23 2021 +0100
(This is just where I am now, nothing to do with Jessica commit).
Environment:
# uname -a
FreeBSD asn 14.0-CURRENT FreeBSD 14.0-CURRENT #0 main-n248066-439097486ba0: Mon
Jul 19 21:33:35 CEST 2021
root@asn:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC-NODEBUG arm64
(or GENERIC instead than GENERIC-NODEBUG)
I have a board that is known to have low signal levels in the SATA subsystem
and hits frequent minor troubles with ada disks, such as:
(ada0:ahcich1:0:0:0): READ_FPDMA_QUEUED. ACB: 60 08 c0 ce 36 40 06 00 00 00 00
00
(ada0:ahcich1:0:0:0): CAM status: Uncorrectable parity/CRC error
(ada0:ahcich1:0:0:0): Retrying command, 3 more tries remain
or
ahcich1: Timeout on slot 14 port 0
ahcich1: is 00000000 cs 0003c080 ss 0003c080 rs 0003c080 tfd 50 serr 00180000
cmd 0000c017
(ada0:ahcich1:0:0:0): WRITE_FPDMA_QUEUED. ACB: 61 20 e8 8f ed 40 08 00 00 00 00
00
(ada0:ahcich1:0:0:0): CAM status: Command timeout
(ada0:ahcich1:0:0:0): Retrying command, 3 more tries remain
This is ok, I mean, FreeBSD is solid enough to cope with that and get no data
loss at fs level.
While I understand that this is sub optimal, the circumstance reveals the bug
which is the object of this report: i.e. the kernel panics with faulty
hardware.
Interestingly I can avoid the bug by setting kern.cam.da.enable_uma_ccbs=0
Note that I set .da., not .ada sysctl. I have no da disks in the system, only
ada (two).
# sysctl -a | fgrep cbs
kern.cam.da.enable_uma_ccbs: 0
kern.cam.ada.enable_uma_ccbs: 0
I am unable to get a kernel dump with line numbers (RAM >> swap). Is there a
workaround for this?
Regarding the bug, I can test further, please suggest the direction.
--
You are receiving this mail because:
You are the assignee for the bug.