From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E2717E77188 for ; Mon, 6 Jan 2025 10:13:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1F9D36B0088; Mon, 6 Jan 2025 05:13:13 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 183216B008A; Mon, 6 Jan 2025 05:13:13 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 024BC6B008C; Mon, 6 Jan 2025 05:13:12 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id D78E06B0088 for ; Mon, 6 Jan 2025 05:13:12 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 76E161614EA for ; Mon, 6 Jan 2025 10:13:12 +0000 (UTC) X-FDA: 82976614224.16.609FCC6 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf05.hostedemail.com (Postfix) with ESMTP id 1E1A3100004 for ; Mon, 6 Jan 2025 10:13:08 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=FdGXVHd9; spf=pass (imf05.hostedemail.com: domain of bhe@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736158390; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=si2kzVSfOoKVgvHpvzcI3GC2XUMv/rHIDef9HAVuf9I=; b=bDQB4bHED2xWXVdaETy5kVpHw/yky5wXFtFJlGiootmC9wTkrt8itDo+IJ3s5yNb2Fxxly Aq7IKH5bj1Gj6SIc4EkAA6TDkMjGaaq/AYQe9LS7jfsLSIbavgsIhHW4bTRSExQ2AVqadN 2hZBbic0iJeEqOlaEgywk87D0uyxU1U= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736158390; a=rsa-sha256; cv=none; b=Ciz6IFCrAiCj/IuCRDJahI8X0JElPsPU+YUpcTORAtRIFQ/DdLKKv9iPULuRqQ33syVuHW AAg61M5rS+C0/HW++GrYLVDyNDfE1gs85/1a1nJvLNy2P5X5UenlIIQ4TnFNYyo4RyqLwb 4z/kR+0fTIkWV+J6z/stiLQ8EBBn2Y0= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=FdGXVHd9; spf=pass (imf05.hostedemail.com: domain of bhe@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1736158388; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=si2kzVSfOoKVgvHpvzcI3GC2XUMv/rHIDef9HAVuf9I=; b=FdGXVHd9Vf3e/JLIcSAhjSuwQZ26RsgDYOusqgl5FRDCz0BuikbuO4kn7sIPpcYLZZPAGE j7mtVJljrlCwwZNGu3xQpbRkOhA0iOc8Y2oFnaFRjhJCKV/c6eo/kL4gJegz7Yi+Zx/9AP OPLKaREgMhCq5866tpLd45DVdqgytkk= Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-106-rlfKwxxoOn6kdZacP0jRjQ-1; Mon, 06 Jan 2025 05:13:04 -0500 X-MC-Unique: rlfKwxxoOn6kdZacP0jRjQ-1 X-Mimecast-MFC-AGG-ID: rlfKwxxoOn6kdZacP0jRjQ Received: from mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id CCB2519560A5; Mon, 6 Jan 2025 10:13:00 +0000 (UTC) Received: from localhost (unknown [10.72.112.99]) by mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id C88FB1956088; Mon, 6 Jan 2025 10:12:58 +0000 (UTC) Date: Mon, 6 Jan 2025 18:12:54 +0800 From: Baoquan He To: Kairui Song Cc: linux-mm@kvack.org, Andrew Morton , Chris Li , Barry Song , Ryan Roberts , Hugh Dickins , Yosry Ahmed , "Huang, Ying" , Nhat Pham , Johannes Weiner , Kalesh Singh , linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 09/13] mm, swap: reduce contention on device lock Message-ID: References: <20241230174621.61185-1-ryncsn@gmail.com> <20241230174621.61185-10-ryncsn@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241230174621.61185-10-ryncsn@gmail.com> X-Scanned-By: MIMEDefang 3.0 on 10.30.177.15 X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 1E1A3100004 X-Stat-Signature: 5ibywdxo1dhymzrbmuq55jhyf11zxisb X-Rspam-User: X-HE-Tag: 1736158388-68412 X-HE-Meta: U2FsdGVkX1+dT8sdAoiAxkKN6U7O/WvJOc91GmfYaa2xTghTkOil24al64HUNRuR4bP9QmTFxLx4nKCSaOAI1W3+lBPvQlcIrwrxvUXBZaEQ8sTaFnT8NQgSHP8SwpFtqOxabdyqLO8izUwQQKiK725EsIW5ye0SUEV6r0k5fnaeilLj4BIYH5kt+TRCWs7R4rxG3rxVzCwdFT40Wpqfx+rMYET8oWqiuYsveUCOXEh7APlaw6zSgNxN5L80yZkuXY3lL1nzc4P0637vBrmTEv+Lh+6uLDpfXTeQIYCU3IR1+SHfLEuAWNq3/f4MLmWMcOYwVrp8BGmAgxx1KOytEXwFhJ9Ve3Q0Gvn8N6iPkUJ4kk5mKGQgjReZ+hW8tNGg4PLdIIypXJkTgZxYIGYc4ox1DurypiE7Zr1Pme3qEhiVB/lhAu/EcLRdOVYo9pfOFjljsQpsuy3NcqysCs6LoDFZmTgQ3C5XlBRL08peidPbrid/0sucsSDybd9G9Ee283KaKLKbS5PZXxGmN8HYZDlczWg1/oHQsxN+oQaXEakdiXtegCF10qD4ZQTfd5Vj6WcIOgxW5hEU4vHr5/Ii41BSu1DNMPPcnnatJXOt30opRaLWVt/L+6GRLAVLK4IGe4hMB3To1lVu7hqvIFW74MdvqVE+a/TUOMZXfKobWYNZmR2+aexI6GCtJQZOByNMnSOGVjOknR5/k2pSxFZe1mdGtvhwgTmtaTn7UrDQdvkQlYN5gftv7m33RjoW21PhkEFDul0mkh6RRk0F07L0BTSZqWr0wl0dUXj3K6eM/xzYaBNpWS+3fCqhmkEcosXl4Ypd0fZ6axQkCt91enQKMFidsfO+IExToVt1j78LWdz3v5og3zxdrn8CLCs31I2hyRPmt56RI7gZCaupgEF6cRmP6PDZZqQezIpz5sotcXDDMrZHBtI+Shfb5AzEF+yR0mtVnUzMnRnyVHVYIvB XDESQD2z 4ahiHiwROSB5WnH+6l40Qnc1kzT5BdScRZuM+0yqglm89OcLh0fsF5j0/z+eHNJC4olWiz63oJGpZkYsk0cP/drKqgvKas+fWQh6hwQXi2Ius/tRRD0nVKQbsI4KL8twPG016LvKfH1sk0uNzoxCa+c57HwQdbF5qTy1KvX35etT4Z0Ah0iGQfeqoSLaVH4sPXX7fVXRElbEmOpOmG7BqRXJdcRO46m7TxtJ0zho0iZtsfvULfKkWd/XVBZ2fx8c3WVSto7y4l96zwx54747iB/aCeHa2NT0X0QjCRKlTEunGXIRbuse80MhCVm18c/1Nqrdm8GF6cuX3XKK3ikeijI+clKbtpVEzQcCI X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 12/31/24 at 01:46am, Kairui Song wrote: ......snip.. > + > +/* > + * Must be called after allocation, moves the cluster to full or frag list. > + * Note: allocation doesn't acquire si lock, and may drop the ci lock for > + * reclaim, so the cluster could be any where when called. > + */ > +static void relocate_cluster(struct swap_info_struct *si, > + struct swap_cluster_info *ci) > +{ > + lockdep_assert_held(&ci->lock); > + > + /* Discard cluster must remain off-list or on discard list */ > + if (cluster_is_discard(ci)) > + return; > + > + if (!ci->count) { > + free_cluster(si, ci); relocate_cluster() is only called in alloc_swap_scan_cluster(), there seems to be no chance to have 'ci->count == 0' case when allocating. Do I miss anything here? > + } else if (ci->count != SWAPFILE_CLUSTER) { > + if (ci->flags != CLUSTER_FLAG_FRAG) > + cluster_move(si, ci, &si->frag_clusters[ci->order], > + CLUSTER_FLAG_FRAG); > + } else { > + if (ci->flags != CLUSTER_FLAG_FULL) > + cluster_move(si, ci, &si->full_clusters, > + CLUSTER_FLAG_FULL); > + } > +} > + > /* > * The cluster corresponding to page_nr will be used. The cluster will not be > * added to free cluster list and its usage counter will be increased by 1.