Messages in this thread | | | Date | Wed, 25 Nov 2009 07:52:53 +0100 | From | Nick Piggin <> | Subject | Re: [rfc] "fair" rw spinlocks |
| |
On Tue, Nov 24, 2009 at 12:19:59PM -0800, David Miller wrote: > From: Nick Piggin <npiggin@suse.de> > Date: Mon, 23 Nov 2009 15:54:09 +0100 > > > This was basically reproduced by several cores executing wait > > with WNOHANG. > > > > Of course it would always be nice to improve locking so > > contention isn't an issue, but so long as we have rwlocks, we > > could possibly get into a situation where starvation is > > triggered *somehow*. So I'd really like to fix this. > > > > This particular starvation on tasklist lock I guess is a local > > DoS vulnerability even if the workload is not particularly > > realistic. > > > > Anyway, I don't have a patch yet. I'm sure it can be done > > without extra atomics in fastpaths. Comments? > > I think nobody would notice if you changed tasklist_lock into > a spinlock_t, and this would solve the DoS because at least on > x86 you'd end up with the ticket spinlocks. > > And this is a repeating theme every time the topic of rwlocks come up. > All uses should just simply be converted gradually to some other > locking mechanism over time, the cases causing problems taking > priority.
For tasklist_lock, I'm not so sure. It gets taken fairly often for read, and has some quite long critical sections. I think we might start running into contention on lock hold times.
For other locks, I agree. In fact there are a couple of them in the vfs which I think should be just spinlocks. I'll send some patches for those.
| |