Messages in this thread | | | Date | Wed, 29 Oct 2008 01:53:20 -0700 | From | "Naveen Gupta" <> | Subject | Re: [PATCH] Priorities in Anticipatory I/O scheduler |
| |
2008/10/28 Aaron Carroll <aaronc@gelato.unsw.edu.au>: > Naveen Gupta wrote: >> 2008/10/28 Aaron Carroll <aaronc@gelato.unsw.edu.au>: >>> Naveen Gupta wrote: >>>> As I said earlier the organization of the AS levels is flat, so we >>>> could use any class (RT, BE, LATENCY) and fold the remaining ones. The >>>> other way which you would probably like is to increase number of >>>> levels and map different classes so that they are not folded. >>> As I said in my reply to the initial posting of this, I think there are >>> only two sensible ways of handling this: >>> >>> 1) Maintain the full number of I/O priorities (1 IDLE, 8 BE, 8 RT); >> >> But then we are assuming that we are providing different quality of >> service according to classes. > > Right. The ideal solution is a scheduler-independent definition of > RT (Jens?) which you can apply here. However, it seems to me that you > want to basically ignore RT and IDLE. If you're going to do that, at > least implement sane alternate behaviour. > > This solution applies the the principle of least surprise; RT requests > always have higher priority than BE requests, and within the class, > higher level means higher priority. In your implementation, BE 0 == RT x > and IDLE == BE 7. This is surprising behaviour.
Aaron, I took care of these in reply to Dave's email.
> >>> 2) Collapse the levels and only deal with the classes; >> >> I am not sure if this is meaningful. When all we have is different >> levels of BE, it wouldn't make sense to call them different classes. > > It's not meaningful as it stands. This difference here is that you > at least maintain the ordering of the classes with respect to priority.
I am not sure that giving one level to each class would be an acceptable solution.
> > > -- Aaron > > >
| |