[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <87h7xdsom1.fsf@yhuang-dev.intel.com>
Date: Tue, 21 Apr 2020 07:51:02 +0800
From: "Huang\, Ying" <ying.huang@...el.com>
To: Wei Yang <richard.weiyang@...il.com>
Cc: <akpm@...ux-foundation.org>, <linux-mm@...ck.org>,
<linux-kernel@...r.kernel.org>, <tim.c.chen@...ux.intel.com>
Subject: Re: [PATCH 3/4] mm/swapfile.c: compare tmp and max after trying to iterate on swap_map
Wei Yang <richard.weiyang@...il.com> writes:
> On Mon, Apr 20, 2020 at 09:03:43AM +0800, Huang, Ying wrote:
>>Wei Yang <richard.weiyang@...il.com> writes:
>>
>>> There are two duplicate code to handle the case when there is no
>>> available swap entry. Just let the code go through and do the check at
>>> second place.
>>>
>>> No functional change is expected.
>>>
>>> Signed-off-by: Wei Yang <richard.weiyang@...il.com>
>>> ---
>>> mm/swapfile.c | 4 ----
>>> 1 file changed, 4 deletions(-)
>>>
>>> diff --git a/mm/swapfile.c b/mm/swapfile.c
>>> index 3aae700f9931..07b0bc095411 100644
>>> --- a/mm/swapfile.c
>>> +++ b/mm/swapfile.c
>>> @@ -629,10 +629,6 @@ static bool scan_swap_map_try_ssd_cluster(struct swap_info_struct *si,
>>> tmp = cluster->next;
>>> max = min_t(unsigned long, si->max,
>>> (cluster_next(&cluster->index) + 1) * SWAPFILE_CLUSTER);
>>> - if (tmp >= max) {
>>> - cluster_set_null(&cluster->index);
>>> - goto new_cluster;
>>> - }
>>
>>The code is to avoid to acquire the cluster lock unnecessarily. So I think
>>we should keep this.
>>
>
> If you really want to avoid the lock, my suggestion is to add:
>
> if (tmp < max) {
> ci = lock_cluster(si, tmp);
> while (tmp < max) {
> ...
> }
> unlock_cluster(ci);
> }
>
> Instead of do the similar thing twice.
This is a coding style problem. The original code is common to avoid
too many nested code block. But in this case, I think both works.
Best Regards,
Huang, Ying
>>Best Regards,
>>Huang, Ying
>>
>>> ci = lock_cluster(si, tmp);
>>> while (tmp < max) {
>>> if (!si->swap_map[tmp])
Powered by blists - more mailing lists