add SetPageReclaim before __swap_writepage so that page can be moved to the
tail of the inactive list, which can avoid unnecessary page scanning as this
page was reclaimed by swap subsystem before.
Signed-off-by: Weijie Yang <[email protected]>
---
mm/zswap.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/mm/zswap.c b/mm/zswap.c
index 1be7b90..cc40e6a 100644
--- a/mm/zswap.c
+++ b/mm/zswap.c
@@ -556,6 +556,9 @@ static int zswap_writeback_entry(struct zbud_pool *pool, unsigned long handle)
SetPageUptodate(page);
}
+ /* move it to the tail of the inactive list after end_writeback */
+ SetPageReclaim(page);
+
/* start writeback */
__swap_writepage(page, &wbc, end_swap_bio_write);
page_cache_release(page);
--
1.7.10.4
On 09/06/2013 01:16 PM, Weijie Yang wrote:
> add SetPageReclaim before __swap_writepage so that page can be moved to the
> tail of the inactive list, which can avoid unnecessary page scanning as this
> page was reclaimed by swap subsystem before.
>
> Signed-off-by: Weijie Yang <[email protected]>
Reviewed-by: Bob Liu <[email protected]>
> ---
> mm/zswap.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/mm/zswap.c b/mm/zswap.c
> index 1be7b90..cc40e6a 100644
> --- a/mm/zswap.c
> +++ b/mm/zswap.c
> @@ -556,6 +556,9 @@ static int zswap_writeback_entry(struct zbud_pool *pool, unsigned long handle)
> SetPageUptodate(page);
> }
>
> + /* move it to the tail of the inactive list after end_writeback */
> + SetPageReclaim(page);
> +
> /* start writeback */
> __swap_writepage(page, &wbc, end_swap_bio_write);
> page_cache_release(page);
>
--
Regards,
-Bob
On Fri, Sep 06, 2013 at 01:16:45PM +0800, Weijie Yang wrote:
> add SetPageReclaim before __swap_writepage so that page can be moved to the
> tail of the inactive list, which can avoid unnecessary page scanning as this
> page was reclaimed by swap subsystem before.
>
> Signed-off-by: Weijie Yang <[email protected]>
Acked-by: Seth Jennings <[email protected]>
On 09/10/2013 12:29 AM, Seth Jennings wrote:
> On Fri, Sep 06, 2013 at 01:16:45PM +0800, Weijie Yang wrote:
>> add SetPageReclaim before __swap_writepage so that page can be moved to the
>> tail of the inactive list, which can avoid unnecessary page scanning as this
>> page was reclaimed by swap subsystem before.
>>
>> Signed-off-by: Weijie Yang <[email protected]>
>
> Acked-by: Seth Jennings <[email protected]>
>
Below is a reply from Mel in original thread "[PATCHv11 3/4] zswap: add
to mm/"
------------------
> + /* start writeback */
> + SetPageReclaim(page);
> + __swap_writepage(page, &wbc, end_swap_bio_write);
> + page_cache_release(page);
> + zswap_written_back_pages++;
> +
SetPageReclaim? Why?. If the page is under writeback then why do you not
mark it as that? Do not free pages that are currently under writeback
obviously. It's likely that it was PageWriteback you wanted in zbud.c too.
--------------------
--
Regards,
-Bob
On Mon, Sep 23, 2013 at 10:06 AM, Bob Liu <[email protected]> wrote:
>
> On 09/10/2013 12:29 AM, Seth Jennings wrote:
>> On Fri, Sep 06, 2013 at 01:16:45PM +0800, Weijie Yang wrote:
>>> add SetPageReclaim before __swap_writepage so that page can be moved to the
>>> tail of the inactive list, which can avoid unnecessary page scanning as this
>>> page was reclaimed by swap subsystem before.
>>>
>>> Signed-off-by: Weijie Yang <[email protected]>
>>
>> Acked-by: Seth Jennings <[email protected]>
>>
>
> Below is a reply from Mel in original thread "[PATCHv11 3/4] zswap: add
> to mm/"
> ------------------
>> + /* start writeback */
>> + SetPageReclaim(page);
>> + __swap_writepage(page, &wbc, end_swap_bio_write);
>> + page_cache_release(page);
>> + zswap_written_back_pages++;
>> +
>
> SetPageReclaim? Why?. If the page is under writeback then why do you not
> mark it as that? Do not free pages that are currently under writeback
> obviously. It's likely that it was PageWriteback you wanted in zbud.c too.
> --------------------
Thanks for reminding this.
The purpose of using this flag in PATCHv11 and this patch is different.
In PATCHv11, it was repurposed to protect zbud page against free,
and now it is replaced with zhdr->under_reclaim.
In this patch, this flag is for its original purpose(to be reclaimed asap)
> --
> Regards,
> -Bob