NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/55467: tmpfs calls pmap_kenter_pa(9) with virtual address with page offset



>Number:         55467
>Category:       kern
>Synopsis:       tmpfs calls pmap_kenter_pa(9) with virtual address with page offset
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jul 07 01:20:00 +0000 2020
>Originator:     Rin Okuyama
>Release:        9.99.69
>Organization:
Department of Physics, Meiji University
>Environment:
NetBSD rb800 9.99.69 NetBSD 9.99.69 (RB800-$Revision: 1.37 $) #13: Tue Jul  7 10:00:31 JST 2020  rin@latipes:/usr/src/sys/arch/evbppc/compile/RB800 evbppc
>Description:
By recent changes, tmpfs became to call pmap_kenter_pa(9) with ``va''
argument with page offset via ubc_uiomove(9).

For many ports, page offset of ``va'' is silently truncated, but this
causes KASSERT failure for powerpc/booke:

----
/etc/rc.conf is not configured.  Multiuser boot aborted.
Enter pathname of shell or RETURN for /bin/sh:
We recommend that you create a non-root account and use su(1) for root access.
rb800# mount /tmp
rb800# dd if=/dev/zero of=/tmp/zero bs=1k count=1024
panic: kernel diagnostic assertion "trunc_page(tlb.tlb_va) == tlb.tlb_va" failed: file "../../../../arch/powerpc/booke/e500_tlb.c", line 233
cpu0: Begin traceback...
0x00bfbb60: at vpanic+0x12c
0x00bfbb90: at kern_assert+0x60
0x00bfbbd0: at tlb_to_hwtlb+0x174
0x00bfbc10: at e500_tlb_update_addr+0x50
0x00bfbc60: at pmap_tlb_update_addr+0x8c
0x00bfbc90: at pmap_kenter_pa+0xf0
0x00bfbcc0: at ubc_alloc.constprop.1+0x30c
0x00bfbd40: at ubc_uiomove+0x118
0x00bfbdb0: at tmpfs_write+0x210
0x00bfbdf0: at VOP_WRITE+0x3c
0x00bfbe20: at vn_write+0x14c
0x00bfbe50: at dofilewrite+0x8c
0x00bfbeb0: at syscall+0x2cc
0x00bfbf20: user SC trap #4 by 0xefc50d48: srr1=0x2d230
            r1=0xffff7950 cr=0x24224882 xer=0 ctr=0xefc50d40
cpu0: End traceback...
Stopped in pid 112.112 (dd) at  netbsd:cpu_Debugger+0xc:        tw      0, r1, r
1
----
>How-To-Repeat:
Described above.
>Fix:
Not known.

I will bisect which commit caused this if required.

According to my record, kernel as of mid April worked fine.



Home | Main Index | Thread Index | Old Index