Re: [CFT][PATCH] new scheduler policy

From: Haoqiang Zheng
Date: Mon Sep 08 2003 - 10:11:52 EST


Alan Cox wrote:

You have to know the dependancies for the entire system, its nearly
impossible to do. Once you have the apps also waiting for each other and
for direct communications (eg via a database or a shared service) life
gets fun.

If we assume the priority of a remote process is the same as its local priority (local p->prio), I think something can still be done.
Let's make up an example first. Assume we have two machines A and B. P1 runs at machine A while P2,P3 run at machine B. P2 is the database server. In this case, I think the priority inversion problem can be solved iff:
1. P2 (the database server) handles requests according to the clients priority.
2. P2 inherits the priority of its current client (client with the highest priority).

For local apps one thing that has been suggested and some microkernels
have played with is a syscall that basically is "send this message and
donate the rest of my timeslice to.."



In the additional syscall based approach, the applications have to be re-written and the application developers have to know exactly where the timeslice should be denoted to. This is not usually feasible. On the other hand, everything is done automatically and transparently in the approach I suggested.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/