From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Gao Xiang <gaoxiang25@huawei.com>
Cc: devel@driverdev.osuosl.org, linux-erofs@lists.ozlabs.org,
Chao Yu <yuchao0@huawei.com>, LKML <linux-kernel@vger.kernel.org>,
weidu.du@huawei.com, Miao Xie <miaoxie@huawei.com>
Subject: Re: [PATCH 02/10] staging: erofs: fix race when the managed cache is enabled
Date: Thu, 22 Nov 2018 12:06:42 +0100 [thread overview]
Message-ID: <20181122110642.GE5287@kroah.com> (raw)
In-Reply-To: <55aed87f-196e-9048-6aae-db09bc497664@huawei.com>
On Thu, Nov 22, 2018 at 06:42:52PM +0800, Gao Xiang wrote:
> Hi Greg,
>
> On 2018/11/22 18:17, Greg Kroah-Hartman wrote:
> > Any specific reason why you are not using the refcount.h api instead of
> > "doing it yourself" with atomic_inc/dec()?
> >
> > I'm not rejecting this, just curious.
>
> As I explained in the previous email,
> Re: [PATCH 04/10] staging: erofs: fix `erofs_workgroup_{try_to_freeze, unfreeze}'
>
> we need such a function when the value is >= 0, it plays as a refcount,
> but when the refcount == EROFS_LOCKED_MAGIC (<0, but not 0 as refcount.h),
> and actually there is no need to introduce a seperate spinlock_t because
> we don't actually care about its performance (rarely locked). and
> the corresponding struct is too large for now, we need to decrease its size.
Why do you need to decrease the size? How many of these structures are
created?
And you will care about the performance when a lock is being held, as is
evident by your logic to try to fix those issues in this patch series.
Using a "real" lock will solve all of that and keep you from having to
implement it all "by hand".
thanks,
greg k-h
next prev parent reply other threads:[~2018-11-22 11:06 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-20 14:34 [PATCH 00/10] staging: erofs: decompression stability enhancement Gao Xiang
2018-11-20 14:34 ` [PATCH 01/10] staging: erofs: fix `trace_erofs_readpage' position Gao Xiang
2018-11-22 10:19 ` Greg Kroah-Hartman
2018-11-22 10:49 ` Gao Xiang
2018-11-22 11:00 ` Greg Kroah-Hartman
2018-11-20 14:34 ` [PATCH 02/10] staging: erofs: fix race when the managed cache is enabled Gao Xiang
2018-11-22 10:17 ` Greg Kroah-Hartman
2018-11-22 10:42 ` Gao Xiang
2018-11-22 11:06 ` Greg Kroah-Hartman [this message]
2018-11-22 11:43 ` Gao Xiang
2018-11-22 12:26 ` Greg Kroah-Hartman
2018-11-22 12:41 ` Gao Xiang
2018-11-22 13:20 ` Greg Kroah-Hartman
2018-11-22 10:19 ` Greg Kroah-Hartman
2018-11-20 14:34 ` [PATCH 03/10] staging: erofs: atomic_cond_read_relaxed on ref-locked workgroup Gao Xiang
2018-11-22 10:20 ` Greg Kroah-Hartman
2018-11-20 14:34 ` [PATCH 04/10] staging: erofs: fix `erofs_workgroup_{try_to_freeze, unfreeze}' Gao Xiang
2018-11-22 10:21 ` Greg Kroah-Hartman
2018-11-22 10:29 ` Gao Xiang
2018-11-22 11:03 ` Greg Kroah-Hartman
2018-11-22 11:05 ` Greg Kroah-Hartman
2018-11-22 11:22 ` Gao Xiang
2018-11-20 14:34 ` [PATCH 05/10] staging: erofs: add a full barrier in erofs_workgroup_unfreeze Gao Xiang
2018-11-22 10:22 ` Greg Kroah-Hartman
2018-11-22 10:56 ` Gao Xiang
2018-11-22 18:50 ` Andrea Parri
2018-11-23 2:51 ` Gao Xiang
2018-11-23 9:51 ` Andrea Parri
2018-11-23 10:00 ` Gao Xiang
2018-11-20 14:34 ` [PATCH 06/10] staging: erofs: fix the definition of DBG_BUGON Gao Xiang
2018-11-20 14:34 ` [PATCH 07/10] staging: erofs: separate into init_once / always Gao Xiang
2018-11-22 10:23 ` Greg Kroah-Hartman
2018-11-22 10:34 ` Gao Xiang
2018-11-22 11:05 ` Greg Kroah-Hartman
2018-11-22 11:11 ` Gao Xiang
2018-11-22 11:26 ` Greg Kroah-Hartman
2018-11-22 11:37 ` Gao Xiang
2018-11-22 12:00 ` Gao Xiang
2018-11-22 13:01 ` Gao Xiang
2018-11-22 13:23 ` Greg Kroah-Hartman
2018-11-22 13:59 ` Gao Xiang
2018-11-20 14:34 ` [PATCH 08/10] staging: erofs: locked before registering for all new workgroups Gao Xiang
2018-11-22 10:24 ` Greg Kroah-Hartman
2018-11-22 10:35 ` Gao Xiang
2018-11-20 14:34 ` [PATCH 09/10] staging: erofs: decompress asynchronously if PG_readahead page at first Gao Xiang
2018-11-20 14:34 ` [PATCH 10/10] staging: erofs: rename strange variable names in z_erofs_vle_frontend Gao Xiang
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=20181122110642.GE5287@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=devel@driverdev.osuosl.org \
--cc=gaoxiang25@huawei.com \
--cc=linux-erofs@lists.ozlabs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miaoxie@huawei.com \
--cc=weidu.du@huawei.com \
--cc=yuchao0@huawei.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox