Re: [PATCH 4/6] mm, swap: remove setting SWAP_MAP_BAD for discard cluster

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

 



On Sat, Feb 22, 2025 at 3:12 PM Kemeng Shi <shikemeng@xxxxxxxxxxxxxxx> wrote:
>
> Before alloc from a cluster, we will aqcuire cluster's lock and make
> sure it is usable by cluster_is_usable(), so there is no need to
> set SWAP_MAP_BAD for cluster to be discarded.
>
> Signed-off-by: Kemeng Shi <shikemeng@xxxxxxxxxxxxxxx>
> ---
>  mm/swapfile.c | 11 -----------
>  1 file changed, 11 deletions(-)
>
> diff --git a/mm/swapfile.c b/mm/swapfile.c
> index fc45b9d56639..c640f77a464a 100644
> --- a/mm/swapfile.c
> +++ b/mm/swapfile.c
> @@ -479,15 +479,6 @@ static void move_cluster(struct swap_info_struct *si,
>  static void swap_cluster_schedule_discard(struct swap_info_struct *si,
>                 struct swap_cluster_info *ci)
>  {
> -       unsigned int idx = cluster_index(si, ci);
> -       /*
> -        * If scan_swap_map_slots() can't find a free cluster, it will check
> -        * si->swap_map directly. To make sure the discarding cluster isn't
> -        * taken by scan_swap_map_slots(), mark the swap entries bad (occupied).
> -        * It will be cleared after discard
> -        */
> -       memset(si->swap_map + idx * SWAPFILE_CLUSTER,
> -                       SWAP_MAP_BAD, SWAPFILE_CLUSTER);
>         VM_BUG_ON(ci->flags == CLUSTER_FLAG_FREE);
>         move_cluster(si, ci, &si->discard_clusters, CLUSTER_FLAG_DISCARD);
>         schedule_work(&si->discard_work);
> @@ -571,8 +562,6 @@ static bool swap_do_scheduled_discard(struct swap_info_struct *si)
>                  * return the cluster to allocation list.
>                  */
>                 ci->flags = CLUSTER_FLAG_NONE;
> -               memset(si->swap_map + idx * SWAPFILE_CLUSTER,
> -                               0, SWAPFILE_CLUSTER);
>                 __free_cluster(si, ci);
>                 spin_unlock(&ci->lock);
>                 ret = true;

Good, I wanted to do this some time ago, but forgot about this while busy with other things.

Reviewed-by: Kairui Song <kasong@xxxxxxxxxxx>

[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