lkml.org 
[lkml]   [2008]   [Aug]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH RFC] nilfs2: continuous snapshotting file system
On Wed, Aug 20, 2008 at 11:22 AM, Pekka Enberg wrote:
>Hmm, this looks bit scary:
>
>> +/*
>> + * Low-level nilfs pages, page functions
>> + * Reviews should be made to adapt these to the common pagemap and buffer code.
>> + */
>> +static struct nilfs_pages {
>> + spinlock_t lru_lock;
>> + struct list_head active;
>> + struct list_head inactive;
>> + unsigned long nr_active;
>> + unsigned long nr_inactive;
>> + struct rw_semaphore shrink_sem;
>> +} nilfs_pages;
>> +
>> +/*
>> + * XXX per-cpu pagevecs may be able to reduce the overhead of list handlings
>> + *
>> + * static DEFINE_PER_CPU(struct pagevec, nilfs_lru_active) = { 0, };
>> + * static DEFINE_PER_CPU(struct pagevec, nilfs_lru_inactive) = { 0, };
>> + */
>> +
>> +void nilfs_pages_init(void)
>> +{
>> + INIT_LIST_HEAD(&nilfs_pages.active);
>> + INIT_LIST_HEAD(&nilfs_pages.inactive);
>> + spin_lock_init(&nilfs_pages.lru_lock);
>> + init_rwsem(&nilfs_pages.shrink_sem);
>> + nilfs_pages.nr_active = 0;
>> + nilfs_pages.nr_inactive = 0;
>> +}

Yeah, it's bothersome part.
I'd like to eliminate this peculiar code by using the standard mm/
functions or bd_inode, but still pending.

It's mainly used to maintain pages held by struct nilfs_btnode_cache,
which is a per-inode additional page cache used to store buffers of
B-tree.

Incidentally, for data blocks, mm/ page cache is used like other
file systems.

>(a) why does NILFS need this and (b) why aren't these patches against
>generic mm/*.c?

(a) I believe this is historical, but I will confirm the reason
why filemap was not adopted.

(b) Because I think it should be eliminated rather than integrated
into mm/ at this point.

Thank you for comment.

Regards,
Ryusuke Konishi


\
 
 \ /
  Last update: 2008-08-20 20:45    [W:0.114 / U:0.664 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site