Subject: Re: panic: pagemove
To: Greywolf <greywolf@captech.com>
From: None <r.evans@ic.ac.uk>
List: port-sparc
Date: 11/25/1995 19:59:37
>As soon as I start up the tar, machine A panics with a "panic: pagemove".

Same here.  I don't need to be NFS mounting the filesystem, though.  All
it takes is to run tar locally.  It reads a couple of directories, but
when it reaches the first file, boom!

Just before the panic I got a:
cd0(esp0:6:0): soft error (corrected), info = 108 (decimal), data = 00 00 00 00 18 04 00 00
(Info was "104" on a previous panic)

A quick bit of debugging shows that the panic is caused by the size being
passed to pagemove() by cluster_callback() being 0x800 (2K), but pagemove
checks for it being "cluster" aligned (0x1000 on my sun4c).

To my (completely uneducated) eye, it looks like a confusion between
blocksize and pagesize at some point.

Here's the traceback I got (vpasted):

[I changed the test in pagemove() to print a panic according to the
arg that failed.  Of course, if I'd looked at the traceback...]

panic: pagemove size
_pagemove(f8d5d800, f8de1000, 800, cf7f1, 26b1, 1) at _pagemove+0x20
_cluster_callback(f8ba523c, 100210, f80399cc, 0, ffffffff, 200) at _cluster_callback+0x48
_biodone(f8ba523c, f97a134c, f8ba523c, f86309a0, 1, 0) at _biodone+0x98
_scsi_error(f8636a00, 0, 2, ffffffe7, ffffffff, 19) at _scsi_error+0x40
_sc_err1(0, 1, ffffffff, 0, c, 0) at _sc_err1+0x114
_scsi_done(f8636a00, 1a, 1, 0, 0, 0) at _scsi_done+0x68
_esp_done(f85a8cf0, f85a8cf0, f8b96100, f8b96090, f80ec000, 300) at _esp_done+0x398
_espintr(f85a8c00, f80b6764, 30b768bb, cf7f1, 26b1, 1) at _espintr+0x714
_sparc_interrupt(0, 0, f8008400, 0, ffffffff, 200) at _sparc_interrupt+0x170
_mi_switch(2c, f97a134c, f80e1fc8, f86309a0, 1, 0) at _mi_switch+0x194
_tsleep(f8ba523c, 0, f80386c8, 0, 0, 800) at _tsleep+0x1f0
_biowait(f8038400, 1, 2, fffff800, ffffffff, 800) at _biowait+0x44
_cluster_read(0, 0, b25e, 1, 800, ffffffff) at _cluster_read+0x554
_cd9660_read(0, f97a2d9c, f80dc800, 800, 0, 14) at _cd9660_read+0x148
_vn_read(f8620b40, f97a2e98, f8623580, f80425e4, 53000, 46200) at _vn_read+0xb8
_sys_read(9, f97a2f28, f97a2f20, f8024920, 4d000, 20) at _sys_read+0xc0
_syscall(3, f97a2fb0, 3d040, 1265, 0, 14) at _syscall+0x1ec
_trapbase(5, 53000, 2800, 4e040, 4e050, f97a2fb0) at _trapbase+0x270c

Hope some of that helps,
Rob