Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: X.org (AGP) related panic
Aleksej Saushev <asau%inbox.ru@localhost> writes:
> I'm observing reproducable panic with sources as of today,
> ca. 10:45 MSD, no crash dump is generated, system just hangs,
> handwritten backtrace follows:
>
> uvm_pglistalloc: page not on freelist
>
> uvm_pglist_add
> uvm_pglistalloc
> _bus_dmamem_alloc_range
> _bus_dmamem_alloc
> agp_generic_bind_memory
> cdev_ioctl
> spec_ioctl
> VOP_ioctl
> vn_ioctl
> sys_ioctl
As was suggested on IRC (Jared McNeil?), I've built test kernel
to print arguments of agp_generic_bind_memory (see the diff below).
The panic is reproduced with these messages:
Sep 24 19:58:56 asau /netbsd: agp_generic_bind_memory: sz=16777216 phys=0 off=0
isbound=0
Sep 24 19:58:56 asau /netbsd: agp_generic_bind_memory: requested offset 16777216
Sep 24 19:58:57 asau /netbsd: agp_generic_bind_memory: sz=31457280 phys=0 off=0
isbound=0
Sep 24 19:58:57 asau /netbsd: agp_generic_bind_memory: requested offset 33554432
This pattern repeats several times and before panic I see only
two lines similar to the first two:
Sep 24 19:58:56 asau /netbsd: agp_generic_bind_memory: sz=16777216 phys=0 off=0
isbound=0
Sep 24 19:58:56 asau /netbsd: agp_generic_bind_memory: requested offset 16777216
Backtrace as above.
Any other information I should provide?
Further directions?
Index: dev/pci/agp.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/agp.c,v
retrieving revision 1.61
diff -u -r1.61 agp.c
--- dev/pci/agp.c 22 Aug 2008 18:05:44 -0000 1.61
+++ dev/pci/agp.c 24 Sep 2008 16:38:16 -0000
@@ -280,7 +280,7 @@
return (1);
}
-static const int agp_max[][2] = {
+static const u_int agp_max[][2] = {
{0, 0},
{32, 4},
{64, 28},
@@ -549,6 +549,12 @@
bus_addr_t pa;
int contigpages, nseg;
+ printf("agp_generic_bind_memory: sz=%llu phys=%llu off=%lld
isbound=%d\n",
+ (unsigned long long)mem->am_size,
+ (unsigned long long)mem->am_physical,
+ (long long)mem->am_offset, mem->am_is_bound);
+ printf("agp_generic_bind_memory: requested offset %ld\n", (long)offset);
+
mutex_enter(&sc->as_mtx);
if (mem->am_is_bound) {
--
HE CE3OH...
Home |
Main Index |
Thread Index |
Old Index