Skip to content
Snippets Groups Projects
  1. Feb 02, 2014
  2. Jan 31, 2014
  3. Jan 30, 2014
  4. Jan 29, 2014
    • Glauber Costa's avatar
      xen: fix identation of device files · aba1e536
      Glauber Costa authored
      
      Automatically:
       s/\t/    /g
       s/ +$//
      
      Manually: align constant definitions in block.h
      
      Signed-off-by: default avatarGlauber Costa <glommer@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      aba1e536
    • Nadav Har'El's avatar
      build: convenient shortcut for image with several modules · 0a863192
      Nadav Har'El authored
      
      A previous patch made it possible to run "make image=rogue" when a
      module rogue exists, without creating a images/rogue file.
      
      This patch expands this feature to be even more powerful:
      
      First, it allows choosing alternative command lines of a particular
      module. For example:
      
              make image=mgmt.shell
      
      Creates an image with the mgmt module (and its dependencies), and its
      command line will be mgmt's "shell" command line (i.e., run just the
      shell without the web server) instead of the "default" command line.
      
      Second, instead of specifying just one module to put in the image (plus its
      dependencies), we now allow giving a comma-separated list of unrelated
      modules, all of which are put in the image. For example:
      
              make image=memcached,netperf,tests
      
      The default command line of the image will be to run in parallel the
      "default" command line of each of the modules, if it exists. In the above
      example, the "tests" module has no command line labeled "default", so only
      those of memcached and netperf will run, but tests' files will still be
      included in the image.
      
      As above, a non-default command line of the module can also be chosen,
      for example:
      
              make image=memcached,mgmt.shell
      
      Will build an image with the memcached and mgmt modules, and will run
      in parallel memcached's "default" command line and mgmt's "shell"
      command line.
      
      If you want to include some module's files in the image, but not run
      its command line, use the special word "none". For example:
      
              make image=memcached,netperf.none
      
      will create an image with both memcached and netperf's files, but only
      run memcached's command line.
      
      Reviewed-by: default avatarTomasz Grabiec <tgrabiec@gmail.com>
      Signed-off-by: default avatarNadav Har'El <nyh@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      0a863192
    • Raphael S. Carvalho's avatar
      Re-enable eventhandler_deregister to vm_lowmem on arc_fini · a30c58f7
      Raphael S. Carvalho authored
      
      Commit 622d8bba re-enabled code to register vm_lowmem event,
      so the respective deregister should also be re-enabled.
      
      'For every OSv specific ifdef we remove in ZFS, God ressurects a kitten.'
      by Glommer.
      
      Signed-off-by: default avatarRaphael S. Carvalho <raphaelsc@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      a30c58f7
    • Tomasz Grabiec's avatar
      modules: support running more than one simple app · e9af222f
      Tomasz Grabiec authored
      
      Now since we have support for parallel launching in the command line
      we can implement support for it in the modules.
      
      Example (image config):
      
       run = [
         api.require('netperf').default,
         api.require('mgmt').shell
       ]
      
      Result:
      
      $ scripts/run.py
      OSv v0.05-132-g779307c
      Starting netserver with host 'IN(6)ADDR_ANY' port '12865' and family AF_INET
      
      [/]%
      
      Reviewed-by: default avatarNadav Har'El <nyh@cloudius-systems.com>
      Signed-off-by: default avatarTomasz Grabiec <tgrabiec@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      e9af222f
    • Glauber Costa's avatar
      blkfront: limit the size of the blkfront queue · de83169b
      Glauber Costa authored
      
      I have previously seen situations in which we had a lot more requests than we
      can handle, leading to an OOM. I've initially thought that this was because
      since there are only max_requests (usually 32) requests, new requests would
      overwrite the old bio queue, leading to some of the bio_done functions never
      being called.
      
      A closer look at the code was enough to show me wrong, since at the end of the
      ring consumption, we do iterate over old requests, processing them.
      
      The real problem then, is that we can generate memory a lot faster than we can
      process disk IO. To give an idea about order of magnitude, when a spike would
      happen in Xen block (the very problem I am tracking), causing processing to be
      interrupted by ~1s, 18k requests would accumulate in the queue. Since after
      draining the ring we can only requeue 32 new requests, the end result is that
      the 18k requests are never really processed. And at the new spike, 18k more
      sit, and so on.
      
      The solution is to adopt a strategy similar to virtio. We'll add a condition
      variable to the queue and block new requests while we are processing new ones.
      
      With this patch applied, misc-bdev-write.so runs to completion, but
      unfortunately still quite slow.
      
      Signed-off-by: default avatarGlauber Costa <glommer@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      de83169b
    • Glauber Costa's avatar
      blkfront: add the io_mutex to the C++ structure · 164034ee
      Glauber Costa authored
      
      Signed-off-by: default avatarGlauber Costa <glommer@cloudius-systems.com>
      [ penberg: Fix mixed formatting ]
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      164034ee
    • Glauber Costa's avatar
      blkfront: convert bio lists to C++ lists · 43dd2be3
      Glauber Costa authored
      
      They are going to work exactly the same. But with std::list instead
      
      Signed-off-by: default avatarGlauber Costa <glommer@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      43dd2be3
    • Glauber Costa's avatar
      blkfront: c++ify a bit more · 5403c4a1
      Glauber Costa authored
      
      This patch make some of the blkfront structures a bit more C++ friendly. I am
      creating a C++ version of the device private structure, and the goal here is to
      convert it slowly until all or most fields are inside it. At that point, I
      expect it to be easy to turn the functions into methods, etc. I am sorry, I
      would really like to do a mass translation here, but there are urgent bugs
      requiring my attention.
      
      Some notes:
       * I am converting blkfront only, and leaving netfront with the old code. It
         shouldn't be hard, I just deferred the risk of mistakes to a future
         oportunity.
       * you will notice that lines that are added by me are not following the
         original file's identation. This is deliberate. As much as we have in our
         guidelines to preserve the original ident, since we are slowly converting
         those files, our identation should eventually win. Think of it as a form
         of cultural domination. (and shouldn't bother viewers if tabs=4 spaces)
      
      Signed-off-by: default avatarGlauber Costa <glommer@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      5403c4a1
    • Nadav Har'El's avatar
      build system: no need for trivial images/* files · 0983aa9c
      Nadav Har'El authored
      
      Until now, whenever we added a new module in apps.git, e.g., apps/tomcat,
      we also had to add a file images/tomcat.py in osv.git, so that
      "make image=tomcat" would work.
      
      This patch makes it unnecessary to have a images/tomcat.py - when one does
      "make image=tomcat" and images/tomcat.py is absent, we try to build an
      image containing the single module tomcat and its dependencies (which
      is defined as usual in apps/modules.json and apps/*/module.py).
      
      Non-default images, which contain more than one unrelated modules (e.g., both
      mgmt and tests) can still be defined in files in images/).
      
      Reviewed-by: default avatarTomasz Grabiec <tgrabiec@gmail.com>
      Signed-off-by: default avatarNadav Har'El <nyh@cloudius-systems.com>
      Signed-off-by: default avatarPekka Enberg <penberg@cloudius-systems.com>
      0983aa9c
  5. Jan 28, 2014
  6. Jan 27, 2014
Loading