[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 8 Aug 2017 08:48:06 -0700
From: Matthew Wilcox <willy@...radead.org>
To: Sergey Senozhatsky <sergey.senozhatsky.work@...il.com>
Cc: Minchan Kim <minchan@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
linux-kernel@...r.kernel.org, linux-mm@...ck.org,
Ross Zwisler <ross.zwisler@...ux.intel.com>,
"karam . lee" <karam.lee@....com>, seungho1.park@....com,
Christoph Hellwig <hch@....de>,
Dan Williams <dan.j.williams@...el.com>,
Dave Chinner <david@...morbit.com>, jack@...e.cz,
Jens Axboe <axboe@...nel.dk>,
Vishal Verma <vishal.l.verma@...el.com>,
linux-nvdimm@...ts.01.org, kernel-team <kernel-team@....com>,
Sergey Senozhatsky <sergey.senozhatsky@...il.com>
Subject: Re: [PATCH v1 5/6] zram: remove zram_rw_page
On Tue, Aug 08, 2017 at 05:23:50PM +0900, Sergey Senozhatsky wrote:
> Hello Minchan,
>
> On (08/08/17 17:13), Minchan Kim wrote:
> > Hi Sergey,
> >
> > On Tue, Aug 08, 2017 at 04:02:26PM +0900, Sergey Senozhatsky wrote:
> > > On (08/08/17 15:50), Minchan Kim wrote:
> > > > With on-stack-bio, rw_page interface doesn't provide a clear performance
> > > > benefit for zram and surely has a maintenance burden, so remove the
> > > > last user to remove rw_page completely.
> > >
> > > OK, never really liked it, I think we had that conversation before.
> > >
> > > as far as I remember, zram_rw_page() was the reason we had to do some
> > > tricks with init_lock to make lockdep happy. may be now we can "simplify"
> > > the things back.
> >
> > I cannot remember. Blame my brain. ;-)
>
> no worries. I didn't remember it clearly as well, hence the "may be" part.
>
> commit 08eee69fcf6baea543a2b4d2a2fcba0e61aa3160
> Author: Minchan Kim
>
> zram: remove init_lock in zram_make_request
>
> Admin could reset zram during I/O operation going on so we have used
> zram->init_lock as read-side lock in I/O path to prevent sudden zram
> meta freeing.
>
> However, the init_lock is really troublesome. We can't do call
> zram_meta_alloc under init_lock due to lockdep splat because
> zram_rw_page is one of the function under reclaim path and hold it as
> read_lock while other places in process context hold it as write_lock.
> So, we have used allocation out of the lock to avoid lockdep warn but
> it's not good for readability and fainally, I met another lockdep splat
> between init_lock and cpu_hotplug from kmem_cache_destroy during working
> zsmalloc compaction. :(
I don't think this patch is going to change anything with respect to the
use of init_lock. You're still going to be called in the reclaim path,
no longer through rw_page, but through the bio path instead.
Powered by blists - more mailing lists