A couple of questions Jonathan Shapiro (shap@cobra.cis.upenn.edu)
Sat, 19 Aug 1995 21:07:41 -0400

In thinking through the EROS implementation, I've come across two detail questions. I'ld appreciate reactions.

In the implementation I have in mind, there appears to be a potential conflict between the aging policy and the migrator. Specifically, one would like the migrator to have some reasonable assurance of timely completion, which imposes two requirements:

  1. If the migrator is running, it must be able to allocate core frames for copying purposes.
  2. If the migrator is running, it must be able to allocate any I/O descriptor data structures necessary to perform writes.

If we impose a known-deadline constraint, it may be necessary to reserve frames and data structures.

The problem is that a system under heavy I/O load will make heavy use of the ageing mechanism, which will in turn schedule write I/O's, which compete with the migrator's ability to schedule write I/O.

The best solution I have thought of to date is rather ad hoc - when the migrator is running, a low water mark is maintained for both I/O request blocks and free frames. Only the migrator can allocate these below the water mark.

Is there a clean solution to this?