Re: [PATCH, RFC] simplify writeback thread creation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2010-07-08 16:21, Artem Bityutskiy wrote:
> On Thu, 2010-07-08 at 14:20 +0200, Jens Axboe wrote:
>> On 2010-07-08 00:52, Christoph Hellwig wrote:
>>> Currently the per-bdi writeback thread is only created when there is
>>> dirty any dirty data on the BDI, and it lazy exists when it's been
>>> unused for some time.
>>>
>>> This leads to some very complex code, and the need to keep a forker
>>> thread around.
>>>
>>> This patch removes all this code and simply creates the thread as part
>>> of the bdi registration.  The downside is that we use up ressoures
>>> for possible unused devices, although that overhead is rather low,
>>> with 8k kernel stack size on x86 and few other, even smaller ressources.
>>>
>>> If the overhead is still considered too much I can look into starting
>>> the thread explicitly instead of as part of the bdi registration, but
>>> that will require a bit of code complexity, too.
>>
>> I'm pretty sure this will come back to bite us in the ass... If we are
>> going to change the lazy create/exit setup, I would greatly prefer
>> doing it at fs mount time (or something to that effect).
> 
> How about not starting any thread at all at the bdi registration time,
> and start a bdi thread only when something for this bdi becomes dirty
> (__mark_inode_dirty()) or a bdi work is queued (bdi_queue_work())? If we
> do this, then the tasks can also die by the 5min timeout, and will be
> forked again when dirt/bdi works arrives?
> 
> I guess it is a bit challenging to start a task in __mark_inode_dirty(),
> whis is supposed to be fast and non-sleeping, but we can just submit a
> work which will start the task.

That work would have to reside on the stack, and __mark_inode_dirty()
block on the thread startup. We can't always do that.

-- 
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux