Page Fault

Frank Mehnert fm3 at os.inf.tu-dresden.de
Tue Mar 15 18:08:43 CET 2005


On Tuesday 15 March 2005 17:08, Tiago Jorge wrote:
> Thank you for your prompt answers in my earlier issue. i don't know
> where i saw the underscore :).

:-)

> Now i'm having another issue. I'm having a page fault at my program
> because is trying to acess page 0.
> its a simple test program that starts an object that in the constructor
> starts a thread that uses FLIPS to have network. at the makefile i'm
> realocatting the program so i think the problem doesn't come from here.
>
> this is my Log:

If you add the log server to your menu.lst, the ``*'' disapper.

> #######################################################
>
>  Welcome to Fiasco(ia32)!
>  L4(v2)/x86 microkernel (C) 1998-2005 TU Dresden
>  Rev: Wed Feb  2 12:05:33 2005 compiled with gcc 2.95 for Intel Pentium 4
> Performance-critical config option(s) detected:
>    CONFIG_NDEBUG is off
>    CONFIG_NO_FRAME_PTR is off
>  Found VMware: Using (normal) fully nested PIC mode
>  Using the PIT (i8254) on IRQ 0 for scheduling
>  Absolute KIP Syscalls using: Sysenter
>  CPU: GenuineIntel (F:2:8:9) Model: Pentium 4 (Northwood/Prestonia) at
> 2793 MHz
>
>   128 Entry I TLB (4K or 4M pages)
>    64 Entry D TLB (4k or 4M pages)
>   12K µ-ops T Cache (8-way associative)
>     8 KB L1 D Cache (4-way associative, 64 bytes per line)
>   512 KB L2 U Cache (8-way associative, 64 bytes per line)
>
>  Freeing init code/data: 20480 bytes (5 pages)
>
>  SIGMA0: Hello!
>     Found Fiasco: KIP syscalls: yes.
>     Allocated 116kB for maintenance structures.
>
>   RMGR: Stage2
>     running on Fiasco
>     bootloader loaded 7 modules at 02073000-02889a65
>     total RAM size = 195134 KB (reported by bootloader)
>             received 178096 KB RAM from sigma0
>                         828 KB reserved for RMGR
>     received no I/O ports
>     attached irqs = [ <!0> 1 <!2> 3 <!4> 5 6 7 8 9 a b c d e f ]
>
>   RMGR: Starting tasks.
>   #05: loading "(nd)/names"
>       from 02073000-0207c174 to [ 00200000-00206f60 00207000-00210000 ]
>        starting at entry 00200000 via trampoline page code 0006d150
>   #06: loading "(nd)/dm_phys"
>       from 0207d000-02094174 to [ 01500000-015143a0 01515000-0151e000 ]
>        starting at entry 01500000 via trampoline page code 0006e154
>   #07: loading "(nd)/l4io"
>        from 02095000-0225e1a6 to [ 00b70000-00b92cf6 00b93000-00bc6000 ]
>        starting at entry 00b70000 via trampoline page code 0006f150
>        symbols at 0af55000-0af8c000 (220kB), lines at 0af3e000-0af55000
> (92kB)
>   #08: loading "(nd)/name_server"
>        from 0225f000-0230478a to [ 0181c000-01838fa3 01839000-01863e40 ]
>        starting at entry 0181c000 via trampoline page code 00070158
>        symbols at 0af38000-0af3e000 (24kB), lines at 0af23000-0af38000
> (84kB)
>   #09: loading "(nd)/flips"
>        from 02305000-027155c4 to [ 01900000-01981cd6 01982000-019a4000 ]
>        starting at entry 01900000 via trampoline page code 00071150
>        symbols at 0af15000-0af23000 (56kB), lines at 0aeb5000-0af15000
> (384kB)
>   #0a: loading "(nd)/mini_ifconfig"
>        from 02716000-027c3ed0 to [ 01a80000-01a9b6d4 01a9c000-01ac48c0 ]
>        starting at entry 01a80000 via trampoline page code 00072158
>        symbols at 0aeb0000-0aeb5000 (20kB), lines at 0ae9c000-0aeb0000
> (80kB)
>   #0b: loading "(nd)/failuredetector"
>        from 027c4000-02889a64 to [ 01d00000-01d1ca74 01d1d000-01d45780 ]
>        starting at entry 01d00000 via trampoline page code 0007315c
>        symbols at 0ae97000-0ae9c000 (20kB), lines at 0ae82000-0ae97000
> (84kB)
>
>   names   | Fiasco detected, registering thread names at kernel
>  *minifcfg| main(): ifconfig
>  *minifcfg| main(): usage:
>  *minifcfg|   ifconfig <ifname> <inaddr> <inmask>
>  *minifcfg| main(): setting default value: lo 127.0.0.1 255.0.0.0
>  *io      | OSKit support: using 1024KB at 0x00180000 as heap
>  *flips-0 | OSKit support: using 1024KB at 0x00180000 as heap
>  *flips-0 | Starting FLIPS server
>  *io      | PCI: Using configuration type 1
>  *io      | PCI: Probing PCI hardware
>  *io      | PCI: Probing PCI hardware (bus 00)
>  *io      | PCI: Cannot allocate resource region 4 of device 00:07.1
>  *io      | Limiting direct PCI/PCI transfers.
>  *io      | 00000000-ffffffff : PCI mem
>  *io      |   f4000000-f7ffffff : Intel Corp. 440BX/ZX/DX -
> 82443BX/ZX/DX Host br
>  *io      : idge
>  *io      |   f8000000-f800001f : BusLogic BT-946C (BA80C30)
> [MultiMaster 10]
>  *io      |   f9000000-f9ffffff : PCI device 15ad:0405 (VMWare Inc)
>  *io      |   fa000000-faffffff : PCI device 15ad:0405 (VMWare Inc)
>  *io      | 0000-ffff : PCI IO
>  *io      |   0cf8-0cff : PCI conf1
>  *io      |   1000-103f : Intel Corp. 82371AB/EB/MB PIIX4 ACPI
>  *io      |   1040-105f : Intel Corp. 82371AB/EB/MB PIIX4 ACPI
>  *io      |   1060-107f : BusLogic BT-946C (BA80C30) [MultiMaster 10]
>  *io      |   1080-10ff : Advanced Micro Devices [AMD] 79c970 [PCnet32
> LANCE]
>  *io      |   1400-140f : PCI device 15ad:0405 (VMWare Inc)
>  *io      |   1410-141f : Intel Corp. 82371AB/EB/MB PIIX4 IDE
>  *io      | omega0/server/src/irq_threads.c:522:attach_irqs():
>  *io      |  available irqs=[ <!0> 1 <!2> 3 <!4> 5 6 7 8 9 a b c d e f ]
>  *flips-0 | l4dde_mm_init(): Using ...
>  *flips-0 |   640 kB at 0x00280000 (vmem)
>  *flips-0 |   1024 kB in 1 regions (kmem)
>  *flips-0 | Initializing RT netlink socket
>  *flips-0 | lo: I'm up now.
>  *flips-0 | NET4: Linux TCP/IP 1.0 for NET4.0
>  *flips-0 | IP Protocols: ICMP, UDP, TCP
>  *flips-0 | IP: routing cache hash table of 128 buckets, 3Kbytes
>  *flips-0 | si_meminfo(): called (1)
>  *flips-0 | TCP: Hash tables configured (established 128 bind 170)
>  *flips-0 | CORBA_alloc(): size=1024, 1 pointers used
>  *flips-0 | CORBA_alloc(): got block at 0x00180004
>  *flips-0 | CORBA_alloc(): size=1024, 2 pointers used
>  *flips-0 | CORBA_alloc(): got block at 0x0018040c
>  *flips-0 | flips_session_thread(): Flips(session_thread): new thread_id
> 9.8 *flips-0 |
>  *flips-0 | CORBA_alloc(): size=1024, 3 pointers used
>  *flips-0 | CORBA_alloc(): got block at 0x00180814
>  *flips-0 | CORBA_alloc(): size=1024, 4 pointers used
>  *flips-0 | CORBA_alloc(): got block at 0x00180c1c
>  *minifcfg| print_flags(): FLAGS for lo: LOOPBACK
>  *minifcfg| print_flags(): FLAGS for lo: UP LOOPBACK RUNNING
>  *minifcfg| print_flags(): FLAGS for lo: LOOPBACK
>  *minifcfg| print_flags(): FLAGS for lo: UP LOOPBACK RUNNING
>  *minifcfg| ifconfig(): lo: inet 127.0.0.1
>  *minifcfg|
>  *minifcfg| ifconfig(): lo: netmask 255.0.0.0
>  *minifcfg| main(): register at names
>  *minifcfg| main(): eternal sleep
>  *flips-0 | flips_session_thread(): Flips(session_thread): new thread_id
> 9.9 *flips-0 |
>  *flips-0 | CORBA_alloc(): size=1024, 5 pointers used
>  *flips-0 | CORBA_alloc(): got block at 0x00181024
>  *flips-0 | CORBA_alloc(): size=1024, 6 pointers used
>  *flips-0 | CORBA_alloc(): got block at 0x0018142c
>  *failured| L4RM: [PF] write at 0x00000000, eip 01d00249, src B.03
>  *failured| [B.0] l4rm/lib/src/pagefault.c:78:__unknown_pf():
>  *failured|  unhandled page fault
>       --------------------------------------------------------EIP:

I have no idea, but you could debug this issue yourself. At this point
you are in the Fiasco kernel debugger. Type

  utb<SPACE>01d00249

(this means: disassemble at task/address space 0xb at address 01d00249).

And look at the output. Since you have loaded the symbols and lines,
you should see the faulting source line in the disassmbly output. Just
scroll the output a few lines up by hitting the Up-Arrow key (or Page-Up).

If you don't see the error, just post the output of the above command.

Frank
-- 
## Dept. of Computer Science, Dresden University of Technology, Germany ##
## http://os.inf.tu-dresden.de/~fm3                                     ##
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20050315/93b4d184/attachment.sig>


More information about the l4-hackers mailing list