Re: [PATCH] RT: Add priority-queuing and priority-inheritance to workqueue infrastructure

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Oleg Nesterov
Date: Monday, August 6, 2007 - 7:26 am

On 08/06, Gregory Haskins wrote:

Yes, perhaps we can make a separate inreface...


As I said, I do not understand what the problem exactly is, but surely
I undestand you didn't start this thread without any reason :)


This is true of course, and I didn't claim this.


Yes, as I said before when we have to wait, it makes sense to do
some tricks.


Great ;)


...workqueue has a thread for each CPU...


Immediately, A inserts the work on CPU 1.

But yes, I see what you mean, but again, again, unless A has to wait
for result etc, etc.


It can livelock if other higher-priority threads add works to this wq
repeteadly.


Sorry. This code is not very nice, but it is correct currently.

And I'll give you another example. Let's suppose the task does

	rt_mutex_lock(some_unrelated_lock);

	queue_work(WORK1);
	// WINDOW
	queue_work(WORK2);

I think it would be very natural to expect that these works will be
executed in order, do you agree?

Now suppose that the current's priority was boosted because another
higher-priority task tries to take rt_mutex in the WINDOW above?

Still, still I believe we should not re-order work_structs. If we do
this, we should add another, simplified and specialized interface imho.


Well, if we can use smp_call_() we don't need these complications?


Please cc me ;)

Oleg.

-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [PATCH] RT: Add priority-queuing and priority-inherita ..., Oleg Nesterov, (Mon Aug 6, 7:26 am)