Hello. 

I am trying to run one network application. That application uses network 
(obviously) and storage. I have tested with tar and rump+ram fs, it is ok. But  
my network fails when I try to use an ahci device. This is the booting log: 

spawn qemu-system-x86_64 -no-kvm -cpu core2duo -net nic,model=e1000 -m 512m 
-net user  -redir tcp:8080::80 -nographic -serial mon:stdio -drive 
id=disk,file=bin/srv.hda,if=none -device ahci,id=ahci -device 
ide-drive,drive=disk,bus=ahci.0 -boot d -cdrom var/run/netapp.iso

NOVA Microhypervisor v6-1eba7d3 (x86_32): Mar 10 2014 01:25:16 [gcc 4.7.2]

[ 0] CORE:0:0:0 6:f:b:0 [0] Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz
Hypervisor does not feature VMX
Hypervisor does not feature SVM
Hypervisor reports 1x1 CPU  - boot CPU is 0
Hypervisor info page contains 26 memory descriptors:
detected physical memory: 0x0000000000000000 - size: 0x9fc00
use      physical memory: 0x0000000000000000 - size: 0x9f000
detected physical memory: 0x0000000000100000 - size: 0x1fefe000
use      physical memory: 0x0000000000100000 - size: 0x1fefe000
map multi-boot module: physical 0x1f8c3000 -> [0x001c6000-0x0028c2d8) - core
map multi-boot module: physical 0x1f98a000 -> [0x00002000-0x0000257d) - config
map multi-boot module: physical 0x1f98b000 -> [0x00003000-0x0006e3b0) - init
map multi-boot module: physical 0x1f9f7000 -> [0x0006f000-0x000cdbfc) - timer
map multi-boot module: physical 0x1fa56000 -> [0xb0000000-0xb0097124) - 
ld.lib.so
map multi-boot module: physical 0x1faee000 -> [0xbff04000-0xbffb4208) - 
libc.lib.so
map multi-boot module: physical 0x1fb9f000 -> [0x000ce000-0x000f26d8) - 
libm.lib.so
map multi-boot module: physical 0x1fbc4000 -> [0x000f3000-0x000f91c4) - 
pthread.lib.so
map multi-boot module: physical 0x1fbcb000 -> [0x000fa000-0x000fc7dc) - 
libc_log.lib.so
map multi-boot module: physical 0x1fbce000 -> [0xb0098000-0xb0185750) - 
lxip.lib.so
map multi-boot module: physical 0x1fcbc000 -> [0xbffb5000-0xbffe3c00) - 
libc_resolv.lib.so
map multi-boot module: physical 0x1fceb000 -> [0xb0186000-0xb02096e8) - netapp
map multi-boot module: physical 0x1fd6f000 -> [0xb020a000-0xb0292d04) - nic_drv
map multi-boot module: physical 0x1fdf8000 -> [0xb0293000-0xb0307914) - acpi_drv
map multi-boot module: physical 0x1fe6d000 -> [0xb0308000-0xb0377be0) - pci_drv
map multi-boot module: physical 0x1fedd000 -> [0xb0378000-0xb03cde18) - 
pci_device_pd
map multi-boot module: physical 0x1ff33000 -> [0xb03ce000-0xb04369c0) - ahci
map multi-boot module: physical 0x1ff9c000 -> [0xb0437000-0xb0480234) - 
libc_fuse_ext2.lib.so
map multi-boot module: physical 0x1ffe6000 -> [0xbffe4000-0xbfffbf60) - 
libc_block.lib.so
:virt_alloc: Allocator 185bb4 dump:
 Block: [00002000,00003000) size=00001000 avail=00000000 max_avail=00000000
 Block: [00003000,0006f000) size=0006c000 avail=00000000 max_avail=00000000
 Block: [0006f000,000ce000) size=0005f000 avail=00000000 max_avail=00000000
 Block: [000ce000,000f3000) size=00025000 avail=00000000 max_avail=00003000
 Block: [000f3000,000fa000) size=00007000 avail=00000000 max_avail=00000000
 Block: [000fa000,000fd000) size=00003000 avail=00000000 max_avail=00003000
 Block: [000fd000,00100000) size=00003000 avail=00003000 max_avail=00003000
 Block: [001c6000,0028d000) size=000c7000 avail=00000000 max_avail=9fd73000
 Block: [0028d000,a0000000) size=9fd73000 avail=9fd73000 max_avail=9fd73000
 Block: [b0000000,b0098000) size=00098000 avail=00000000 max_avail=9fd73000
 Block: [b0098000,b0186000) size=000ee000 avail=00000000 max_avail=9fd73000
 Block: [b0186000,b020a000) size=00084000 avail=00000000 max_avail=00000000
 Block: [b020a000,b0293000) size=00089000 avail=00000000 max_avail=9fd73000
 Block: [b0293000,b0308000) size=00075000 avail=00000000 max_avail=00000000
 Block: [b0308000,b0378000) size=00070000 avail=00000000 max_avail=00000000
 Block: [b0378000,b03ce000) size=00056000 avail=00000000 max_avail=00000000
 Block: [b03ce000,b0437000) size=00069000 avail=00000000 max_avail=0fa7e000
 Block: [b0437000,b0481000) size=0004a000 avail=00000000 max_avail=0fa7e000
 Block: [b0481000,bfeff000) size=0fa7e000 avail=0fa7e000 max_avail=0fa7e000
 Block: [bff04000,bffb5000) size=000b1000 avail=00000000 max_avail=0fa7e000
 Block: [bffb5000,bffe4000) size=0002f000 avail=00000000 max_avail=00000000
 Block: [bffe4000,bfffc000) size=00018000 avail=00000000 max_avail=00001000
 Block: [bfffc000,bfffd000) size=00001000 avail=00001000 max_avail=00001000
 => mem_size=2951938048 (2815 MB) / mem_avail=2944356352 (2807 MB)
:phys_alloc: Allocator 185758 dump:
 Block: [00001000,0009f000) size=0009e000 avail=0009e000 max_avail=0009e000
 Block: [00100000,00400000) size=00300000 avail=00300000 max_avail=1d0c3000
 Block: [02800000,1f8c3000) size=1d0c3000 avail=1d0c3000 max_avail=1d0c3000
 => mem_size=491130880 (468 MB) / mem_avail=491130880 (468 MB)
:io_mem_alloc: Allocator 18a45c dump:
 Block: [00000000,00001000) size=00001000 avail=00001000 max_avail=00001000
 Block: [0009f000,00100000) size=00061000 avail=00061000 max_avail=00061000
 Block: [00400000,02800000) size=02400000 avail=02400000 max_avail=e073c000
 Block: [1f8c3000,fffff000) size=e073c000 avail=e073c000 max_avail=e073c000
 => mem_size=3803832320 (3627 MB) / mem_avail=3803832320 (3627 MB)
int main(): --- create local services ---
int main(): --- start init ---
int main(): transferred 468 MB to init
int main(): --- init created, waiting for exit condition ---
[init -> acpi] available memory for ACPI 2048 kiB, for PCI_DRV 9684 kiB
[init -> nic_drv] --- iPXE NIC driver started ---
[init -> ahci] --- AHCI driver started ---
[init -> netapp] void init_libc_block(): using the libc_block plugin
[init -> netapp] libc_fuse_ext2: try to mount /dev/blkdev...
[init -> acpi] void Acpi_table::_parse_tables(T*, Genode::uint32_t) [with T = 
unsigned int; Genode::uint32_t = unsigned int]: Found MADT
[init -> acpi] MADT IRQ 0 -> GSI 2 flags: 0
[init -> acpi] MADT IRQ 5 -> GSI 5 flags: d
[init -> acpi] MADT IRQ 9 -> GSI 9 flags: d
[init -> acpi] MADT IRQ 10 -> GSI 10 flags: d
[init -> acpi] MADT IRQ 11 -> GSI 11 flags: d
[init -> acpi -> pci_drv] PCI driver started
[init -> acpi -> pci_drv -> pci_device_pd] PCI device pd starting ...
[init -> acpi -> pci_drv -> pci_device_pd] PCI device pd started
[init -> acpi] ACPI table format not supported - will not rewrite GSIs
[init -> ahci] Found AHCI HBA (Vendor ID: 8086 Device ID: 2922 Class: 00010601)
[init -> ahci] Port 0: ATAPI no
[init -> ahci] Port 0: Detected interface is active
[init -> ahci] AHCI Version: 1.0000
[init -> ahci] CAPs:
[init -> ahci]  Port count: 6
[init -> ahci]  Command slots: 32
[init -> ahci]  AHCI only: no
[init -> ahci]  Native command queuing: yes
[init -> ahci]  64 Bit: no
[init -> ahci] CMD.ST bit set during device reset --> unknown behavior
[init -> netapp] fuse* fuse_new(fuse_chan*, fuse_args*, const fuse_operations*, 
size_t, void*): 
[init -> netapp] Using DHCP for interface configuration.
[init -> netapp] void init_libc_lxip(): init_libc_lxip() address config=dhcp
[init -> netapp] INFO: NET: Registered protocol family 16
[init -> netapp] INFO: NET: Registered protocol family 2
[init -> netapp] INFO: Hash tables configured (established 524288 bind 524288)
[init -> netapp] INFO: reno registered
[init -> netapp] INFO: cubic registered
Quota exceeded! amount=8192, size=4096, consumed=8192
[init -> netapp] upgrading quota donation for SIGNAL session
[init -> nic_drv] --- init iPXE NIC
[init -> nic_drv] scan_pci(): Found: 00:03.0 8086:100e (rev 03) IRQ 0b
[init -> nic_drv] probe_pci_device(): using driver 82540em
[init -> nic_drv] adjust_pci_device(): PCI BIOS has not enabled device 00:03.0! 
Updating PCI command 0103->0107
[init -> nic_drv] adjust_pci_device(): PCI device 00:03.0 latency timer is 
unreasonably low at 0. Setting to 32.
[init -> nic_drv] ioremap(): bus_addr = febc0000 len = 20000
[init -> nic_drv] snprintf not implemented
[init -> nic_drv]     number of devices: 1
[init -> nic_drv] --- init rx_callbacks
[init -> nic_drv] --- get MAC address 52:54:00:12:34:56
Quota exceeded! amount=12288, size=4096, consumed=12288
[init -> netapp] upgrading quota donation for SIGNAL session
[init -> netapp] Received mac: 52:54:00:12:34:56
[init -> netapp] driver_net_open called

and stop is here. 

This is a run script:

set use_ram     0
set use_tar     0
set use_ahci    1

set disk_image "bin/srv.hda"
netapp
set build_components {
        core init
        drivers/timer
        drivers/pci drivers/nic
        app/netapp
}

set network_driver "nic_drv" 

lappend_if [have_spec acpi]     build_components drivers/acpi
lappend_if [have_spec pci]      build_components drivers/pci/device_pd

lappend_if $use_ram             build_components server/ram_blk
lappend_if $use_ram             build_components server/rump_fs

lappend_if $use_tar             build_components server/tar_fs

lappend_if $use_ahci            build_components drivers/ahci

build $build_components

create_boot_directory

append config {
<config>
        <parent-provides>
                <service name="ROM"/>
                <service name="LOG"/>
                <service name="CAP"/>
                <service name="RAM"/>
                <service name="RM"/>
                <service name="CPU"/>
                <service name="PD"/>
                <service name="IRQ"/>
                <service name="IO_PORT"/>
                <service name="IO_MEM"/>
                <service name="SIGNAL"/>
        </parent-provides>
        <default-route>
                <any-service> <parent/> <any-child/> </any-service>
        </default-route>
        <start name="timer">
                <resource name="RAM" quantum="1M"/>
                <provides><service name="Timer"/></provides>
        </start>}

append config {
        <start name="nic_drv">
                <resource name="RAM" quantum="8M"/>
                <provides><service name="Nic"/></provides>
        </start>}

append_if [have_spec acpi] config {
        <start name="acpi">
                <resource name="RAM" quantum="12M"/>
                <binary name="acpi_drv"/>
                <provides>
                        <service name="PCI"/>
                        <service name="IRQ" />
                </provides>
                <route>
                        <service name="PCI"> <any-child /> </service>
                        <any-service> <parent/> <any-child /> </any-service>
                </route>
        </start>}

append_if [expr ![have_spec acpi] && [have_spec pci]] config {
        <start name="pci_drv">
                <resource name="RAM" quantum="6M"/>
                <provides> <service name="PCI"/> </provides>
        </start> }

append_if [expr $use_tar] config {
        <start name="tar_fs">
                <resource name="RAM" quantum="10M"/>
                <provides><service name="File_system"/></provides>
                <config>
                        <archive name="srv.tar" />
                        <policy label="netapp" root="/" writeable="yes" />
                </config>
        </start> }

append_if [expr $use_ram] config {
        <start name="ram_blk">
                <resource name="RAM" quantum="64M"/>
                <provides><service name="Block"/></provides>
                <config file="ext2.raw" block_size="512"/>
        </start>
        <start name="rump_fs">
                <resource name="RAM" quantum="8M" />
                <provides><service name="File_system"/></provides>
                <config fs="ext2fs"><policy label="" root="/" 
writeable="yes"/></config>
        </start>}

append_if $use_ahci config {
        <start name="ahci">
                <binary name="ahci" />
                <resource name="RAM" quantum="10M" />
                <provides><service name="Block" /></provides>
                <route>}

append_if [expr $use_ahci && [have_spec acpi]] config {
                        <service name="IRQ"><child name="acpi" /></service>}
append_if $use_ahci config {
                        <any-service> <parent /> <any-child /></any-service>
                </route>
        </start>}



append config {
        <start name="netapp">
                <resource name="RAM" quantum="1G" />}
append config {
                <config>
                        <arg value="netapp" />
                        <libc tx_buf_size="320M" rx_buf_size="320M"}
append config {/>
                </config>
                </start>
                }

append config {
</config>
}

install_config $config

#
# Boot modules
#

# generic modules
set boot_modules {
        core init timer ld.lib.so
        libc.lib.so libm.lib.so  pthread.lib.so libc_log.lib.so
        lxip.lib.so libc_resolv.lib.so 
        netapp
        nic_drv
}

# platform-specific modules
lappend_if [have_spec acpi]          boot_modules acpi_drv
lappend_if [have_spec pci]           boot_modules pci_drv
lappend_if [have_spec nova]          boot_modules pci_device_pd

lappend_if $use_ram             boot_modules    ext2.raw
lappend_if $use_ram             boot_modules    rump.lib.so
lappend_if $use_ram             boot_modules    rump_fs.lib.so 
lappend_if $use_ram             boot_modules    ram_blk
lappend_if $use_ram             boot_modules    rump_fs
lappend_if $use_ram             boot_modules    libc_fs.lib.so

lappend_if $use_tar             boot_modules    tar_fs
lappend_if $use_tar             boot_modules    srv.tar

lappend_if $use_ahci            boot_modules ahci
lappend_if $use_ahci            boot_modules libc_fuse_ext2.lib.so
lappend_if $use_ahci            boot_modules libc_block.lib.so

build_boot_image $boot_modules

append_if [have_spec x86]     qemu_args " -net nic,model=e1000 "
append_if [have_spec lan9118] qemu_args " -net nic,model=lan9118 "

append qemu_args " -m 512m -net user -redir tcp:8080::80"
append qemu_args " -nographic -serial mon:stdio "

append_if $use_ahci        qemu_args " -drive id=disk,file=$disk_image,if=none 
-device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0 -boot d"

run_genode_until forever

So, maybe I forget something in configuration? Something related to IRQ..


-- 
Sartakov A. Vasily
sarta...@ksyslabs.org



Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works. 
Faster operations. Version large binaries.  Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
Genode-main mailing list
Genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main

Reply via email to