Hi,

On 09/02/2014 09:11 PM, [email protected] wrote:
> Hi,
> 
> did Stefan had time to look into the issue with the block cache?

I'm afraid no, I didn't had the time. To reproduce your experienced
problems easily, it would be nice to have a complete and working
run-script, as well as the whole output of the broken, and of the intact
scenario. Moreover, if you've changed, or added any code, a topic branch
or at least a patch would be nice.

Now, I've built my own script outgoing from the "rump_ext2.run" script
(attachment), and try to look into the issue.

Regards
Stefan

> 
> Best regards,
> Wolfgang
> 
> -----Ursprüngliche Nachricht----- 
> From: Sebastian Sumpf
> Sent: Thursday, August 21, 2014 8:40 PM
> To: Genode OS Framework Mailing List
> Subject: Re: Malloc / free ansd rump_fs ->Slab-backend exhausted
> 
> Hi Wolfgang,
> 
> On 08/18/2014 08:09 PM, [email protected] wrote:
>> Hi,
>>
>>>> this seems to be happen only if rump_fs has a larger quota – the file
>>>> can be larger if rump_fs has a smaller quota. (memory tests of the
>>>> system have shown no errors so RAM should be okay)
>>
>>> this is indeed very strange. I hope you have a Genode version where
>>> there is no Slab-Backend allocator, have a look at
>> '>include/util/allocator_fap.h" in the dde_rump repository, there should
>>> only be a PERR message with the slab warning left.
>>
>> The file looks like below,
> 
> Yes, that is the right one. We most likely got a problem with memory
> accounting in this case. Regarding your block cache question: The block
> cache has not really been tested up until now, so there may still be
> bugs. If you could provide a branch (e.g., on GitHub) or a run script, I
> might be able to have a look at it. On the other hand, Stefan will be
> back next week and, since wrote the thing, he might be able to clear
> things up.
> 
> Cheers,
> 
> Sebastian
> 
> 

-- 
Stefan Kalkowski
Genode Labs

http://www.genode-labs.com/ · http://genode.org/
set use_blk_cache 0

#
# Build
#
set build_components {
        core init
        drivers/timer
        drivers/ahci
        server/part_blk
        server/rump_fs
        test/libc_vfs
}

lappend_if [have_spec acpi]    build_components drivers/acpi
lappend_if [have_spec pci]     build_components drivers/pci
lappend_if [have_spec pci]     build_components drivers/pci/device_pd
lappend_if $use_blk_cache      build_components server/blk_cache

build $build_components
create_boot_directory

#
# Generate config
#
append config {
<config>
        <parent-provides>
                <service name="ROM"/>
                <service name="RAM"/>
                <service name="IRQ"/>
                <service name="IO_MEM"/>
                <service name="IO_PORT"/>
                <service name="CAP"/>
                <service name="PD"/>
                <service name="RM"/>
                <service name="CPU"/>
                <service name="LOG"/>
                <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>
        <start name="acpi">
                <resource name="RAM" quantum="10M"/>
                <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>
        <start name="ahci">
                <binary name="ahci" />
                <resource name="RAM" quantum="10M" />
                <provides><service name="Block" /></provides>
                <route>
                        <service name="IRQ"><child name="acpi" /></service>
                        <any-service> <parent /> <any-child /></any-service>
                </route>
        </start>
}

append_if $use_blk_cache config {
        <start name="blk_cache">
                <resource name="RAM" quantum="3M" />
                <provides><service name="Block" /></provides>
                <route>
                        <service name="Block"><child name="ahci" /></service>
                        <any-service> <parent /> <any-child /></any-service>
                </route>
        </start> }

append config {
        <start name="part_blk">
                <resource name="RAM" quantum="10M" />
                <provides><service name="Block" /></provides>
                <route>}
append_if [expr !$use_blk_cache] config {
                        <any-service><child name="ahci"/> 
<parent/><any-child/></any-service>}
append_if $use_blk_cache config {
                        <any-service><child name="blk_cache"/> 
<parent/><any-child/></any-service>}
append config {
                </route>
                <config>
                        <policy label="rump_fs" partition="1"/>
                </config>
        </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>
                <route>
                        <any-service><child name="part_blk"/> 
<parent/><any-child/></any-service>
                </route>
        </start>
        <start name="test-libc_vfs">
                <resource name="RAM" quantum="4M"/>
                <config>
                        <libc stdout="/dev/log">
                                <vfs>
                                        <dir name="dev"> <log/> </dir>
                                        <fs/>
                                </vfs>
                        </libc>
                </config>
        </start>
</config>}

install_config $config

#
# Boot modules
#

# generic modules
set boot_modules {
        core init timer test-libc_vfs ahci part_blk blk_cache
        rump.lib.so rump_fs.lib.so rump_fs
        ld.lib.so libc.lib.so
}

lappend_if [have_spec pci]     boot_modules pci_drv
lappend_if [have_spec acpi]    boot_modules acpi_drv
lappend_if [have_spec nova]    boot_modules pci_device_pd
lappend_if $use_blk_cache      boot_modules blk_cache

build_boot_image $boot_modules

append qemu_args " -m 256 -nographic"
append qemu_args " -drive id=disk,file=var/run/rump_ext2.img,if=none -device 
ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0 -boot d"

run_genode_until {.*child exited with exit value 0.*} 60

puts "\nTest succeeded\n"
------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
genode-main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/genode-main

Reply via email to