Re: [PATCHv6 00/15] kill unnecessary bdi wakeups + cleanups

From: Artem Bityutskiy
Date: Thu Aug 05 2010 - 05:37:36 EST


On Wed, 2010-08-04 at 13:34 +0200, Jens Axboe wrote:
> On 2010-08-03 14:47, Jens Axboe wrote:
> > On 2010-08-03 14:37, Artem Bityutskiy wrote:
> >> On Tue, 2010-08-03 at 14:27 +0200, Jens Axboe wrote:
> >>> On 2010-07-25 13:29, Artem Bityutskiy wrote:
> >>>> Hi,
> >>>>
> >>>> here is v6 of the patch series which clean-ups bdi threads and substantially
> >>>> lessens amount of unnecessary kernel wake-ups, which is very important on
> >>>> battery-powered devices.
> >>>>
> >>>> This patch-set is also available at:
> >>>> git://git.infradead.org/users/dedekind/misc-2.6.git flushers_v6
> >>>
> >>> Thanks Artem, for sticking around long enough to get this into
> >>> shape. I have finally merged it.
> >>
> >> Thanks, but
> >>
> >>>> 1. Use 'spin_lock_bh' for the 'bdi->wb_lock' (changed patch N12)
> >>>
> >>> I'd rather not, question is how to avoid it. Either just wakeup the
> >>> default thread, or punt the lock-and-check bdi->wb.task to a thread.
> >>
> >> you merged this change, do you want me to send a separate patch which
> >> undo the 'spin_lock_bh' change? I'll think about how to avoid this and
> >> come back.
> >
> > Yes, it's not a huge thing, but it would be nice to get rid of. So I
> > figured it was better to merge it and not have you respin the series yet
> > again.
>
> There is a spinlock bug in the current code, you nest _bh locks on lock
> but not always on unlock. I fixed it up as per the below:

Right, sorry, to be frank I never used _bh spinlock versions before, and
just did not know the nesting trick. Thanks for fixing.

Also, I'm still not sure whether I should get rid of this _bh or not. I
wrote my thoughts to you in another e-mail.

--
Best Regards,
Artem Bityutskiy (ÐÑÑÑÐ ÐÐÑÑÑÐÐÐ)

--
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/