Scout Module API

Notes

Chapter 5. Notes

What's New

Version 2.0.5:

  • Fixed a kernel Oops triggered by tasks exiting without the CPU scheduler being aware of it.

  • Fixed a bug where the system would lock up due to a process maintaining RT priority (used by SILK to control the Linux scheduler) after its slice was removed.

Version 2.0.4:

  • Fixed a bug triggered when assigning more shares than are available to a slice.

Version 2.0.3:

  • Fixed a race condition in the CPU scheduler that caused some processes to never be scheduled even though they are runnable.

  • Multiple slices can bind to the same port on different IP addresses. For example, one slice can bind to port 53 on the loopback address (127.0.0.1) while another binds to the external IP address.

  • Restored per-slice packet counts, in a single table in file /proc/scout/accounts/[slice id]/.

  • Added the ability to remove packet counts for an expired slice by writing the slice id to /proc/scout/accounts/remove

Version 2.0.2:

  • Removed per-slice packet counts in /proc/scout/accounts/[slice id]/*. A bug in SILK caused a kernel Oops when the system-wide limit on the number of /proc files was reached.

  • Fixed problem with assert() that causes a kernel Oops.

Version 2.0.1:

  • Bug fix to improve performance seen by users running large numbers of Java threads.

Version 2.0.0:

  • Proportional share CPU scheduling can provide resource isolation to individual slices. More information on the API can be found here. Note that individual users cannot assign or change shares. Rather, this is a low-level mechanism to support ongoing research in resource economies on PlanetLab.

  • Packets sent and received on a loopback socket are now counted per slice, in files:

    /proc/scout/accounts/slice_id/loopback_*

    Loopback traffic does not appear in the per-slice totals in /proc/scout/accounts/summary.

  • Fixed a bug where some TCP control packets were not assigned to the correct user.

  • Fixed a bug where state was not correctly freed on a bind() error, resulting in "pathAddKey: failed!" messages in the log.

  • Vserver root disallowed from writing to port and CPU reservation files in /proc/scout.