Skip to content
Snippets Groups Projects
  1. May 26, 2013
  2. May 25, 2013
  3. May 24, 2013
  4. May 23, 2013
    • Nadav Har'El's avatar
      Removed redundant line · 9fcc397d
      Nadav Har'El authored
      Oops, forgot to commit the removal of this redundant line (thanks Dor
      for spotting it).
      9fcc397d
    • Nadav Har'El's avatar
      Update README's instructions on leak detection · 3d928e95
      Nadav Har'El authored
      README's instructions on leak detection were out-of-date in several points,
      so corrected it.
      3d928e95
    • Nadav Har'El's avatar
      Fix errors in serial console setup · 17b62089
      Nadav Har'El authored
      Fix two errors in IsaSerialConsole::reset(). The visible effect of these
      errors was a spurious \001 (^A) character which always appeared at the
      beginning of every OSV's run output.
      
      The two errors were:
      1. The DLAB bit on the LCR was incorrectly set (a spurious
         "& LCR_DIVISOR_LATCH_ACCESS_BIT" appeared in the code), causing the
         next outb(1) to go to the output register (and output a "1" character)
         instead of setting the baud rate.
      2. When writing the FCR register, the "ioport + " base forgotten.
      
      I took the opportunity and added better names for the constants,
      removed a couple of duplicate constants, and added comments.
      17b62089
    • Avi Kivity's avatar
      readme: document use-after-free detector · 4dd2bf8e
      Avi Kivity authored
      4dd2bf8e
    • Nadav Har'El's avatar
      Add "--noshutdown" option to loader · ad6a0466
      Nadav Har'El authored
      Added a "--noshutdown" option to loader which prevents a shutdown
      (and a poweroff), after main() returns.
      
      Note that this doesn't just replace poweroff() by halt() - with this
      option, the system *isn't* halted after main() returns, but rather
      continues as usual - possibly still running other threads that main()
      didn't wait for, running various system threads and services, and so on.
      ad6a0466
    • Avi Kivity's avatar
      readme: document profiling tool · da1a4f17
      Avi Kivity authored
      da1a4f17
    • Avi Kivity's avatar
      Merge branch 'ctxsw2' · f1a73958
      Avi Kivity authored
      Context switch tests and related optimizations.
      
      Conflicts:
      	bootfs.manifest
      	build.mak
      f1a73958
    • Avi Kivity's avatar
      kvmclock: drop unneeded memory barriers · 4078ffa5
      Avi Kivity authored
      kvmclock changes always come from the same cpu, so a real memory barrier
      is not needed.
      
      Replace with a compiler barrier.
      4078ffa5
    • Avi Kivity's avatar
      sched: tighten up cpu_set memory barriers · 0e70982b
      Avi Kivity authored
      0e70982b
    • Avi Kivity's avatar
      sched: improve cpu_set's atomic load-and-clear · 122c7d50
      Avi Kivity authored
      If there's nothing in the cpu_set (which is fairly common), there's no
      need to use an atomic operation.
      122c7d50
    • 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
    • Nadav Har'El's avatar
      Added missing extern "C" on pread64 · a3fc06f0
      Nadav Har'El authored
      Avi recently added extern "C" to pwrite64 (after the header change apparently
      removed this declaration from the header file). Also do this to pread64 -
      otherwise the "derby" benchmark (from SPECjvm2008) cannot run.
      a3fc06f0
  5. 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
      Power off the guest after it finishes its work. · a333d85d
      Nadav Har'El authored
      Call the new poweroff() function after the payload finishes running.
      Makes sense on a cloud (why would you want to pay the provider after
      your workload is done?) as well as for our benchmarking, where we want
      qemu to exit after running the benchmark.
      
      When the "--leak" option is used, instead of calling poweroff(), we
      call hang(), so that QEMU continues to run and we can attach the
      debugger to run "osv leak show".
      
      Note that before this patch, if the payload spawned threads, they could
      continue running after the payload's main() return. This is no longer
      the case - after main() returns, the entire virtual machine is shut down
      (or just hung). This is reasonable behavior, though: If the payload needs
      some threads to continue running, it should join() them before returning.
      The behavior on Linux (and Posix threads in general) is identical to our
      new behavior: When main() of a multithreaded program returns, all threads
      are killed.
      a333d85d
    • Nadav Har'El's avatar
      Use osv::hang() in abort() · 17a79e66
      Nadav Har'El authored
      abort() did the same thing as the new osv::hang(), so let's just use
      osv::hang(). Note that it's important that osv::hang() doesn't print
      anything - abort() does, but avoids infinite recursion that can happen
      when abort()'s printing itself causes a crash, and another abort().
      17a79e66
Loading