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 [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to