1. 28 Feb, 2003 1 commit
    • Leigh B. Stoller's avatar
      Allow for the vnode in the virt_agents entries to be a "wildcard" · 494c0610
      Leigh B. Stoller authored
      (okay, a "*") in which case it means to not insert a specific node_id
      into the event, but rather leave it to the subscribers to specify
      what they need (in the case of the delay agent pid/eid/lan/lan-vnode.
      The new assign_wrapper inserts these entries like this. Old stuff will
      continue to work of course.
      494c0610
  2. 27 Feb, 2003 2 commits
    • Robert Ricci's avatar
      fccf4efd
    • Robert Ricci's avatar
      Add a blocking poll, event_poll_blocking(), to the event library. · b6cf32b8
      Robert Ricci authored
      Note the following: (from the API file)
        IMPORTANT: elvin uses timeouts internally. So, this function does
        NOT guarantee that when it returns, either an event has been
        recieved or your timeout has passed. This should not be much of
        a problem, but you have been warned!
      
      The above is not really fixable, without hacking elvin. And it may
      not be entirely fixable even then. In particular, the first call to
      event_poll_blocking() will always return at once, since there are
      leftover timers from connecting to elvind.
      b6cf32b8
  3. 26 Feb, 2003 1 commit
  4. 05 Feb, 2003 2 commits
  5. 30 Jan, 2003 1 commit
    • Shashi Guruprasad's avatar
      Fixed an error made by ISI during last year's rewriting of the RTSched code · cbe7fc8b
      Shashi Guruprasad authored
      that although appeared to be right was actually causing errors to be
      accumalated. This fixes the high error rates in the bandwidth and loss rate
      numbers reported in OSDI. There are also code optimizations after profiling
      it that reduces the RTSched overhead.
      
      Another source of error was send/consume/request/reply which used to be
      given a very rough estimate of the CPU speed (600 instead of 601.37 Mhz for
      example). The latter comes from the boot up calibration in FreeBSD which
      is supposed to be accurate up to 10 microsecs on a 486.  Using
      600 instead of 601.37 causes an error of 0.22 % in the measurement. That is
      about 1.3 ms for an RTT of 600 ms. This error is worse when send/consume
      are used to calculate throughputs. The longer the period of measurement,
      the worse it becomes.  I have committed changes in them as well. Defining
      the macro CPU_SPEED_IN_KHZ will get you kernels that take CPU_SPEED
      parameters in Khz instead of Mhz. So, you can specify 851940 instead of
      850 for a pc850.
      
      boss:/tftpboot/x86/{send,consume,request,reply}.cpuinkhz lets you specify
      CPU_SPEED in Khz
      cbe7fc8b
  6. 29 Jan, 2003 3 commits
  7. 07 Jan, 2003 3 commits
  8. 06 Jan, 2003 3 commits
  9. 31 Dec, 2002 1 commit
  10. 20 Dec, 2002 1 commit
  11. 18 Dec, 2002 2 commits
  12. 16 Dec, 2002 1 commit
    • Mac Newbold's avatar
      Fix the 1-event-per-second limitations. Poll until I don't get more · a77a1559
      Mac Newbold authored
      events. This may delay handling of other stuff that happens in my main
      loop, but not by too much. To prevent skew, everything (including reload
      frequency) is done strictly by seconds elapsed, not by iterations or
      anything.
      
      I found that even polling for multiple events without sleeping, I could
      only handle a little over 1 per second when I was calling inuse/statetime
      for additional info on every event. Even though this only happens in the
      worst case (every event is wrong), it won't do. So I took that out. I'll
      probably end up adding a faster lookup of the info I need (mostly
      reservation, and what osid it thinks it is running). That change took it
      up to at least 4 per second (as fast as I could send them manually), more
      than 4x our previous performance. So we should be able to keep up now.
      
      Also, add the support for "announcements" to testbed ops when I die and
      such. (Been in a few days, but this is the first commit of it)
      a77a1559
  13. 09 Dec, 2002 1 commit
  14. 03 Dec, 2002 1 commit
  15. 22 Nov, 2002 1 commit
  16. 15 Nov, 2002 1 commit
  17. 14 Nov, 2002 1 commit
    • Mac Newbold's avatar
      Lots of changes. · 349db7bf
      Mac Newbold authored
      First, fix up the isup generation code. When a node/OS doesn't send its
      own isups, but is pingable, we need to fork and ping it, and send ISUP
      when it pings. The code was there, but was broken. This fixes it. The one
      time that it may cause errant messages is in modes other than MINIMAL.
      When we get BOOTING, we check if it needs isup generated. If we have to
      ping it, when it pings we send ISUP. This means that if we are really in
      NORMAL mode, we might send ISUP before the node sends REBOOTED (or TBSETUP
      in NORMALv1), and it would look funny. But that case will be really rare,
      since everything that sends REBOOTED or TBSETUP has no reason not to send
      ISUP itself.
      
      Second, after mailbombing myself a couple of times, Kirk and I decided I'd
      better put some throttling in the notification code that stated uses. So
      now it throttles itself and digests the messages if they're sent too close
      together. The first message it gets will get sent immediately. If the next
      one is long enough after that, it sends it immediately too. If a message
      comes too soon after sending one, we queue it up, and send it later
      after enough time has passed. Currently it is set to wait 5 seconds
      between messages, so it will send up to 12 per second, and wait no more
      than 5 seconds before sending a message that is queued up.
      
      (Something similar to this may be a nice thing in the rest of our stuff,
      but it was made a lot easier by the fact that stated already had a polling
      loop in it. Without that, you'd have to use alarms or some other weird
      thing, which would be painful.)
      349db7bf
  18. 09 Nov, 2002 1 commit
    • Shashi Guruprasad's avatar
      Updated nse.patch,tbnexthop.{cc,h} with all the recent nse changes. · fc580b5a
      Shashi Guruprasad authored
      tbnexthop.{cc,h} now contains setsockopts to install "ipfw fwd" rules.
      
      <netinet/ip_fw.h> has changed from FBSD 4.3 to 4.5 . Because boss has 4.3,
      compiling ipfw code on boss and running it on an experimental
      node doesn't work. Therefore, I now have a cvs checked in local copy of
      the 4.5 version of the file.
      
      nseinput.tcl now finds the CPU cycle speed from /var/run/dmesg.boot and
      passes the info to nse's RT scheduler which keeps track of real time
      using the TSC. The same info can be obtained by PERFMON ioctls but the
      kernel boot time measurement of the cpu cycle speed is more accurate than
      what perfmon can report
      fc580b5a
  19. 08 Nov, 2002 3 commits
  20. 06 Nov, 2002 1 commit
    • Shashi Guruprasad's avatar
      NSE related changes: · 05bc3bd4
      Shashi Guruprasad authored
        - Fixes the routing problem
        - A new type "sim" has been created but not in the DB. node_types and
          nodes remain unchanged. This will change after we figure out how
          to represent in the DB the local multiple virtnodes in one phynode case
          The frontend tb_compat.tcl adds the sim type and ptopgen associates
          a huge number of sim nodes to all local PCs.
        - All simulated nodes go into one pc untill I finish coding the distributed
          nse case. Also, sim nodes go through assign but with an explicit
          "fix-node" directive in the top file. A random free pc is chosen using
          the avail script in assign_wrapper. If we don't fix node it, assign
          maps sim nodes to multiple phy nodes even when a valid all to one
          mapping is possible.
        - Syntax for nse:
      
         $ns make-simulated {
      
             set simnode1 [$ns node]
             set simnode2 [$ns node]
      
         }
         ...
      
         The old syntax
      
         set nsenode [$ns nsenode]
         $nsenode make-simulated {
         }
      
         is deprecated
      
        - All 38 frontend ...
      05bc3bd4
  21. 05 Nov, 2002 1 commit
  22. 04 Nov, 2002 1 commit
    • Mac Newbold's avatar
      Bunch o' changes. · e9dcf743
      Mac Newbold authored
       - Better pidfile handling, do proper locking, etc.
       - Change die() to fatal(), so it sends mail and goes to syslog instead of
         to /dev/null
       - Fix RESET to not reset pxe_boot_path for Mike.
       - Fix sendmail call to have proper to and from addrs
      e9dcf743
  23. 01 Nov, 2002 1 commit
  24. 31 Oct, 2002 1 commit
  25. 22 Oct, 2002 2 commits
  26. 18 Oct, 2002 1 commit
    • Mac Newbold's avatar
      Merge the newstated branch with the main tree. · 5c961517
      Mac Newbold authored
      Changes to watch out for:
      
      - db calls that change boot info in nodes table are now calls to os_select
      
      - whenever you want to change a node's pxe boot info, or def or next boot
      osids or paths, use os_select.
      
      - when you need to wait for a node to reach some point in the boot process
      (like ISUP), check the state in the database using the lib calls
      
      - Proxydhcp now sends a BOOTING state for each node that it talks to.
      
      - OSs that don't send ISUP will have one generated for them by stated
      either when they ping (if they support ping) or immediately after they get
      to BOOTING.
      
      - States now have timeouts. Actions aren't currently carried out, but they
      will be soon. If you notice problems here, let me know... we're still
      tuning it. (Before all timeouts were set to "none" in the db)
      
      One temporary change:
      
      - While I make our new free node manager daemon (freed), all nodes are
      forced into reloading when they're nfreed and the calls to reset the os
      are disabled (that will move into freed).
      5c961517
  27. 07 Oct, 2002 1 commit
  28. 06 Oct, 2002 1 commit