Re: [PATCH linux-next v2] swap_state: update shadow_nodes for anonymous page

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jan 13, 2023 at 03:50:45PM +0800, yang.yang29@xxxxxxxxxx wrote:
> This patch updates shadow_nodes of anonymous page when swap
> cache is add or delete.

By what?

> diff --git a/mm/swap_state.c b/mm/swap_state.c
> index cb9aaa00951d..7a003d8abb37 100644
> --- a/mm/swap_state.c
> +++ b/mm/swap_state.c
> @@ -94,6 +94,8 @@ int add_to_swap_cache(struct folio *folio, swp_entry_t entry,
>  	unsigned long i, nr = folio_nr_pages(folio);
>  	void *old;
> 
> +	xas_set_update(&xas, workingset_update_node);
> +
>  	VM_BUG_ON_FOLIO(!folio_test_locked(folio), folio);
>  	VM_BUG_ON_FOLIO(folio_test_swapcache(folio), folio);
>  	VM_BUG_ON_FOLIO(!folio_test_swapbacked(folio), folio);
> @@ -145,6 +147,8 @@ void __delete_from_swap_cache(struct folio *folio,
>  	pgoff_t idx = swp_offset(entry);
>  	XA_STATE(xas, &address_space->i_pages, idx);
> 
> +	xas_set_update(&xas, workingset_update_node);
> +
>  	VM_BUG_ON_FOLIO(!folio_test_locked(folio), folio);
>  	VM_BUG_ON_FOLIO(!folio_test_swapcache(folio), folio);
>  	VM_BUG_ON_FOLIO(folio_test_writeback(folio), folio);
> @@ -252,6 +256,8 @@ void clear_shadow_from_swap_cache(int type, unsigned long begin,
>  		struct address_space *address_space = swap_address_space(entry);
>  		XA_STATE(xas, &address_space->i_pages, curr);
> 
> +		xas_set_update(&xas, workingset_update_node);
> +
>  		xa_lock_irq(&address_space->i_pages);
>  		xas_for_each(&xas, old, end) {
>  			if (!xa_is_value(old))

Adding xas_set_update() call?

In any case, please explain what you are doing above in imperative mood
(no "This patch does foo" but "Do foo" instead).

Thanks.

-- 
An old man doll... just what I always wanted! - Clara

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux