Skip to content
Snippets Groups Projects
  1. Dec 27, 2013
  2. Dec 23, 2013
    • Asias He's avatar
      run.py: Add aio=native for virtio-blk device · c52a03b1
      Asias He authored
      
      aio=native makes QEMU to use Linux native implementation of aio instead
      of emulated thread pool which improves tst-bdev-write.so performance:
      
        blk, aio=threads
        Wrote 691.910 MB in 10.03 s
        Wrote 590.020 MB in 10.00 s
        Wrote 605.578 MB in 10.01 s
        Wrote 662.828 MB in 10.01 s
        Wrote 624.762 MB in 10.01 s
      
        blk, aio=native
        Wrote 789.566 MB in 10.00 s
        Wrote 744.691 MB in 10.00 s
        Wrote 537.125 MB in 10.00 s
        Wrote 732.230 MB in 10.00 s
        Wrote 683.383 MB in 10.00 s
      
        scsi, aio=threads
        Wrote 200.863 MB in 10.02 s
        Wrote 193.758 MB in 10.02 s
        Wrote 193.680 MB in 10.03 s
        Wrote 195.211 MB in 10.03 s
        Wrote 190.762 MB in 10.02 s
      
        scsi, aio=native
        Wrote 414.344 MB in 10.05 s
        Wrote 483.148 MB in 10.00 s
        Wrote 537.477 MB in 10.01 s
        Wrote 477.727 MB in 10.01 s
        Wrote 462.805 MB in 10.01 s
      
      Signed-off-by: default avatarAsias He <asias@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      c52a03b1
  3. Dec 20, 2013
  4. Dec 19, 2013
  5. Dec 18, 2013
  6. Dec 12, 2013
  7. Dec 11, 2013
    • Nadav Har'El's avatar
      Rename blacklisted tests · 4e4e191f
      Nadav Har'El authored
      
      Rename blacklisted tests, from tst-wake.cc et al. to misc-wake.cc.
      
      The different name will cause these tests not to be automatically run
      by "make check" - without needing the separate blacklist in test.py
      (which this patch deletes).
      After this patch, testrunner.so will also only run tests called tst-*,
      so will not run the misc-* tests.
      
      The misc-* tests can still be run manually, e.g.,
        run.py -e tests/misc-mutex.so
      
      In addition to the previously blacklisted tests, this patch "blacklists"
      (renames) a few additional tests which fail quickly, but test.py didn't
      know because they didn't use the word "fail". An example is tst-schedule.so,
      which existed immediately when not run on 1 vcpu. So this patch also
      renames it to misc-schedule.so, so "make check" or testrunner.so won't
      run this test.
      
      Note that after this patch, testrunner.so is a new way to run all tests,
      but it isn't working well yet because it still exposes new bugs that do not
      exist in the separate tests (depending on your view point, this might be
      considered a feature, not a bug, in testrunner.so...).
      
      Signed-off-by: default avatarNadav Har'El <nyh@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      4e4e191f
  8. Dec 10, 2013
    • Pekka Enberg's avatar
      test.py: add '--repeat' option · 3acafce2
      Pekka Enberg authored
      
      Add a '--repeat' option to test.py that repeats the test suite until a
      test fails.  This is useful for detecting test cases that fail some of
      the time.
      
      Reviewed-by: default avatarTomasz Grabiec <tgrabiec@gmail.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      3acafce2
    • Pekka Enberg's avatar
      test.py: Make output pretty and show duration · fbf2a946
      Pekka Enberg authored
      
      Make the test runner output look pretty and show test duration to make
      it visible which tests take the longest time to run.  The output looks
      as follows now:
      
          TEST tst-af-local.so           OK  (3.288 s)
          TEST tst-bdev-write.so         OK  (1.058 s)
          TEST tst-bsd-evh.so            OK  (1.071 s)
          TEST tst-bsd-kthread.so        OK  (1.234 s)
          TEST tst-bsd-taskqueue.so      OK  (1.062 s)
          TEST tst-bsd-tcp1.so           OK  (2.114 s)
          TEST tst-commands.so           OK  (1.141 s)
          TEST tst-condvar.so            OK  (1.776 s)
          TEST tst-dns-resolver.so       OK  (2.560 s)
          TEST tst-epoll.so              OK  (1.952 s)
          TEST tst-except.so             OK  (1.146 s)
          TEST tst-fpu.so                OK  (2.630 s)
          TEST tst-fs-link.so            OK  (1.051 s)
          TEST tst-fs-stress.so          OK  (1.027 s)
          TEST tst-fsx.so                OK  (1.067 s)
          TEST tst-hub.so                OK  (6.256 s)
          TEST tst-huge.so               OK  (2.199 s)
          TEST tst-kill.so               OK  (4.147 s)
          TEST tst-libc-locking.so       OK  (2.110 s)
          TEST tst-loadbalance.so        OK  (1.070 s)
          TEST tst-mmap-file.so          OK  (1.080 s)
          TEST tst-mmap.so               OK  (1.087 s)
          TEST tst-pipe.so               OK  (7.306 s)
          TEST tst-preempt.so            OK  (1.119 s)
          TEST tst-pthread.so            OK  (1.100 s)
          TEST tst-queue-mpsc.so         OK  (3.748 s)
          TEST tst-ramdisk.so            OK  (1.078 s)
          TEST tst-readdir.so            OK  (1.094 s)
          TEST tst-remove.so             OK  (1.030 s)
          TEST tst-rename.so             OK  (1.157 s)
          TEST tst-resolve.so            OK  (1.095 s)
          TEST tst-scheduler.so          OK  (1.087 s)
          TEST tst-sleep.so              OK  (3.083 s)
          TEST tst-solaris-taskq.so      OK  (1.061 s)
          TEST tst-stat.so               OK  (1.106 s)
          TEST tst-strerror_r.so         OK  (1.102 s)
          TEST tst-tcp-sendonly.so       OK  (2.014 s)
          TEST tst-tcp.so                OK  (1.080 s)
          TEST tst-threadcomplete.so     OK  (2.770 s)
          TEST tst-tracepoint.so         OK  (1.109 s)
          TEST tst-truncate.so           OK  (1.083 s)
          TEST tst-utimes.so             OK  (1.079 s)
          TEST tst-vblk.so               OK  (1.310 s)
          TEST tst-vfs.so                OK  (1.118 s)
          TEST tst-yield.so              OK  (1.992 s)
          TEST tst-zfs-mount.so          OK  (1.087 s)
        OK (58 tests run, 82.944 s)
      
      Reviewed-by: default avatarNadav Har'El <nyh@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      fbf2a946
    • Pekka Enberg's avatar
      test.py: Switch to blacklist · 637eb584
      Pekka Enberg authored
      
      Switch the whitelist to a blacklist to increase testing coverage.
      
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      637eb584
    • Pekka Enberg's avatar
      test.py: Make test runner silent by default · af70c145
      Pekka Enberg authored
      
      Make test.py silent by default and only print out OSv log on error or if
      the '--verbose' command line option is passed.
      
      Reviewed-by: default avatarTomasz Grabiec <tgrabiec@gmail.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      af70c145
  9. Dec 09, 2013
  10. Dec 08, 2013
  11. Dec 07, 2013
  12. Dec 06, 2013
  13. Dec 05, 2013
  14. Dec 04, 2013
    • Tomasz Grabiec's avatar
      modules: Use OSV_BASE variable in manifest for mgmt · ef3b7ffe
      Tomasz Grabiec authored
      
      This is a temporary measure before the module definition is moved to
      the mgmt repo.
      
      Signed-off-by: default avatarTomasz Grabiec <tgrabiec@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      ef3b7ffe
    • Tomasz Grabiec's avatar
      modules: Add support for resolving variables in manifest rules · e4728e1e
      Tomasz Grabiec authored
      
      Manifests should contain paths in the same file system in which the
      image is built. Currently manifests assumed that the module will be
      downloaded/copied into build/*/module/ and that the CWD is inside
      build/*. This is not always the case now that we have "direct-dir"
      module type, which is is not copied.
      
      Example use:
      
          /usr/x:${MODULE_DIR}/x
      
      This patch adds MODULE_DIR variable, which is replaced with the path
      to the module in local file system. Depending on the module type this
      can be either direct path or a path inside build/*/module/.
      
      Signed-off-by: default avatarTomasz Grabiec <tgrabiec@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      e4728e1e
    • Tomasz Grabiec's avatar
      modules: Add support for run configurations · ccc51b6f
      Tomasz Grabiec authored
      
          == Description of the problem ==
      
      Currently modules can only specify files which need to be
      copied. There is a need for a module to also declare ways it can be
      run, so that we can automatically prepare a runnable image. It
      should be easy to switch between run configurations.
      
      Currently it is enough for image configuration to happen at the
      time of image make process. In future this should be allowed
      on the already built image.
      
      We also need to be able to combine multiple modules in one
      image. For example in addition to the main application one might want
      to start various services like CLI, management API server, etc.
      
      Java apps should be able to specify JVM arguments, which must be
      passed to the JVM upon its creation, as well as regular run-java
      arguments (classpath, main classes, main arguments, etc.)
      
          == Solution ==
      
      This is not intended to be a permanent solution. The aim is to solve
      immediate need to have a fully modularized build in a scalable way.
      
      Every module has a new kind of file in its root directory which
      holds its configuration. The file is named 'module.py' and is
      a python script which uses osv's api for declaring run configurations.
      
      Using python as config language has several advantages:
       - more expresiveness, unlike json it allows for expression reuse
       - it's easier to extend the config language
       - we don't need as much parsing, gluing, error checking, error
         reporting code because we have it already
      
      There are currently two kinds of applications which can be declared:
      
         run(cmdline)  <- basic .so application
         run_java(jvm_args=[], classpath=[], args=[])  <- java applications
      
      Run configurations can be declared as simple module attributes
      which can be referenced from the image configuration file.
      
      Image configuration
      
      There is a new configuration file kind, which defines which modules
      and which run configurations should be included in the image. Files
      are located using path: ${OSV_BASE}/images/$(image-name).py
      
      Syntax:
      
        require(module) <-- declares that module should be included in the image
        		      and returns an object which allows to access module's
      		      attributes.
      
        run = []  <-- list of run configurations
      
      Example:
      
        _mgmt = require('mgmt')
        run = [ _mgmt.shell ]
      
      To use a particular image configuration run make like this:
      
        make image=fancy-tomcat
      
      The default configuration is named 'default'.
      
      This patch extracts mgmt into a module, which is embedded under
      ${OSV_BASE}/modules/mgmt
      
      The purpose of ${OSV_BASE}/config.json has been changed. It does not
      list modules which should be included anymore, image config file does
      that. It's a module look-up configuration which tells the build where
      to look for modules.
      
      Signed-off-by: default avatarTomasz Grabiec <tgrabiec@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      ccc51b6f
  15. Dec 03, 2013
  16. Dec 01, 2013
    • Pekka Enberg's avatar
      virtio: Add virtio-rng driver · fd1be662
      Pekka Enberg authored
      
      This adds the virtio-rng driver to OSv.  The implementation is simple:
      
        - Start a thread that keeps 64 byte of entropy cached in internal
          buffer.  Entropy is gathered from the host with virtio-rng.
      
        - Create device nodes for "/dev/random" and "/dev/urandom" that both
          use the same virtio_rng_read() hook.
      
        - Use the entropy buffer for virtio_rng_read().  If we exhaust the
          buffer, wake up the thread and wait for more entropy to appear.
      
      We eventually should move device node creation to separate
      drivers/random.c that multiplexes between different hardware RNG
      implementations.  However, as we only support virtio-rng, I'm leaving
      that to whomever implements support for the next RNG.
      
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      fd1be662
    • Tomasz Grabiec's avatar
      module.py: fix "make module" invocation · 59f7e5cf
      Tomasz Grabiec authored
      
      Shell command line should be passed as one argument. Additional
      arguments are passed to the shell itself.
      
      Reported-by: Nadav
      
      Signed-off-by: default avatarTomasz Grabiec <tgrabiec@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      59f7e5cf
  17. Nov 29, 2013
Loading