Date: Fri, 19 Nov 1999 00:34:53 +0000 From: Thierry.Besancon@lps.ens.fr (Thierry Besancon) To: freebsd-fs@freebsd.org, freebsd-hackers@freebsd.org Cc: dillon@freebsd.org, Ollivier.Robert@eurocontrol.fr, besancon@lps.ens.fr, Joel.Marchand@polytechnique.fr, Pierre.David@prism.uvsq.fr Subject: crash in ffs_vptofh on diskless workstation Message-ID: <199911182334.AAA25614@excalibur.lps.ens.fr>
next in thread | raw e-mail | index | archive | help
Hello
I'm trying to build new X terminals for my lab.
To do so I use FreeBSD 3.3-RELEASE.
The X terminal is a diskless PC with 64 Mo of ram. It perfectly boots
and I can launch the X server perfectly. Everything just runs fine.
Except for one little piece of thing.
As i wanted to make use of the floppy drive, I gave a look at floppyd
part of mtools package. It implements what I want. While running the
daemon, I encountered a problem. So I went debugging the C code of it.
And so i found a bug in FreeBSD (?!).
Here's the df of the diskless X terminal (i kept the ssh port in order
to remotely connect and be able to look at the problem of floppyd) :
Filesystem 1K-blocks Used Avail Capacity Mounted on
129.199.120.250:/ 127023 31651 85211 27% /
mfs:29 959 668 215 76% /conf/etc
/conf/etc 959 668 215 76% /etc
129.199.120.250:/usr 190543 153042 22258 87% /usr
129.199.120.250:/usr/local 2846396 1958786 659899 75% /usr/local
mfs:61 3935 1431 2190 40% /var
/var/tmp 3935 1431 2190 40% /tmp
mfs:91 1511 47 1344 3% /dev
It's the classical way FreeBSD 3.3 seems to make diskless run.
The root filesystem is mounted through NFS and memory filesystems
are created to store the live logs of the system.
The mounts are read-only.
The X terminal runs without any swap.
/etc/rc.sysctl confirms it as well :
sysctl -w vm.swap_enabled=0
The bug is just that when launching any executable residing in my
mfs /tmp, it justs hangs the kernel.
# cp /bin/ls /tmp
# df /tmp/.
Filesystem 1K-blocks Used Avail Capacity Mounted on
/var/tmp 3935 1432 2189 40% /tmp
# /tmp/ls
(workstation freezes)
Here's the panic :
Fatal trap 12 : page fault while in kernel mode
fault virtual address = 0x3e
fault code = supervisor read, page not present
instruction pointer = 0x8:0xc022bf14
stack pointer = 0x10:0xc4546bc8
frame pointer = 0x10:0xc4546ca4
code segment = base 0x0, list 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
precessor eflags = interrupt disabled, resume, IOPL = 0
current process = 355 (csh)
interrupt mask = net tty bio cam
kernel : type 12 trap, code = 0
Stopped at ffs_vptofh+0xfe0: cmpw $0x2,0x3e(%edx)
and the trace :
db> trace
ffs_vptofh(c4546d5c,c4514300,1000,0,c4546cf4) at ffs_vptofh+0xfe0
end(c4546d5c) at 0xc087c485
vnode_pager_freepage(c4559a2c,c4546db8,1,0,c4546df8) at vnode_pager_freepage+0x556
vm_pager_get_pages(c4559a2c,c4546db8,1,0,c4546f18) at vm_pager_get_pages+0x1f
exec_map_first_page(c4546e94,c44c55a8,c02fe464,0,4) at exec_map_first_page+0xba
execve(c44c55a0,c4546f94,80922e0,80940000,8085000) at execve+0x19e
syscall(27,27,8085000,8094000,bfbffbb0) at syscall+0x187
Xint0x80_syscall() at Xint0x80_syscall+0x2c
(not too deep)
Given I have no swap, it is not easy to supply vmcore.
But I can provide any help as I can reproduce the crash at will.
If someone has a clue on how to fix that...
Thierry
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199911182334.AAA25614>
