1. 05 Apr, 2011 1 commit
  2. 10 Mar, 2011 1 commit
    • Mike Hibler's avatar
      (Hopefully) temporary hack to detect null chars in node_ids in the nodes table. · 84ea58dc
      Mike Hibler authored
      This is completely reactive and based on no reasoning. A common case of the
      somebodys-been-messin-with-my-memory bug, is that we start seeing node_ids
      with null chars at the end. Here we will send a stack trace to testbed-ops
      if this happens (and we strip off the null). I am hoping to narrow down
      where this happens.
  3. 18 Feb, 2011 1 commit
  4. 16 Feb, 2011 2 commits
  5. 10 Dec, 2010 1 commit
  6. 07 Dec, 2010 1 commit
  7. 04 Nov, 2010 1 commit
  8. 15 Oct, 2010 1 commit
    • Mike Hibler's avatar
      Add autoconf variable to control use of SelfLoader. · da55641a
      Mike Hibler authored
      This is a fer-now hack.  Perl 5.10 has issues with bogus taint check
      triggers that appear quite often when using the SelfLoader.  Now if you put:
      In your defs-* file, it will disable the uses that cause problems.  Yes,
      the configure script should figure out if this is needed for you, but...
      another time.
  9. 14 Oct, 2010 2 commits
  10. 11 Oct, 2010 1 commit
    • Leigh B Stoller's avatar
      Work on an optimization to the perl code. Maybe you have noticed, but · 92f83e48
      Leigh B Stoller authored
      starting any one of our scripts can take a second or two. That time is
      spent including and compiling 10000s of thousands of lines of perl
      code, both from our libraries and from the perl libraries.
      Mostly this is just a maintenance thing; we just never thought about
      it much and we have a lot more code these days.
      So I have done two things.
      1) I have used SelfLoader() on some of our biggest perl modules.
         SelfLoader delays compilation until code is used. This is not as
         good as AutoLoader() though, and so I did it with just a few 
         modules (the biggest ones).
      2) Mostly I reorganized things:
        a) Split libdb into an EmulabConstants module and all the rest of
           the code, which is slowly getting phased out.
        b) Move little things around to avoid including libdb or Experiment
           (the biggest files).
        c) Change "use foo" in many places to a "require foo" in the
           function that actually uses that module. This was really a big
           win cause we have dozens of cases where we would include a
           module, but use it in only one place and typically not all.
      Most things are now starting up in 1/3 the time. I am hoping this will
      help to reduce the load spiking we see on boss, and also help with the
      upcoming Geni tutorial (which kill boss last time).
  11. 03 Sep, 2010 1 commit
  12. 22 Jul, 2010 1 commit
  13. 19 Jul, 2010 2 commits
  14. 23 Jun, 2010 1 commit
  15. 12 May, 2010 1 commit
  16. 10 May, 2010 1 commit
  17. 13 Apr, 2010 1 commit
  18. 25 Mar, 2010 1 commit
  19. 23 Feb, 2010 1 commit
  20. 23 Dec, 2009 1 commit
  21. 22 Dec, 2009 5 commits
  22. 21 Dec, 2009 1 commit
    • Leigh B. Stoller's avatar
      New approach to dealing with nodes that fail to boot is os_setup, and · 5cf6aad2
      Leigh B. Stoller authored
      land in hwdown.
      Currently, if a node fails to boot in os_setup and the node is running
      a system image, it is moved into hwdown. 99% of the time this is
      wasted work; the node did not fail for hardware reasons, but for some
      other reason that is transient.
      The new approach is to move the node into another holding experiment,
      emulab-ops/hwcheckup. The daemon watches that experiment, and nodes
      that land in it are freshly reloaded with the default image and
      rebooted. If the node reboots okay after reload, it is released back
      into the free pool. If it fails any part of the reload/reboot, it is
      officially moved into hwdown.
      Another possible use; if you have a suspect node, you go wiggle some
      hardware, and instead of releasing it into the free pool, you move it
      into hwcheckup, to see if it reloads/reboots. If not, it lands in
      hwdown again. Then you break out the hammer.
      Most of the changes in Node.pm, libdb.pm, and os_setup are
      organizational changes to make the code cleaner.
  23. 12 Oct, 2009 1 commit
    • David Johnson's avatar
      Add the ability to load images on virtnodes. For now, we just overload · c6c57bc9
      David Johnson authored
      the tb-set-node-os command with a second optional argument; if that is
      present, the first arg is the child OS and the second is the parent OS.
      We add some new features in ptopgen (OS-parentOSname-childOSname) based
      off a new table that maps which child OSes can run on which parents, and
      the right desires get added to match.  We setup the reloads in os_setup
      along with the parents.  Also needed a new opmode, RELOAD-PCVM, to handle
      all this.
      For now, users only have to specify that their images can run on pcvms, a
      special hack for which type the images can run on.  This makes sense in
      general since there is no point conditionalizing childOS loading on
      hardware type at the moment, but rather on parentOS.  Hopefully this stuff
      wiill mostly work on shared nodes too, although we'll have to be more
      aggressive on the client side garbage collecting old frisbee'd images for
      long-lived shared hosts.
      I only made these changes in libvtop, so assi...
  24. 24 Sep, 2009 1 commit
  25. 23 Jul, 2009 1 commit
  26. 15 Jul, 2009 1 commit
    • Leigh B. Stoller's avatar
      Add MaxShareCount() method to get the pcvm share count. · af2d65cb
      Leigh B. Stoller authored
      Add checks in CreateVnodes() to make sure that when creating
      a vnode on a node, it is either reserved to the experiment or
      is a shared experiment. This check is after the table lock to
      avoid races with the shared pool expanding and contracting.
  27. 09 Jul, 2009 1 commit
  28. 23 Jun, 2009 1 commit
  29. 11 Jun, 2009 1 commit
    • Leigh B. Stoller's avatar
      Add method to flush and reload the reservation info from the node · 39a76b80
      Leigh B. Stoller authored
      Method to find out if a physical node has any virtual nodes allocated
      to it.
      Method to release the bandwidth that a vnode on a shared host is
      using. This uses the vinterfaces table to find out what link is using,
      and then increments the remaining_bandwidth of the interface_state
      table. Tables are locked of course.
      Add method to allocate an rtabid, since like ssh ports on remote
      nodes, the rtabid is now a shared counter on a sharedhost.
      Hmm, a change to the TipServer() method that was for using console on
  30. 15 May, 2009 1 commit
  31. 01 May, 2009 1 commit
    • Leigh B. Stoller's avatar
      Add sharing_mode() method. · 8ca449ef
      Leigh B. Stoller authored
      Move the important part of os_select into this library as a method so
      that we can just do it from the mapper wrapper without having to call
      a shell script for each node in the topo (which on a 2000 node
      experiment, takes 45 minutes).
  32. 21 Apr, 2009 1 commit
  33. 17 Apr, 2009 1 commit