Skip to content
Snippets Groups Projects
  1. Jun 03, 2013
    • Guy Zana's avatar
      tools: moved tst-lsroute to the tools directory · 21d94018
      Guy Zana authored
      21d94018
    • Guy Zana's avatar
      tools: moved tst-ifconfig to a tools directory · 49643339
      Guy Zana authored
      49643339
    • Guy Zana's avatar
      tests: remove non-useful / obsolete tests · 68badb50
      Guy Zana authored
      these tests are a bit outdated, they change the system configuration and are
      not useful anymore, they were basically written to understand how stuff works.
      
      tst-bsd-netdriver.c - was made just to figure out the network driver model of
                            freebsd.
      tst-bsd-netisr.c    - same for isr layer, this tests runs over the ARP isr and
                            the system is badly wounded after it runs, it is useless today
                            and was written to figure out how netisr works.
      tst-virtionet.c     - testing network interface creation using virtio,
                            today the interface is created anyway.
      68badb50
  2. May 31, 2013
    • Guy Zana's avatar
      select: implement select() · c5f87a53
      Guy Zana authored
      add simple select() implementation on top of poll(), been tested by
      running netperf/iperf3 which is using select() for waiting for reads
      and setting timeouts.
      
      haven't been thourougly tested.
      c5f87a53
  3. May 30, 2013
    • Nadav Har'El's avatar
      Add pipe() · 8ef91f0d
      Nadav Har'El authored
      This patch adds pipe(). The pipes are built using the same FIFO implementation,
      "af_local_buffer", as used by the existing unix-domain socketpair
      implementation - while the socket-pair used two of these buffers, a pipe
      uses one.
      
      This implementation deviates from traditional POSIX pipe behavior in two
      ways that we should fix in followup-patches:
      
      1. SIGPIPE is not supported: A write to a pipe whose read end is closed
         will always return EPIPE, and not generate a SIGPIPE signal.
         Programs that rely on SIGPIPE will break, but SIGPIPE is completely out
         of fashion, and normally ignored.
      
      2. Unix-style "atomic writes" are not obeyed. A write(), even if smaller
         than PIPE_BUF (=4096 on Linux, whose ABI we're emulating), may partially
         succeed if the pipe's buffer is nearly full. Only a write() of a single
         byte is guaranteed to be atomic.
      
         We hope that Java doesn't rely on multi-byte write() atomicity
         (single-byte writes are enough for waking poll, for example), and users
         of Java's "Pipe" class definitely can't (as Java is not Posix-only),
         so we hope this will not cause problems. Fixing this issue (which is easy)
         is left as a TODO in the code.
      
      Additionally, this patch marks with a FIXME (but doesn't fix) a serious
      bug in the code's iovec handling, so writev() and readv() are expected
      not to work in this version of pipe() - and also on the existing socketpair.
      8ef91f0d
    • Christoph Hellwig's avatar
      build kernel ZFS code · f526e348
      Christoph Hellwig authored
      f526e348
  4. May 29, 2013
    • Nadav Har'El's avatar
      Add simple readdir() test · 1f6cbdd3
      Nadav Har'El authored
      Added a simple readdir() and readdir_r() test.
      The test is successful - it turns out readdir() had no bug, and the bug
      was in mkbootfs.py, but since I already wrote the test I guess might as
      well add it.
      1f6cbdd3
  5. May 28, 2013
    • Nadav Har'El's avatar
      Overhaul java.so command line · 31681180
      Nadav Har'El authored
      Java.so used to correctly support the "-jar" option, but did not fully
      allow the other "mode" of running Java: specifying a class name which is
      supposed to be searched in the class path. The biggest problem was that
      it only know to find class files, but not a class inside a jar in the class
      path - even if the classpath was correctly set.
      
      Unfortunately, fixing this C code was impossible, as JNI's FindClass()
      simply doesn't know to look in Jars.
      
      So this patch overhauls java.so: Java.so now only runs a fixed class,
      /java/RunJava.class. This class, in turn, is the one that parses the
      command line arguments, sets the class path, finds the jar or class to
      run, etc.. The code is now much easier to understand, and actually works
      as expected :-) It also fixes the bug we had with SpecJVM2008's "compiler.*"
      benchmarks, which forced us to tweak the class path manually.
      
      The new code supports running a class from the classpath, and also the
      "-classpath" option to set the class path. Like the "java" command line
      tool in Linux, this one also recognizes wildcard classpaths. For example,
      to run Jetty, whose code is in a dozen jars in /jetty, one can do:
      
              run.py -e "java.so -classpath /jetty/* org.eclipse.jetty.xml.XmlConfiguration jetty.xml"
      31681180
  6. May 27, 2013
  7. May 23, 2013
    • Avi Kivity's avatar
      tests: add context switch test · b7bdfa1d
      Avi Kivity authored
      Builds on osv an Linux.
      
      Tests context switch performance:
        - between threads co-located on the same cpu
        - between threads on different cpus
        - between threads placed by the scheduler policy
      b7bdfa1d
  8. May 22, 2013
    • Nadav Har'El's avatar
      Add yield() test · 3677386c
      Nadav Har'El authored
      The following test currently frequently crashes - with an abort or
      assertion failure.
      
      It's a very simple test, where 10 threads do an endless yield() loop.
      While yield() itself is not very important - and doesn't even implement
      the promise of sched_yield(2) to move the thread to the end of the run
      queue - this test failure may be the sign of a scheduler bug that needs to
      be fixed.
      3677386c
    • Avi Kivity's avatar
      build: define __OSV__ as an indication of an osv build · 2f74abe5
      Avi Kivity authored
      Allows cross-platform code where the APIs aren't the same.
      2f74abe5
    • Nadav Har'El's avatar
      This patch implements two functions: · 121d6a7e
      Nadav Har'El authored
       1. osv::poweroff(), which can turn off a physical machine or in our case
          tell QEMU to quit.
          The implementation uses ACPI, through the ACPICA library.
      
       2. osv::hang(), which ceases all computation on all cores, but does not
          turn off the machine. This can be useful if we want QEMU to remain
          alive for debugging, for example.
      
      The two functions are defined in the new <osv/power.hh> header files, and
      follow the new API guidelines we discussed today: They are C++-only, and
      are in the "osv" namespace.
      121d6a7e
    • Avi Kivity's avatar
      747ff478
  9. May 21, 2013
  10. May 20, 2013
    • Nadav Har'El's avatar
      Replace backtrace() implementation with one using libunwind · 53c7ade5
      Nadav Har'El authored
      The previous implementation of backtrace() required frame pointers.
      This meant it could only be used in the "debug" build, but worse,
      it also got confused by libstdc++ (which was built without frame pointers),
      leading to incorrect stack traces, and more rarely, crashes.
      
      This changes backtrace() to use libunwind instead, which works even
      without frame pointers. To satisfy the link dependencies, libgcc_eh.a
      needs to be linked *after* libunwind.a. Because we also need it linked
      *before* for other reasons, we end up with libgcc_eh.a twice on the
      linker's command line. The horror...
      53c7ade5
  11. May 18, 2013
  12. May 16, 2013
    • Nadav Har'El's avatar
      Default console to cooked mode, not raw mode. · cf74861e
      Nadav Har'El authored
      Until now, OSV's console defaulted to raw mode, to make the CLI
      happy. The problem is that on Linux, applications expect to be
      run in cooked mode, so if we ever run a simple application that
      tries to read user input, it can be confused.
      
      This patch makes OSV console default to cooked mode, and the
      CLI switch to raw mode before reading an input line - and reset
      to the default mode just before running the user's command.
      
      Unfortunately, we had to resort to adding a JNI class "Stty",
      since Java has no builtin support for the ioctls required for
      changing the tty settings.
      cf74861e
    • Christoph Hellwig's avatar
      wire up Solaris zmod · 3ea0794a
      Christoph Hellwig authored
      This is a modified version of zlib for use by ZFS.
      3ea0794a
    • Christoph Hellwig's avatar
      ff46e334
    • Christoph Hellwig's avatar
      bsd: add a get_cpuid() wrapper · e4b54ed4
      Christoph Hellwig authored
      This isn't actually a BSD native API as FreeBSD uses a per-cpu variable
      to store cpuids, but rather a replacement we can use.
      e4b54ed4
  13. May 13, 2013
    • Nadav Har'El's avatar
      Add test for concurrent VFS use · b59b12c7
      Nadav Har'El authored
      While trying to run the "compiler.compiler" benchmark from SPECjvm2008,
      I noticed we seem to have a problem with concurrent use of filesystem
      operations - which often hang (waiting on a vn_lock()) or cause
      assertion failures.
      
      This trivial test - which does stat() calls in 10 concurrent threads -
      reproduces this bug, and usually (but not always) crashes on one of
      several assertion failures, or hangs.
      b59b12c7
  14. May 12, 2013
  15. May 09, 2013
  16. May 08, 2013
Loading