SmallLonlyWolf / embox

Automatically exported from code.google.com/p/embox
0 stars 0 forks source link

vfork lags #697

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1.r14483, x86/nonvga_debug
2.patch config.mods
$ svn diff templates/
Index: templates/x86/nonvga_debug/mods.config
===================================================================
--- templates/x86/nonvga_debug/mods.config  (revision 14483)
+++ templates/x86/nonvga_debug/mods.config  (working copy)
@@ -5,7 +5,11 @@
    @Runlevel(2) include embox.arch.x86.kernel.locore
    @Runlevel(2) include embox.arch.x86.kernel.context
    @Runlevel(2) include embox.arch.x86.kernel.interrupt
+   include embox.arch.x86.vfork

+   include embox.compat.posix.proc.vfork_stop_parent
+   include embox.compat.posix.proc.exec_stop_parent
+
    @Runlevel(2) include embox.arch.x86.stackframe
    @Runlevel(2) include embox.lib.debug.whereami

@@ -41,41 +45,9 @@
    include embox.kernel.thread.signal.siginfoq

+   include embox.test.posix.vfork_test
    @Runlevel(1) include embox.test.critical
-   @Runlevel(1) include embox.test.gcc.int_arithmetic
-   @Runlevel(1) include embox.test.framework.mod.member.ops_test
-   @Runlevel(1) include embox.test.kernel.softirq_test
-   @Runlevel(1) include embox.test.kernel.timer_test
-   @Runlevel(1) include embox.test.kernel.task.multitask_test
-   @Runlevel(1) include embox.test.recursion
-   @Runlevel(1) include embox.test.posix.sleep_test
-   @Runlevel(1) include embox.test.stdio.printf_test
-   @Runlevel(1) include embox.test.posix.getopt_test
-   @Runlevel(1) include embox.test.posix.poll_test
-   @Runlevel(1) include embox.test.posix.select_test
-   @Runlevel(1) include embox.test.posix.pipe_test
-   @Runlevel(1) include embox.test.posix.ppty_test
-   @Runlevel(1) include embox.test.stdlib.bsearch_test
-   @Runlevel(1) include embox.test.stdlib.qsort_test
-   @Runlevel(1) include embox.test.posix.environ_test
-   @Runlevel(1) include embox.test.posix.getopt_test
-   @Runlevel(1) include embox.test.block_dev.ramdisk_test
-   @Runlevel(1) include embox.test.util.array_test
-   @Runlevel(1) include embox.test.util.bit_test
-   @Runlevel(1) include embox.test.util.list_test
-   @Runlevel(1) include embox.test.util.slist_test
-   @Runlevel(1) include embox.test.util.tree_test
-   @Runlevel(1) include embox.test.util.indexator_test
-   @Runlevel(1) include embox.test.math.math_test
-   @Runlevel(1) include embox.test.mem.pool_test
-   @Runlevel(1) include embox.test.mem.heap
-   @Runlevel(1) include embox.test.kernel.thread.thread_test
    include embox.kernel.timer.sys_timer(timer_quantity=512) // each sleep thread requires a timer
-   @Runlevel(1) include embox.test.kernel.thread.thread_priority_test
-   @Runlevel(1) include embox.test.kernel.lthread.lthread_test
-   @Runlevel(1) include embox.test.net.parser.url_parser_test
-   @Runlevel(1) include embox.test.net.parser.request_parser_test
-   @Runlevel(1) include embox.test.third_party.trex_test

    @Runlevel(2) include embox.cmd.sh.tish(prompt="%u@%h:%w%$", rich_prompt_support=1, builtin_commands="exit logout cd export mount umount")
    @Runlevel(3) include embox.init.start_script(shell_name="tish", tty_dev="ttyS0", shell_start=1)
@@ -93,7 +65,7 @@
    include embox.cmd.net.snmpd
    include embox.cmd.net.ntpdate
    include embox.cmd.net.bootpc
-   include embox.cmd.net.httpd
+   include embox.cmd.net.httpd(use_cgi=true)
    include embox.cmd.net.servd
    include embox.cmd.net.telnetd
    include embox.cmd.net.nslookup
@@ -159,7 +131,7 @@
    @Runlevel(2) include embox.net.core
    @Runlevel(2) include embox.net.skbuff(amount_skb=4000,
            amount_skb_data=4000,data_size=1514,data_align=1,data_padto=1,ip_align=false,
-           amount_skb_extra=128,extra_size=10,extra_align=1,extra_padto=1)
+           amount_skb_extra=4000,extra_size=10,extra_align=1,extra_padto=1)
    @Runlevel(2) include embox.net.socket
    @Runlevel(2) include embox.net.dev
    @Runlevel(2) include embox.net.af_inet
3.

What is the expected output? What do you see instead?
$ ./scripts/qemu/auto_qemu -no-kvm
Guessed AUTOQEMU_ARCH is: x86
Guessed AUTOQEMU_MEM is: 256
Guessed AUTOQEMU_NICS is: virtio
Guessed AUTOQEMU_KVM_ARG is: -enable-kvm
Guessed AUTOQEMU_LOAD_ARG is: -kernel ./build/base/bin/embox
Guessed AUTOQEMU_NOGRAPHIC_ARG is: -nographic
sudo qemu-system-i386 -kernel ./build/base/bin/embox -enable-kvm -m 256 -net 
nic,model=virtio,macaddr=AA:BB:CC:DD:EE:02 -net 
tap,script=./scripts/qemu/start_script,downscript=./scripts/qemu/stop_script 
-nographic -no-kvm
ioctl(TUNSETIFF): Device or resource busy
Enable IP Forwarding for eth0
net.ipv4.ip_forward = 1

Embox kernel start
runlevel: init level is 0
    unit: initializing embox.driver.interrupt.i8259: done
    unit: initializing embox.mem.static_heap: done
    unit: initializing embox.kernel.task.task_resource: done
    unit: initializing embox.kernel.task.task_table: done
    unit: initializing embox.driver.clock.pit: done
    unit: initializing embox.kernel.task.kernel_task: done
    unit: initializing embox.kernel.time.jiffies: done
    unit: initializing embox.kernel.thread.starter: done
    unit: initializing embox.kernel.time.timer: done
    unit: initializing embox.fs.driver.repo: done
    unit: initializing embox.mem.phymem: start=0x092bb000, end=0x10100000, size=115625984
done
    unit: initializing embox.fs.buffer_cache: done
    unit: initializing embox.fs.node: done
    unit: initializing embox.driver.block: done
    unit: initializing embox.fs.rootfs: initfs_mount: unpack initinitfs at 0x00230064 into /
done
    unit: initializing embox.kernel.time.kernel_time: done
    test: running embox.test.critical .. done
    unit: initializing embox.driver.ide: done
runlevel: init level is 1
    unit: initializing third_party.lib.acpica: done
    unit: initializing embox.kernel.time.timekeeper: done
    unit: initializing embox.net.dev: done
    unit: initializing embox.net.net_entry: done
    unit: initializing embox.net.neighbour: done
    unit: initializing embox.net.tcp: done
    unit: initializing embox.driver.pci: done
    unit: initializing embox.driver.net.loopback: done
    unit: initializing embox.profiler.tracing: done
    test: running embox.test.posix.vfork_test .QEMU: Terminated

or so:
root@embox:/#test
  1. vfork_test
  2. critical
  3. socket_test
  4. inet_socket_test
  5. inet_dgram_socket_test
  6. inet_stream_socket_test

Total tests: 6
root@embox:/#test -n 1
    test: running embox.test.posix.vfork_test .... done
root@embox:/#test -n 1
    test: running embox.test.posix.vfork_test .... done
root@embox:/#test -n 1
    test: running embox.test.posix.vfork_test ..

Please use labels and text to provide additional information.

Original issue reported on code.google.com by ki.stfu on 31 Jul 2014 at 6:53

GoogleCodeExporter commented 9 years ago
should be fixed for x86 in r14523 

Original comment by drakon.m...@gmail.com on 5 Aug 2014 at 4:10

GoogleCodeExporter commented 9 years ago

Original comment by ki.stfu on 6 Aug 2014 at 9:56