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 97EF2C624B4 for ; Thu, 23 Nov 2023 14:26:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1D3766B06B6; Thu, 23 Nov 2023 09:26:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 15C216B06B7; Thu, 23 Nov 2023 09:26:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 023E06B06B8; Thu, 23 Nov 2023 09:26:17 -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 E64C66B06B6 for ; Thu, 23 Nov 2023 09:26:17 -0500 (EST) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id BEDE880157 for ; Thu, 23 Nov 2023 14:26:17 +0000 (UTC) X-FDA: 81489443994.08.47EAAD6 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by imf01.hostedemail.com (Postfix) with ESMTP id 8F2644000B for ; Thu, 23 Nov 2023 14:26:14 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=quicinc.com header.s=qcppdkim1 header.b="TwkumF/T"; dmarc=pass (policy=none) header.from=quicinc.com; spf=pass (imf01.hostedemail.com: domain of quic_charante@quicinc.com designates 205.220.180.131 as permitted sender) smtp.mailfrom=quic_charante@quicinc.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700749574; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=eI7e/qtvK85QUgdu7R/5LZXsD6RSiqt2MHIZcb984Us=; b=5+GS1mgNepYbN0mYGNUOEVnMenl9QhUjhS9VNLINNobAzIcAH7UrWMNkB02qm16ZhIqpXs kxLnUaMys7Gnf54LrmxFursu3k647OHj9e66SwL72YuRrVka+GYWlJLQBsBx0vMa4C1oEO pyb6CxHEVTOCJt5R+y5N7Lbyvmw2l0Q= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=quicinc.com header.s=qcppdkim1 header.b="TwkumF/T"; dmarc=pass (policy=none) header.from=quicinc.com; spf=pass (imf01.hostedemail.com: domain of quic_charante@quicinc.com designates 205.220.180.131 as permitted sender) smtp.mailfrom=quic_charante@quicinc.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700749574; a=rsa-sha256; cv=none; b=Pq5+ueS4s+fOdMQO5Wr/Ko99Mc1+l3Pv3x8y2RN3C9Bx141C9KgJEkZrdFIQ+TaAU0dAvg KCsikM1cKZsUvhwatqUwpSEkx1bZq0krEx3V2EFQ3IDHgfcCb3VRHQUCC3c0I7JDKyQdFc kGwHbIXEFEXvD+4gRekoXEn6/Ji43jU= Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3ANDKJKm007069; Thu, 23 Nov 2023 14:26:01 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=qcppdkim1; bh=eI7e/qtvK85QUgdu7R/5LZXsD6RSiqt2MHIZcb984Us=; b=TwkumF/T2xgJRYCk2IIpoHRV4UPi8RjzgLuubvaTTlyQ7OcjfXIsiAeiHfQsa3slkqf4 Y8jT+M5YGIWepy7jkYkwg3C9WBiZNsjwlEe/cWpyQ9pEQ6wx0AsiPhNmz/KfMzMPPk7x /s6jvNBINfJpDr2hGvTaUl6IEkfk5e73Slm/+Ovry+hVAsz7nGe1NwKBWsjNPqfWanvO mIgswGTqofUguS6nI7nWOBAW6rBGNSGQz2xPFBpr9XCaTiBPji9f0NOkcAUcgmc2DnlM FgI85Pdxx7PG3kkZUXvzSImtSdswNaEyp5t3LTysPIEvDvB2pmDfIuQFjoaMgFJYk2b4 ow== Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3uj7gjr42m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Nov 2023 14:26:01 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 3ANEQ0ou019604 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Nov 2023 14:26:00 GMT Received: from [10.216.14.231] (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Thu, 23 Nov 2023 06:25:57 -0800 Message-ID: <51f727a2-75e9-d42f-bae6-d3e4c3328af1@quicinc.com> Date: Thu, 23 Nov 2023 19:55:53 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH] [RFC] mm: migrate: rcu stalls because of invalid swap cache entries Content-Language: en-US To: Matthew Wilcox CC: , , , , , , , References: <1700569840-17327-1-git-send-email-quic_charante@quicinc.com> From: Charan Teja Kalla In-Reply-To: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: pTPt2ZsBmQkSjL-uVcWxJGfzqrWUO1-G X-Proofpoint-GUID: pTPt2ZsBmQkSjL-uVcWxJGfzqrWUO1-G X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.987,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-11-23_12,2023-11-22_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 mlxscore=0 lowpriorityscore=0 clxscore=1015 malwarescore=0 suspectscore=0 spamscore=0 phishscore=0 bulkscore=0 adultscore=0 mlxlogscore=545 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000 definitions=main-2311230104 X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 8F2644000B X-Stat-Signature: fhq9dazr3f6fs8dgyzctyaza9wq1x43y X-Rspam-User: X-HE-Tag: 1700749574-198355 X-HE-Meta: U2FsdGVkX1/8oNasK5wXxixWfyRwdJym/NojZ9gT4ct+PsABmzuGdUD+Etkc/60U8HpGHxyOzi58AdaeLo/+jqOeSSTfSaDVhkFy+qPdsQJvtyEE9QPbDAQrovE+uiQx88vL6LtXcRYN7xsjyjFQXAbZTYcCFaiNCrW2MmZoURGl/GZIJ+JUsmBdp0vzoY7iTWli1dyI7EdziKCmi6sdyWFwrcY+Us0A8iUBKz5TNfQSTzbYijBVK/XhkKxSsboGLkR6OXouSuIjEWHE9K7Yla/TXaJDnrV4kyHggN/Kmh5HtEnH+3XvAUj8xGPYMIH+9H6+uI9H+eIcIU+bDnspt5/cLJrGku7Hw7k+QTuSt1S403uxiKFJ7ECRgOEyF+ko1XAFcB39h1MUIJxNzmjHkFcDi6PtBEmnm2f0fvbBF1wrjK9L0pT1eubaZL/RifdNuAAIEz6SpKVgjpt8noKCqyBBe/yLDnXUAHjZjLzkcvmu4kbm9jZeUYWcPKhn9zOFuT5QrG45WHy6i6sO0YSWcVfyDF74Pi2m0wP9hnqiBt1jeGtVm7OfS3ODQSvEJSS6h1ZMyDWObuHkf4O5JuEDjUle5lRnI9K9QaJUTUr7Uq2ZaEHrfJq02P5yoJRBFbNWGfpTaZ5sMi+5+Li0eprl86kqg+JowTEFDkRoOgtUfkdtMoXunvbIOuJSA1AxPhKg/a5Q3vJhFpPgo+7dOc6rYeK6q5fIEZk17BH3U7XUgVELErr9vWjZBfgMJZIKID1O2WxEAu/rUn+cDOW6DxJVTqLrI3zJ/9Fu7IvPhQrotfjB8ZbcmhtoR22gxMeKVlvBzSWmj53oXa7pHhO4GEDYaaz16t1FLFE/N1535O5/q92Hnwi7gJiQB5XldoCu33sUKyPOWkm7xl3INRq0gXSdModovnIRuuwz+DWxtA2BqO2DmZG9CTkz7W3WHJJ3g+4ySim2OS1oVUiLeUuRlYX cmd5pgpt 5eLZkx33dokEIEsfrO38icu2vgzRGk94mgYgQBlupqIb14cUhiulRSh42a36Pt/7SFHTm+hQz+AlgCi6CDlajgMF6iSLSQZctR9RBeaEe3bx52vHmtScBZCCsPnt0/bkZ3BdrX37gC/tfthygc+IV6Ut+d5vbrMm/fMdGooMf58GeC537yo5VkQm5T0hD0tJ6V6aDszkW6cX2pBibGRqgs4/84pNDE7HLg2C1jQ6F+hEPRPI= 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: Thanks Matthew! On 11/21/2023 9:43 PM, Matthew Wilcox wrote: > What would you think to this? I think a better fix would be to > fix the swap cache to user multi-order entries, but I would like to > see this backportable! > > diff --git a/mm/migrate.c b/mm/migrate.c > index d9d2b9432e81..2d67ca47d2e2 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -405,6 +405,7 @@ int folio_migrate_mapping(struct address_space *mapping, > int dirty; > int expected_count = folio_expected_refs(mapping, folio) + extra_count; > long nr = folio_nr_pages(folio); > + long entries, i; > > if (!mapping) { > /* Anonymous page without mapping */ > @@ -442,8 +443,10 @@ int folio_migrate_mapping(struct address_space *mapping, > folio_set_swapcache(newfolio); > newfolio->private = folio_get_private(folio); > } > + entries = nr; > } else { > VM_BUG_ON_FOLIO(folio_test_swapcache(folio), folio); > + entries = 1; > } > > /* Move dirty while page refs frozen and newpage not yet exposed */ > @@ -453,7 +456,11 @@ int folio_migrate_mapping(struct address_space *mapping, > folio_set_dirty(newfolio); > } > > - xas_store(&xas, newfolio); > + /* Swap cache still stores N entries instead of a high-order entry */ > + for (i = 0; i < entries; i++) { > + xas_store(&xas, newfolio); > + xas_next(&xas); > + } > > /* > * Drop cache reference from old page by unfreezing Seems a cleaner one to store N entries. Supporting swap cache for multi order entries might be time consuming. Till then, can we use this patch as the solution, with the proper commit log conveying revert of this patch when swap cache supported with Multi-order indices? Please Lmk, If I can raise this patch with suggested-by:you . Thanks Charan