1. 09 Jan, 2004 4 commits
    • Shashi Guruprasad's avatar
      Changes to do auto re-swap of expts with simnodes when an nse on a simhost · 375f87c1
      Shashi Guruprasad authored
      (or more than one simhost) is unable to keep up with real-time. It includes
      changes to assign_wrapper to handle swap modify for simnodes, the simple
      algorithm in nseswap that bumps up the nodeweight of simnodes being hosted
      on a simhost that reports "can't keep up with real-time" (aka nse violation),
      ptopgen and sim.tcl to prefer nodes that already have the FBSD-NSE image.
      Also, changes to other files to send out NSESWAP event.
      One unrelated change: We now have per-swapin .top files and assign.log
      files along with .ptop files. This helps in debugging across multiple
      swapins since files remain in the form of
      <pid>-<eid>-<process_id>.{top,ptop} and assign-<pid>-<eid>-<process_id>.log
      Also useful for archiving.
    • Shashi Guruprasad's avatar
    • Shashi Guruprasad's avatar
      During a simparse, virt_agents and eventlist need to be cleaned up · 467cb150
      Shashi Guruprasad authored
      but not other virt_* tables. Thats coz the above two tables are not
      truly virtual since they contain the vnode to which the event should
      be sent to. My previous patch has been to use replace instead of
      insert. Unfortunately, the tables get messed up with the same agent
      having multiple entries where some of the entries were left behind
      from the previous swapin.
    • Mac Newbold's avatar
      Snapshot a couple of changes to the EXAMPLE machine. Don't know who · 85a98475
      Mac Newbold authored
      committed last, but this dump came out in a very different order, so the
      diff looks huge, even though it is only about 8 lines.
  2. 08 Jan, 2004 2 commits
  3. 07 Jan, 2004 6 commits
    • Leigh B. Stoller's avatar
      Fix minor bug I introduced a long time ago, that would show up only if · 58bb3ced
      Leigh B. Stoller authored
      you typed the URL directly instead of indirecting from the project
      page. No one did that till today.
    • Leigh B. Stoller's avatar
      A set of debugging changes to allow running multiple stateds. This is · cf61f6f3
      Leigh B. Stoller authored
      probably imperfect, but better then nothing. New option, "-t tag"
      allows you to specify an arbitrary tag to match against the stated_tag
      of the nodes table. The stated invocation will only operate on nodes
      that match the tag, ignoring all events for other nodes. If
      unspecified, stated will operate on all nodes with a NULL tag. This is
      setup up at the beginning of time (or during a reload) saving the
      per-node tag in the $nodes hash. Each time an event arrives, check the
      tag in the table, ignoring the event if not a match.
      On signaled reload() must also be careful to throw away timeouts from
      the queue (and be careful not to set up new timeouts for ignored
      nodes).  So, this allows you to set the tag for a node in the DB, and
      then HUP stated so that it reloads it tables. That node will now be
      ignored by that stated.
      Also made some changes to debug mode. In debug mode, don't worry about
      the pidfile or the lockfile or checking for other running stated
      (which causes my debug version to exit! right away). Also, added a new
      -l option to turn of syslog output and just send it all to stdout with
      the debug output. -l can be only be used with -d of course.
      So what can I do with all this:
      	update nodes set stated_tag='lbs' where node_id='pc5';
      	sudo kill -HUP `cat /var/run/stated.pid`
      	sudo stated -d -l -t lbs
      Which tells the main stated to ignore pc5. Then I run a debugging
      stated that operates only on pc5. Later when done:
      	update nodes set stated_tag=NULL where node_id='pc5';
      	sudo kill -HUP `cat /var/run/stated.pid`
      Which tells the main stated to operate on pc5 again.
    • Shashi Guruprasad's avatar
      Yet another bugfix + code to call a function that sends NSESWAP event · ac01c40b
      Shashi Guruprasad authored
      when it cannot keep up with real-time.
      bug: This affected encapsulated simulator packets that had to cross
      multiple physical nodes before arriving at the destination simulator
      traffic agent. This bug didnt affect live packets from traffic sources
      on real PCs.
      The NSESWAP event is now sent via the tevc command. The nse scheduler
      waits for the slop factor (diff between clock and event dispatch time
      that exceeds a threshold) to be crossed multiple times in a second
      before sending the NSESWAP event. Currently 5 times in 1 second.
      However, this needs more careful thought and will get modified later.
      When is it really necessary to declare that an nse is overloaded?
      i.e. what is the right slop factor? How many times can we tolerate
      that the slop factor is exceeded to ensure end-to-end performance
      is within a certain percentage of the expected?
    • Shashi Guruprasad's avatar
      Added a column nse_reswap_count to the experiments table to count the · d9130657
      Shashi Guruprasad authored
      number of times re-swapin has occured due to a simhost not being able
      to keep up with real-time.
    • Robert Ricci's avatar
      Fix dynamic pclasses, and make them the default for virtual nodes · c7e2d29e
      Robert Ricci authored
      One of the fixes changes the way in which we iterate through pclasses
      in find_pnode(). We used to treat the vector like a ring buffer, and
      start (randomly) someplace in the middle. This turns out to give some
      bad statistical properties when doing dynamic pclasses, since long
      chains of disabled pclasses will cause some pclasses to be selected
      more often. My old hack of just hopping around randomly in the
      disabled-pclass case was bad, because it's hard to tell when you've
      actually tried all the pclasses - so, we were getting false negatives
      where it was looking like there was no place available where we could
      map a vnode, which turned out to have worse effects than I had
      So, now, we make a list of all the indices and randomize the order,
      then just iterate through that list.
      We also now count the number of pclasses that are enabled at every
      temperature step, and adjust the neighborhood size to remove them.
      This makes dynamic pclasses quite a bit faster - it cuts the time
      by 30% - 50% for my test case.
      Cleaned up find_pnode() by removing some #ifdef's that we don't use,
      and probably will never want to again - this makes the function almost
    • Leigh B. Stoller's avatar
      Add slot to nodes table to facilitate better stated debugging. · d1a24c04
      Leigh B. Stoller authored
      Well, thats the hope. Not sure it will work, but might as well try.
  4. 06 Jan, 2004 7 commits
  5. 05 Jan, 2004 2 commits
    • Robert Ricci's avatar
      Fix two bugs: · 2eacd213
      Robert Ricci authored
      Fix a bug in enum parsing
      Fix typos that were keeping MySQL errors from coming through to the
      web interface.
    • Shashi Guruprasad's avatar
      nse would fail if there were only rlinks on a simnode. The problem wouldn't · 0807f0e5
      Shashi Guruprasad authored
      occur if a normal duplex link was created first. The reason is coz the
      creation of an rlink would also internally create an IPTap agent and when
      this agent was being attached to the node, classifier entries were being
      added to the port demultiplexer for all the IP addresses of the simnode.
      Unfortunately, if an rlink was created first before anything else, the
      IP address would be set only in the next Tcl statement causing nse to
      exit prematurely.
  6. 04 Jan, 2004 5 commits
  7. 31 Dec, 2003 6 commits
  8. 30 Dec, 2003 3 commits
  9. 29 Dec, 2003 5 commits