Malloc / free ansd rump_fs ->Slab-backend exhausted
Stefan Kalkowski
stefan.kalkowski at ...1...
Wed Sep 3 12:08:57 CEST 2014
Hi,
On 09/02/2014 09:11 PM, w_schmidt at ...181... 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, w_schmidt at ...181... 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/
-------------- next part --------------
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"
More information about the users
mailing list