From: Kazumaro Aoki <k...@flu.if0.org>
Subject: [FreeBSD-users-jp 92349] can't work fwcontrol with fwcontrol -R
Date: Wed, 27 May 2009 00:37:17 +0900

> 最近、OSを6.3R/i386から7.2R/i386にあげたところ、従来、
>   fwcontrol -R
> を実行中にdeviceの様子を確認しようとして
>   fwcontrol
> を実行したら6.3Rでは何も問題なく実行できたのですが、7.2Rでは
> fwcontrol: main: Error opening firewire controller #1 /dev/fw1.0: Device busy
> No device are found on unit number #1.
> と怒られるようになりました。
> 
> これは仕様なのでしょうか?

このあとさらに困った事態を経験しました。

video streamをfirewireで取るように操作をすると、200回に一回ぐらいです
が、panicするようになりました。fwcontrol -Rで引き起こされているような
気がします。

crash dumpを取ってあるので
# kgdb /boot/kernel/kernel vmcore.12
とかしてみるとfirewire関係で文句をいわれています。
今までに2例いわれているので、その結果を添付します。

何がまずいのでしょうか?
何か解決に役立つ情報をもらえると幸いです。

青木和麻呂@国分寺市在住
Script started on Sat Jun 13 15:26:27 2009
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"...

Unread portion of the kernel message buffer:


Fatal trap 12: page fault while in kernel mode
cpuid = 1; apic id = 01
fault virtual address   = 0xeea8d1a5
fault code              = supervisor read, page not present
instruction pointer     = 0x20:0xc05fb77a
stack pointer           = 0x28:0xe72a7c2c
frame pointer           = 0x28:0xe72a7c9c
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 39 (fw0_taskq)
trap number             = 12
panic: page fault
cpuid = 1
Uptime: 13d10h28m4s
Physical memory: 3305 MB
Dumping 334 MB: 319 303 287 271 255 239 223

Fatal trap 12: page fault while in kernel mode
cpuid = 1; apic id = 01
fault virtual address   = 0x8d413004
fault code              = supervisor write, page not present
instruction pointer     = 0x20:0xc0d2ad6f
stack pointer           = 0x28:0xe6f6eb24
frame pointer           = 0x28:0xe6f6eb64
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 33 (irq19: fwohci0+++)
trap number             = 12
panic: page fault
cpuid = 1


Fatal trap 12: page fault while in kernel mode
cpuid = 1; apic id = 01
fault virtual address   = 0x8d1c0404
fault code              = supervisor write, page not present
instruction pointer     = 0x20:0xc0d2ad6f
stack pointer           = 0x28:0xc6727a28
frame pointer           = 0x28:0xc6727a68
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 4 (g_down)
trap number             = 12
panic: page fault
cpuid = 1
 207 191 175 159 143 127 111 95 79 63 47 31 15

kgdb: kvm_read: invalid address (0x2affa2be)
kgdb: kvm_read: invalid address (0x5b82ced2)
Reading symbols from /boot/kernel/linux.ko...Reading symbols from 
/boot/kernel/linux.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linux.ko
Reading symbols from /boot/kernel/acpi.ko...Reading symbols from 
/boot/kernel/acpi.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/acpi.ko
Reading symbols from /boot/kernel/linprocfs.ko...Reading symbols from 
/boot/kernel/linprocfs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linprocfs.ko
Reading symbols from /boot/kernel/netgraph.ko...Reading symbols from 
/boot/kernel/netgraph.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/netgraph.ko
Reading symbols from /boot/kernel/ng_ether.ko...Reading symbols from 
/boot/kernel/ng_ether.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_ether.ko
Reading symbols from /boot/kernel/ng_pppoe.ko...Reading symbols from 
/boot/kernel/ng_pppoe.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_pppoe.ko
Reading symbols from /boot/kernel/ng_socket.ko...Reading symbols from 
/boot/kernel/ng_socket.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_socket.ko
#0  sched_switch (td=0xc75c1230, newtd=Variable "newtd" is not available.
) at /usr/src/sys/kern/sched_ule.c:1944
1944                    cpuid = PCPU_GET(cpuid);
(kgdb) quit

Script done on Sat Jun 13 15:26:31 2009
Script started on Sat Jun 13 15:26:35 2009
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"...

Unread portion of the kernel message buffer:
Unknown service addr 0xffff:0xf0000d00 WREQB(1) src=0xffc0 data=d00


Fatal trap 12: page fault while in kernel mode
cpuid = 1; apic id = 01
fault virtual address   = 0xcd359fec
fault code              = supervisor read, page not present
instruction pointer     = 0x20:0xc05fb777
stack pointer           = 0x28:0xe72b1c2c
frame pointer           = 0x28:0xe72b1c9c
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 41 (fw1_taskq)
trap number             = 12
panic: page fault
cpuid = 1
Uptime: 3d16h0m15s
Physical memory: 3305 MB
Dumping 315 MB: 300 284 268 252 236 220 204 188 172 156 140 124 108 92 76 60 44 
28 12

Reading symbols from /boot/kernel/linux.ko...Reading symbols from 
/boot/kernel/linux.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linux.ko
Reading symbols from /boot/kernel/acpi.ko...Reading symbols from 
/boot/kernel/acpi.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/acpi.ko
Reading symbols from /boot/kernel/linprocfs.ko...Reading symbols from 
/boot/kernel/linprocfs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linprocfs.ko
Reading symbols from /boot/kernel/netgraph.ko...Reading symbols from 
/boot/kernel/netgraph.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/netgraph.ko
Reading symbols from /boot/kernel/ng_ether.ko...Reading symbols from 
/boot/kernel/ng_ether.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_ether.ko
Reading symbols from /boot/kernel/ng_pppoe.ko...Reading symbols from 
/boot/kernel/ng_pppoe.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_pppoe.ko
Reading symbols from /boot/kernel/ng_socket.ko...Reading symbols from 
/boot/kernel/ng_socket.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_socket.ko
#0  doadump () at pcpu.h:196
196     pcpu.h: No such file or directory.
        in pcpu.h
(kgdb) quit

Script done on Sat Jun 13 15:26:41 2009

メールによる返信