From: Nitin Gupta <ngupta@vflare.org>
To: Minchan Kim <minchan.kim@gmail.com>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>,
Hugh Dickins <hugh.dickins@tiscali.co.uk>,
Andrew Morton <akpm@linux-foundation.org>,
Greg KH <greg@kroah.com>,
Dan Magenheimer <dan.magenheimer@oracle.com>,
Rik van Riel <riel@redhat.com>, Avi Kivity <avi@redhat.com>,
Christoph Hellwig <hch@infradead.org>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
linux-mm <linux-mm@kvack.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 7/8] Use xvmalloc to store compressed chunks
Date: Mon, 19 Jul 2010 12:18:33 +0530 [thread overview]
Message-ID: <4C43F541.7070902@vflare.org> (raw)
In-Reply-To: <AANLkTinjJLaDVenwNcxgN7ycr97XLN_DVi1ckXBZetZm@mail.gmail.com>
On 07/19/2010 10:06 AM, Minchan Kim wrote:
> Hi Nitin,
>
> On Sun, Jul 18, 2010 at 5:21 PM, Nitin Gupta <ngupta@vflare.org> wrote:
>> On 07/18/2010 01:23 PM, Pekka Enberg wrote:
>>> Nitin Gupta wrote:
>>>> @@ -528,17 +581,32 @@ static int zcache_store_page(struct zcache_inode_rb *znode,
>>>> goto out;
>>>> }
>>>>
>>>> - dest_data = kmap_atomic(zpage, KM_USER0);
>>>> + local_irq_save(flags);
>>>
>>> Does xv_malloc() required interrupts to be disabled? If so, why doesn't the function do it by itself?
>>>
>>
>>
>> xvmalloc itself doesn't require disabling interrupts but zcache needs that since
>> otherwise, we can have deadlock between xvmalloc pool lock and mapping->tree_lock
>> which zcache_put_page() is called. OTOH, zram does not require this disabling of
>> interrupts. So, interrupts are disable separately for zcache case.
>
> cleancache_put_page always is called with spin_lock_irq.
> Couldn't we replace spin_lock_irq_save with spin_lock?
>
I was missing this point regarding cleancache_put(). So, we can now:
- take plain (non-irq) spin_lock in zcache_put_page()
- take non-irq rwlock in zcache_inode_create() which is called only by
zcache_put_page().
- Same applies to zcache_store_page(). So, we can also get rid of unnecessary
preempt_disable()/enable() in this function.
I will put up a comment for all these functions and make these changes.
Thanks,
Nitin
WARNING: multiple messages have this Message-ID (diff)
From: Nitin Gupta <ngupta@vflare.org>
To: Minchan Kim <minchan.kim@gmail.com>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>,
Hugh Dickins <hugh.dickins@tiscali.co.uk>,
Andrew Morton <akpm@linux-foundation.org>,
Greg KH <greg@kroah.com>,
Dan Magenheimer <dan.magenheimer@oracle.com>,
Rik van Riel <riel@redhat.com>, Avi Kivity <avi@redhat.com>,
Christoph Hellwig <hch@infradead.org>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
linux-mm <linux-mm@kvack.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 7/8] Use xvmalloc to store compressed chunks
Date: Mon, 19 Jul 2010 12:18:33 +0530 [thread overview]
Message-ID: <4C43F541.7070902@vflare.org> (raw)
In-Reply-To: <AANLkTinjJLaDVenwNcxgN7ycr97XLN_DVi1ckXBZetZm@mail.gmail.com>
On 07/19/2010 10:06 AM, Minchan Kim wrote:
> Hi Nitin,
>
> On Sun, Jul 18, 2010 at 5:21 PM, Nitin Gupta <ngupta@vflare.org> wrote:
>> On 07/18/2010 01:23 PM, Pekka Enberg wrote:
>>> Nitin Gupta wrote:
>>>> @@ -528,17 +581,32 @@ static int zcache_store_page(struct zcache_inode_rb *znode,
>>>> goto out;
>>>> }
>>>>
>>>> - dest_data = kmap_atomic(zpage, KM_USER0);
>>>> + local_irq_save(flags);
>>>
>>> Does xv_malloc() required interrupts to be disabled? If so, why doesn't the function do it by itself?
>>>
>>
>>
>> xvmalloc itself doesn't require disabling interrupts but zcache needs that since
>> otherwise, we can have deadlock between xvmalloc pool lock and mapping->tree_lock
>> which zcache_put_page() is called. OTOH, zram does not require this disabling of
>> interrupts. So, interrupts are disable separately for zcache case.
>
> cleancache_put_page always is called with spin_lock_irq.
> Couldn't we replace spin_lock_irq_save with spin_lock?
>
I was missing this point regarding cleancache_put(). So, we can now:
- take plain (non-irq) spin_lock in zcache_put_page()
- take non-irq rwlock in zcache_inode_create() which is called only by
zcache_put_page().
- Same applies to zcache_store_page(). So, we can also get rid of unnecessary
preempt_disable()/enable() in this function.
I will put up a comment for all these functions and make these changes.
Thanks,
Nitin
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2010-07-19 6:48 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-16 12:37 [PATCH 0/8] zcache: page cache compression support Nitin Gupta
2010-07-16 12:37 ` Nitin Gupta
2010-07-16 12:37 ` [PATCH 1/8] Allow sharing xvmalloc for zram and zcache Nitin Gupta
2010-07-16 12:37 ` Nitin Gupta
2010-07-17 18:10 ` Rik van Riel
2010-07-17 18:10 ` Rik van Riel
2010-07-16 12:37 ` [PATCH 2/8] Basic zcache functionality Nitin Gupta
2010-07-16 12:37 ` Nitin Gupta
2010-07-18 8:14 ` Pekka Enberg
2010-07-18 8:14 ` Pekka Enberg
2010-07-18 9:45 ` Nitin Gupta
2010-07-18 9:45 ` Nitin Gupta
2010-07-18 8:27 ` Pekka Enberg
2010-07-18 8:27 ` Pekka Enberg
2010-07-18 8:44 ` Eric Dumazet
2010-07-18 8:44 ` Eric Dumazet
2010-07-18 9:51 ` Nitin Gupta
2010-07-18 9:51 ` Nitin Gupta
2010-07-16 12:37 ` [PATCH 3/8] Create sysfs nodes and export basic statistics Nitin Gupta
2010-07-16 12:37 ` Nitin Gupta
2010-07-16 12:37 ` [PATCH 4/8] Shrink zcache based on memlimit Nitin Gupta
2010-07-16 12:37 ` Nitin Gupta
2010-07-20 23:03 ` Minchan Kim
2010-07-20 23:03 ` Minchan Kim
2010-07-21 4:52 ` Nitin Gupta
2010-07-21 4:52 ` Nitin Gupta
2010-07-21 11:32 ` Ed Tomlinson
2010-07-21 11:32 ` Ed Tomlinson
2010-07-23 19:23 ` Nitin Gupta
2010-07-23 19:23 ` Nitin Gupta
2010-07-16 12:37 ` [PATCH 5/8] Eliminate zero-filled pages Nitin Gupta
2010-07-16 12:37 ` Nitin Gupta
2010-07-16 12:37 ` [PATCH 6/8] Compress pages using LZO Nitin Gupta
2010-07-16 12:37 ` Nitin Gupta
2010-07-16 12:37 ` [PATCH 7/8] Use xvmalloc to store compressed chunks Nitin Gupta
2010-07-16 12:37 ` Nitin Gupta
2010-07-18 7:53 ` Pekka Enberg
2010-07-18 7:53 ` Pekka Enberg
2010-07-18 8:21 ` Nitin Gupta
2010-07-18 8:21 ` Nitin Gupta
2010-07-19 4:36 ` Minchan Kim
2010-07-19 4:36 ` Minchan Kim
2010-07-19 6:48 ` Nitin Gupta [this message]
2010-07-19 6:48 ` Nitin Gupta
2010-07-16 12:37 ` [PATCH 8/8] Document sysfs entries Nitin Gupta
2010-07-16 12:37 ` Nitin Gupta
2010-07-17 21:13 ` [PATCH 0/8] zcache: page cache compression support Ed Tomlinson
2010-07-17 21:13 ` Ed Tomlinson
2010-07-18 2:23 ` Nitin Gupta
2010-07-18 2:23 ` Nitin Gupta
2010-07-18 7:50 ` Pekka Enberg
2010-07-18 7:50 ` Pekka Enberg
2010-07-18 8:12 ` Nitin Gupta
2010-07-18 8:12 ` Nitin Gupta
2010-07-19 19:57 ` Dan Magenheimer
2010-07-19 19:57 ` Dan Magenheimer
2010-07-20 13:50 ` Nitin Gupta
2010-07-20 13:50 ` Nitin Gupta
2010-07-20 14:28 ` Dan Magenheimer
2010-07-20 14:28 ` Dan Magenheimer
2010-07-21 4:27 ` Nitin Gupta
2010-07-21 4:27 ` Nitin Gupta
2010-07-21 17:37 ` Dan Magenheimer
2010-07-21 17:37 ` Dan Magenheimer
2010-07-22 19:14 ` Greg KH
2010-07-22 19:14 ` Greg KH
2010-07-22 19:54 ` Dan Magenheimer
2010-07-22 19:54 ` Dan Magenheimer
2010-07-22 21:00 ` Greg KH
2010-07-22 21:00 ` Greg KH
2011-01-10 13:16 ` Kirill A. Shutemov
2011-01-10 13:16 ` Kirill A. Shutemov
2011-01-18 17:53 ` Dan Magenheimer
2011-01-18 17:53 ` Dan Magenheimer
2011-01-20 12:33 ` Nitin Gupta
2011-01-20 12:33 ` Nitin Gupta
2011-01-20 12:47 ` Christoph Hellwig
2011-01-20 12:47 ` Christoph Hellwig
2011-01-20 13:16 ` Pekka Enberg
2011-01-20 13:16 ` Pekka Enberg
2011-01-20 13:58 ` Nitin Gupta
2011-01-20 13:58 ` Nitin Gupta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C43F541.7070902@vflare.org \
--to=ngupta@vflare.org \
--cc=akpm@linux-foundation.org \
--cc=avi@redhat.com \
--cc=dan.magenheimer@oracle.com \
--cc=greg@kroah.com \
--cc=hch@infradead.org \
--cc=hugh.dickins@tiscali.co.uk \
--cc=konrad.wilk@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=minchan.kim@gmail.com \
--cc=penberg@cs.helsinki.fi \
--cc=riel@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.