Skip to content
Snippets Groups Projects
  1. Jan 14, 2014
    • Nadav Har'El's avatar
      Move tests to a separate module · 4d0ed4c3
      Nadav Har'El authored
      
      Instead of always putting the tests into all images, this patch adds the
      option of putting them only in some of the images, by making them into a
      new module, modules/tests.
      
      The default image (images/default.py) continues to require the tests
      modules, so tests are included in the default image. Building with
      "make image=tests" makes an image with only the tests and nothing else.
      Other images (e.g., memcached, cassandra,...) currently do not require
      the tests module, so the generated image does will not include the tests.
      
      With this patch, "make image=memcached", for example, contains only the
      bare minimum needed for memcached, and the resulting qcow image is just
      18 MB, down from 69 MB when we included all the tests.
      
      Fixes #160
      
      Signed-off-by: default avatarNadav Har'El <nyh@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      4d0ed4c3
    • Pekka Enberg's avatar
      Revert "build: Force version.h generation" · 996fdfde
      Pekka Enberg authored
      
      This reverts commit d914ee0d because it breaks
      the build:
      
        I'm trying to compile the latest source code from git HEAD and I'm heaving
        the following error:
      
        make -r -C build/release/ all
        make[1]: Entering directory `/home/eduardo/workspace/osv/build/release'
        make[1]: *** No rule to make target
        `/home/eduardo/workspace/osv/build/release/gen/include/osv/version.h',
        needed by `/home/eduardo/workspace/osv/build.mk'.  Stop.
        make[1]: *** Waiting for unfinished jobs....
          GEN gen/include/bits/alltypes.h
        make[1]: Leaving directory `/home/eduardo/workspace/osv/build/release'
        make: *** [all] Error 2
      
      Reported-by: default avatarEduardo Piva <efpiva@gmail.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      996fdfde
    • Nadav Har'El's avatar
      Makefile: remove unnecessary -lstdc++ · 2f9a889e
      Nadav Har'El authored
      
      Since our kernel includes the entirety of libstdc++, there's no point of
      specifying "-lstdc++" while linking shared objects (like tests and cpio.so):
      This "linking" doesn't actually do any linking, it just specifies that the
      libstdc++ library is needed, but we already have it, needed or not.
      
      The list of objects-needing-libstdc++ was not only unnecessary, but probably
      also out of date, since we stopped bothering to update it after libstdc++
      was added into the kernel.
      
      So this patch removes these -lstdc++ lines.
      
      Signed-off-by: default avatarNadav Har'El <nyh@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      2f9a889e
  2. Jan 13, 2014
  3. Jan 10, 2014
  4. Jan 08, 2014
  5. Jan 07, 2014
  6. Jan 03, 2014
  7. Jan 02, 2014
  8. Dec 20, 2013
  9. Dec 19, 2013
  10. Dec 18, 2013
    • Tomasz Grabiec's avatar
      Make BSD code use hardware atomics · 2e0c30f4
      Tomasz Grabiec authored
      
      Currently we use implementation from
      bsd/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c
      which is using global mutex.
      
      This showes up on wait profile of ZFS writes:
      
      (...)
         \-- 469.96 us (0.00%, #250) arc_do_user_evicts
             \-- 469.96 us (0.00%, #250) dbuf_do_evict
                 |-- 355.93 us (0.00%, #154) dbuf_destroy
      (...)
                 |   \-- 76.60 us (0.00%, #53) zrl_add
                 |                             atomic_cas_32
                 |                             lockfree_mutex_lock
                 |                             sched::thread::wait()
                 |
                 |-- 66.14 us (0.00%, #56) dbuf_clear
                 |                         zrl_add
                 |                         atomic_cas_32
                 |                         lockfree_mutex_lock
                 |                         sched::thread::wait()
                 |
                 \-- 47.89 us (0.00%, #40) dbuf_rele_and_unlock
                                           atomic_add_64_nv
                                           lockfree_mutex_lock
                                           sched::thread::wait()
      
      This patch switches to amd64 implementation.
      
      Signed-off-by: default avatarTomasz Grabiec <tgrabiec@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      2e0c30f4
    • Asias He's avatar
      virtio-scsi: Initial support · c7e560f1
      Asias He authored
      
      This adds initial virtio-scsi support. We have no scsi layer in osv, in
      this implementation virtio-scsi works directly with the bio layer. It
      translates BIO_READ, BIO_WRITE and BIO_FLUSH to SCSI CMD.
      
      Signed-off-by: default avatarAsias He <asias@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      c7e560f1
  11. Dec 16, 2013
  12. Dec 15, 2013
  13. Dec 12, 2013
  14. Dec 11, 2013
    • Pekka Enberg's avatar
      x64: Make page fault handler arch specific · 43491705
      Pekka Enberg authored
      
      Simplify core/mmu.cc and make it more portable by moving the page fault
      handler to arch/x64/mmu.cc.  There's more arch specific code in
      core/mmu.cc that should be also moved.
      
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      43491705
    • Amnon Heiman's avatar
      random: Separate device node from virtio-rng · 2752a285
      Amnon Heiman authored
      
      Separate /dev/random the virtio-rng driver and register virtio-rng as a
      HW RNG entropy source.
      
      Signed-off-by: default avatarAmnon Heiman <amnon@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      2752a285
    • 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
  15. Dec 10, 2013
    • Nadav Har'El's avatar
      Fix wrong error codes in unlink(), rmdir() and readdir() · 86b5374f
      Nadav Har'El authored
      
      This patch fixes the error codes in four error cases:
      
      1. unlink() of a directory used to return EPERM (as in Posix), and now
         returns EISDIR (as in Linux).
      
      2. rmdir() of a non-empty directory used to return EEXIST (as in Posix)
         and now returns ENOTEMPTY (as in Linux).
      
      3. rmdir() of a regular file (non-directory) used to return EBADF
         and now returns ENOTDIR (as in Linux).
      
      4. readdir() of a regular file (non-directory) used to return EBADF
         and now returns ENOTDIR (as in Linux).
      
      This patch also adds a test, tst-remove.cc, for the various unlink() and
      rmdir() success and failure modes.
      
      Fixes #123.
      
      Signed-off-by: default avatarNadav Har'El <nyh@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      86b5374f
  16. Dec 09, 2013
  17. Dec 08, 2013
  18. Dec 06, 2013
  19. Dec 04, 2013
    • 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
    • Asias He's avatar
      build.mk: Rename usr.raw to bare.raw · 8197a553
      Asias He authored
      
      We have an intermediate bare.img now. Rename usr.raw to bare.raw to make the
      naming more consistent: bare.raw -> bare.img -> usr.img.
      
      Signed-off-by: default avatarAsias He <asias@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      8197a553
  20. Dec 03, 2013
Loading