NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: PR/55702 CVS commit: src/sys
The following reply was made to PR kern/55702; it has been noted by GNATS.
From: Rin Okuyama <rokuyama.rk%gmail.com@localhost>
To: Chuck Silvers <chuq%chuq.com@localhost>
Cc: gnats-bugs%netbsd.org@localhost
Subject: Re: PR/55702 CVS commit: src/sys
Date: Sat, 24 Oct 2020 21:17:40 +0900
On 2020/10/19 3:25, Chuck Silvers wrote:
...
> Module Name: src
> Committed By: chs
> Date: Sun Oct 18 18:22:29 UTC 2020
>
> Modified Files:
> src/sys/rump/librump/rumpvfs: vm_vfs.c
> src/sys/uvm: uvm_page.c uvm_pager.c
>
> Log Message:
> Move the handling of PG_PAGEOUT from uvm_aio_aiodone_pages() to
> uvm_page_unbusy() so that all callers of uvm_page_unbusy() don't need to
> handle this flag separately. Split out the pages part of uvm_aio_aiodone()
> into uvm_aio_aiodone_pages() in rump just like in the real kernel.
> In ZFS functions that can fail to copy data between the ARC and VM pages,
> use uvm_aio_aiodone_pages() rather than uvm_page_unbusy() so that we can
> handle these "I/O" errors. Fixes PR 55702.
>
>
> To generate a diff of this commit:
> cvs rdiff -u -r1.38 -r1.39 src/sys/rump/librump/rumpvfs/vm_vfs.c
> cvs rdiff -u -r1.247 -r1.248 src/sys/uvm/uvm_page.c
> cvs rdiff -u -r1.129 -r1.130 src/sys/uvm/uvm_pager.c
>
> Please note that diffs are not public domain; they are subject to the
> copyright notices on the relevant files.
Hi,
Recent -current on aarch64 easily hits KASSERT as:
panic: kernel diagnostic assertion "(pg->flags & PG_PAGEOUT) == 0" failed: file "../../../../uvm/uvm_page.c", line 1448
Full backtrace is attached below.
I carried out bisectioning to find this commit; By reverting this for
sys/uvm/*, -current works without problems as far as I can see.
Chuck, can you please take a look?
Thanks,
rin
----
panic: kernel diagnostic assertion "(pg->flags & PG_PAGEOUT) == 0" failed: file "../../../../uvm/uvm_page.c", line 1448
cpu0: Begin traceback...
trace fp ffffc00031ea78c0
fp ffffc00031ea78f0 vpanic() at ffffc000004f4e0c netbsd:vpanic+0x14c
fp ffffc00031ea7950 kern_assert() at ffffc00000819cdc netbsd:kern_assert+0x5c
fp ffffc00031ea79e0 uvm_pagefree() at ffffc0000046c328 netbsd:uvm_pagefree+0x4a8
fp ffffc00031ea7a10 uvm_anon_release() at ffffc00000454588 netbsd:uvm_anon_release+0x58
fp ffffc00031ea7a30 uvm_aio_aiodone_pages() at ffffc0000046ef00 netbsd:uvm_aio_aiodone_pages+0x410
fp ffffc00031ea7ac0 uvm_aio_aiodone() at ffffc0000046f22c netbsd:uvm_aio_aiodone+0xac
fp ffffc00031ea7bb0 scsipi_complete() at ffffc0000010a120 netbsd:scsipi_complete+0x120
fp ffffc00031ea7c00 scsipi_done() at ffffc0000010b174 netbsd:scsipi_done+0xe4
fp ffffc00031ea7c40 usb_transfer_complete() at ffffc0000011d638 netbsd:usb_transfer_complete+0x1f8
fp ffffc00031ea7c80 dwc2_softintr() at ffffc000003aa758 netbsd:dwc2_softintr+0x148
fp ffffc00031ea7ce0 usb_soft_intr() at ffffc000001196cc netbsd:usb_soft_intr+0x24
fp ffffc00031ea7d40 softint_dispatch() at ffffc000004c21c8 netbsd:softint_dispatch+0xe0
fp ffffc00043c9fe80 cpu_switchto_softint() at ffffc0000009c650 netbsd:cpu_switchto_softint+0x6c
tf ffffc00043c9fed0 el0_trap() at ffffc000000a2ff0 netbsd:el0_trap
---- trapframe 0xffffc00043c9fed0 (304 bytes) ----
pc=000000000b89376c, spsr=0000000080000010 (AArch32)
esr=0000000092000047, far=00000000ea013000
r0=00000000f4d5b000, r1=00000000f4a70708
r2=0000000000000042, r3=000000000000006c
r4=0000000000000043, r5=00000000f4a7074a
r6=0000000000000001, r7=000000004443fb80
r8=0000000000000000, r9=00000000eca43bb8
r10=0000000000000007, r11=000000000bd4552c
r12=000000005acc8daf, sp=r13=00000000fff77b18
lr=r14=00000000f4a70739, pc=r15=000000000b89376c
------------------------------------------------
cpu0: End traceback...
Stopped in pid 0.6 (system) at netbsd:cpu_Debugger+0x4: ret
db{0}>
Home |
Main Index |
Thread Index |
Old Index