Messages in this thread | | | From | (Oliver Neukum) | Subject | Re: [2.4.17/18pre] VM and swap - it's really unusable | Date | Mon, 14 Jan 2002 21:22:32 +0100 |
| |
On Monday 14 January 2002 21:09, Robert Love wrote: > On Mon, 2002-01-14 at 13:04, Oliver Neukum wrote: > > It can happen if you sleep with a lock held. > > It can not happen at random points in the code. > > Thus there is a relation to preemption in kernel mode. > > > > To cure that problem tasks holding a lock would have to be given > > the highest priority of all tasks blocking on that lock. The semaphore > > code would get much more complex, even in the succesful code path, > > which would hurt a lot. > > No, this isn't needed. This same problem would occur without > preemption. Our semaphores now have locking rules such that we aren't > going to have blatant priority inversion like this (1 holds A needs B, 2 > holds B needs A).
No this is a good old deadlock. The problem with preemption and SCHED_FIFO is, that due to SCHED_FIFO you have no guarantee that any task will make any progress at all. Thus a semaphore could basically be held forever. That can happen without preemption only if you do something that might block.
Regards Oliver - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |