2010-11-27 16:02:59

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCHSET] backing-dev: replace private thread pool with workqueue

On 09/07/2010 02:36 PM, Tejun Heo wrote:
> Hello,
>
> On 09/07/2010 02:29 PM, Jens Axboe wrote:
>> I agree (with both of you). It's definitely too early to convert it
>> over, but if we can in the longer run, it never hurts to get rid of
>> code. The writeback threads aren't a typical threadpool, in that the
>> threads stick around and only go away when idle for too long. If they
>> stick around, you get the same process hammering IO at your device. So
>> converting that over to the generic cwq may or may not be at a
>> performance cost, it'll definitely have to be tested.
>
> One thing to try is removing WQ_UNBOUND and see how it affects the
> performance. I put WQ_UNBOUND there mainly to keep the behavior about
> the same as the current code but given what it does I think it would
> probably fare better with workers bound to CPUs.

cmwq now seems pretty solid. There hasn't been any noticeable failure
yet. I think we can move on with this conversion now. Shall I
refresh the patchset against the current block tree?

Thanks.

--
tejun


2010-11-27 18:50:37

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCHSET] backing-dev: replace private thread pool with workqueue

On 2010-11-27 17:02, Tejun Heo wrote:
> On 09/07/2010 02:36 PM, Tejun Heo wrote:
>> Hello,
>>
>> On 09/07/2010 02:29 PM, Jens Axboe wrote:
>>> I agree (with both of you). It's definitely too early to convert it
>>> over, but if we can in the longer run, it never hurts to get rid of
>>> code. The writeback threads aren't a typical threadpool, in that the
>>> threads stick around and only go away when idle for too long. If they
>>> stick around, you get the same process hammering IO at your device. So
>>> converting that over to the generic cwq may or may not be at a
>>> performance cost, it'll definitely have to be tested.
>>
>> One thing to try is removing WQ_UNBOUND and see how it affects the
>> performance. I put WQ_UNBOUND there mainly to keep the behavior about
>> the same as the current code but given what it does I think it would
>> probably fare better with workers bound to CPUs.
>
> cmwq now seems pretty solid. There hasn't been any noticeable failure
> yet. I think we can move on with this conversion now. Shall I
> refresh the patchset against the current block tree?

I'd still prefer to wait a while. The writeback code is still very much
a moving target, so I don't think mixing in a different work queue
scheme is likely going to do anyone any good at this point in time.

--
Jens Axboe

2010-11-27 20:30:15

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCHSET] backing-dev: replace private thread pool with workqueue

Hello,

On 11/27/2010 07:50 PM, Jens Axboe wrote:
>> cmwq now seems pretty solid. There hasn't been any noticeable failure
>> yet. I think we can move on with this conversion now. Shall I
>> refresh the patchset against the current block tree?
>
> I'd still prefer to wait a while. The writeback code is still very much
> a moving target, so I don't think mixing in a different work queue
> scheme is likely going to do anyone any good at this point in time.

Alright, will ping again after the next merge window.

Thanks.

--
tejun