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 X-Spam-Level: X-Spam-Status: No, score=-5.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2C57BC433DB for ; Tue, 12 Jan 2021 15:21:49 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 893EF23130 for ; Tue, 12 Jan 2021 15:21:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 893EF23130 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=windriver.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 7F2218D00AF; Tue, 12 Jan 2021 10:21:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7A37E8D00AA; Tue, 12 Jan 2021 10:21:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 61C6C8D00AF; Tue, 12 Jan 2021 10:21:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0037.hostedemail.com [216.40.44.37]) by kanga.kvack.org (Postfix) with ESMTP id 328278D00AA for ; Tue, 12 Jan 2021 10:21:47 -0500 (EST) Received: from smtpin05.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 7EDEA3626 for ; Tue, 12 Jan 2021 15:21:42 +0000 (UTC) X-FDA: 77697487644.05.apple14_080f32227516 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin05.hostedemail.com (Postfix) with ESMTP id 307B418034F71 for ; Tue, 12 Jan 2021 15:21:42 +0000 (UTC) X-HE-Tag: apple14_080f32227516 X-Filterd-Recvd-Size: 10605 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2059.outbound.protection.outlook.com [40.107.94.59]) by imf47.hostedemail.com (Postfix) with ESMTP for ; Tue, 12 Jan 2021 15:21:40 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xf3m2eRDGkSWsfAgZ1+sb9rQLVUIS+mbyH1zDXROzKD9evmUeBQt1kcPWbtNgJw0wSPftsj1/jwnypxSZhcAq/41qWOQcuQ+6Y6o+I0K9c+2QsmTiUDO6AI30sbN/NpfQEOlF1C2hNGqFhXBtZ/Sj7/ggn3vlLxaPgHA3173aBxj8SDA2jGJz7qas701eJW3M85k1FWbjLBtpL/CB8d249raV6PDt5357B3u6xaoHaANBRErbwacF/MehMkE2cF0WUGdWRAhUoiRqEHBf8sIEg6gKaSExZIZmAwG42cfsA7BrSigqpodCAxUbqL6Gv0ziQ85CEecbAnmb2lTEfqv9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oE3BHzzfHm3fgVi9Wl2LSBg9ZRfNw87DD1kpT1cgbfQ=; b=KeiLB+aPGa5kKz5SEh8Ev5JWZppwW1Ibbb6rZlKjeY7L8x3mMZIJJOyxde2rgV26ZDtgM1r6D5xN/8heFJ0Nb6g3ZXi3nU9kdpRAQ6cLZS/2FWf3kS59/UvsTvE5iMJlpEdqIJQBkwgf86ELu78S3kVKNbXQTDkwrpVNiwyHfvHXpBk1okxjLFOXtPglmYLPQ0EGDutMIzkQC7L4OfEZhFEMx/vRMXJbsVxrBtrxTvxQ4aXTjWaUGw4t84vD0NA3XfzYs92VWVD+BUOY9MBZTS2NsjF3+r03b+xVcPVldsWI2H4Oxsd/v0Cn4g7ZDO1HDxA/fznEmm67WaKC+TCy5Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriversystems.onmicrosoft.com; s=selector2-windriversystems-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oE3BHzzfHm3fgVi9Wl2LSBg9ZRfNw87DD1kpT1cgbfQ=; b=IAQ+FNXx1J78Jm9+dRTyqlP7qOSaP/ZCi9z7yM4lLvoop2Uk2ukUB0PK6jyq455vbJpZGmK5URVGbNuilqRQsXpmOGI8LMzZx4zozIY+Tx/u53QL8yW2nNWBhKxy+HODhd+ECevChgKTH0P3XMw8HSM0nVIhH81X3rHWn7bEiBA= Authentication-Results: kvack.org; dkim=none (message not signed) header.d=none;kvack.org; dmarc=none action=none header.from=windriver.com; Received: from BY5PR11MB4241.namprd11.prod.outlook.com (2603:10b6:a03:1ca::13) by BYAPR11MB2600.namprd11.prod.outlook.com (2603:10b6:a02:c8::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.9; Tue, 12 Jan 2021 15:21:37 +0000 Received: from BY5PR11MB4241.namprd11.prod.outlook.com ([fe80::89db:d2c3:7a57:75a6]) by BY5PR11MB4241.namprd11.prod.outlook.com ([fe80::89db:d2c3:7a57:75a6%2]) with mapi id 15.20.3742.012; Tue, 12 Jan 2021 15:21:37 +0000 Subject: Re: mm: Question about the race condition of pages in buddy during isolating pages To: Vlastimil Babka Cc: Linux Memory Management List References: <3521dc6a-a38b-37d3-4a8a-3d10dcf687b7@windriver.com> <47aaf4b5-2587-72b0-42a1-4c0b4f13f12d@suse.cz> From: "Xu, Yanfei" Message-ID: Date: Tue, 12 Jan 2021 23:21:29 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: <47aaf4b5-2587-72b0-42a1-4c0b4f13f12d@suse.cz> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US X-Originating-IP: [60.247.85.82] X-ClientProxiedBy: HKAPR04CA0016.apcprd04.prod.outlook.com (2603:1096:203:d0::26) To BY5PR11MB4241.namprd11.prod.outlook.com (2603:10b6:a03:1ca::13) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [128.224.162.160] (60.247.85.82) by HKAPR04CA0016.apcprd04.prod.outlook.com (2603:1096:203:d0::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6 via Frontend Transport; Tue, 12 Jan 2021 15:21:36 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 33177899-77d6-41b4-7f51-08d8b70dc0e9 X-MS-TrafficTypeDiagnostic: BYAPR11MB2600: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Tr7g5SrTNv6yeZa9Xsu7aXUh7MlFf2qqdzfv07Guhv/C3ZYKHZ9n+GsvUg4D33+TfG2DXfHbidkiE/aIS0XNgJEGF0IltLfv3UQFD5NfR2S6Wo/hnjT03Erxz10KcEeGKynLAmJRrFJm17afaKoyNG40pN/93BEG+Dmbrjzz0lsJmG+WbU7KD6iyT/ULqAtBRh62T9yW3YAb1fdTjv6I8DGZ0My5a7fFi7eC3O/mqVEVxDsU4V0+fJ45YdPoC8F8/4bwT5s6MHb9xDllX5okVplMR0TmpQWfmIETYfxh+x7b9H6hMRQ3BI/IoAkYTZ6+/177xO16ypJvX9vecuvNwsz7ujNl1xz//G5WYV4c/2FS2/KgwU42ZBRMb8o5VroJoNmwOzkfqSZ173t3QmbomwOte2QVMWzCCXLsBHheVG67B1Xn+m5+3v2fwXJDS99MbHcYEnwK4zomB6JQXW1nBbYqv33+4TeXOvQ2uQfSQbPIwpj6PqeSNYyfrI0868KDFukCqNVm60SGl/pNcI/UoQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR11MB4241.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39830400003)(396003)(136003)(346002)(366004)(376002)(956004)(2616005)(316002)(26005)(53546011)(186003)(16526019)(66476007)(83380400001)(66946007)(5660300002)(66556008)(6666004)(52116002)(16576012)(8936002)(36756003)(31696002)(6486002)(8676002)(86362001)(31686004)(478600001)(4326008)(2906002)(6916009)(6706004)(87944003)(78286007)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?K25kOUhxNmtLa0N3RWlkUXB3SThjcGczSjB4L2t6YUVnZ0ZwL0gzdHBUTWRl?= =?utf-8?B?NkJ2ZVN2WktoTEoyTzZhZ0pCUWhwQUpCbzBuMnZEZENNRytCVktWMklmRCtj?= =?utf-8?B?WHNiUFlQNUQvZzI5cmhxeGkzT25GV1F4RUx1YnN4TkQ5MEtZclY4L2djSnhj?= =?utf-8?B?SHBmeEdwUERBeVJJaUxYdzdtTlVKVTNQazVmMWtPYXpIR3MxeENMYUt5eFBE?= =?utf-8?B?NXlxNitTVHJFNFErNG5GRFpjYlBwbnIxajVLbHBhUjhnS1YydHJzUU9ZcFNa?= =?utf-8?B?SG92TWZzNFZ3aU9RdzdaaXFnUDlHYTVyQ2RrMHZ0U1N1SHZydDFnL1BCQWoz?= =?utf-8?B?Qm9xMCtySGhScEZlZVdwTEVzdTRjeDJYaWszQ2JndUl2YnhPdWtmY0hzNG9w?= =?utf-8?B?cGFpamxta2ZiRnRkZ251MFJlZ2FELzBwU0FPOWZ5VTIvd3N5UWhGZWV1UW5U?= =?utf-8?B?eTF5bi9MRzZucVFKaU1wSTBiaVJ2RzFtTlFIWGpvSTgwVTdoVXFCeGhoSDV1?= =?utf-8?B?djRjQ1AySldHVzZ5Uk5iM2lrMUpvVytHRFZrNFVtejQwWml2M0N4NHQzSmZx?= =?utf-8?B?NHdubkwwTUxaTXlpaGxNeGJmR1QwR0FCV05TVGFoM09nME8rd0JuMThObzRU?= =?utf-8?B?Q0xDejhmNGNqUjdCVFRqUTRxNnU4U1A2MURYRGFZYjBRK0VWVzFaNklYU2lU?= =?utf-8?B?dS9lbWFCR2preGk0Z24zNldSZUtVaFZUL244b2hQRzAwWTlhM0FTdHBHYUI3?= =?utf-8?B?bGV4WjBKZWFoOWxOUFJyMFVENWN6eThPQlUvQThaWlZDL2MxcHB6OUsvRnlB?= =?utf-8?B?cnN5eTlvbHM5cFB5NnBiYU9CYTFjMml2VExRZE1HQ3RnWnBkSG5YSE5aZ1R6?= =?utf-8?B?a1lSQ1pGTHBqYVJzRXdjemZyMUgvZk1CVUJHYkNVRHlvWWFldlBnSTFDa2VQ?= =?utf-8?B?YVBHakJhaXg0SkRGT1FIYzFWWnBmS2hjcEwvejlRclhObHhjYWZDR2VNSE5Z?= =?utf-8?B?WWFoS3BVNlJQRXF4ZHBsdFJ1dGFmMUJGVCs2OWxKQjZHeUZhL0F1QlBobFg4?= =?utf-8?B?QXpSYkNnbVFzblVKdStWb0dvSWhpSWttQVc3OHNOVzRtOHU0L3liaWVsVXcr?= =?utf-8?B?TVBzcjluR0NjalY1dVMyQ3p4VHhKYVNyVlIwaW9veXlUcmtuZ3VObC9TNG00?= =?utf-8?B?TFhpTk4wQUtwY1ZJdTZxelBKTnJjajFtWWhEQzZpVnBRV3Z4eUU1Qlp4MXZE?= =?utf-8?B?aDJTc1JIOElmcUEzTEdmVEVVWkRDM0p6RG0zbVZjRzBBTTUyOUhMSjNXVHd2?= =?utf-8?Q?sY5NcwXrqsvR3oDgw7Lkr4vSLBeFf8tJcR?= X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB4241.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2021 15:21:37.0671 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-Network-Message-Id: 33177899-77d6-41b4-7f51-08d8b70dc0e9 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tGvWEjqlxuuH8eVHUGCmaWEsLPTzsRqsBgJGoRJ0WAJzrQ4cOXeiunXIdF5sTPMtTd76lKAsANPIE1pfIuJBtg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2600 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000149, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 1/12/21 10:31 PM, Vlastimil Babka wrote: > On 1/12/21 3:24 PM, Xu, Yanfei wrote: >> Hi Vlastimil, >=20 > Hi, >=20 >> When I inspect the the codes about isolating pages, there are some lin= es >> from you make me confused. As blow: >> >> Locate in isolate_migratepages_block() >> mm/compaction.c >> >> =C2=A0908=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 /* >> =C2=A0909=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * Skip if free. We read page o= rder here without zone lock >> =C2=A0910=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * which is generally unsafe, b= ut the race window is small and >> =C2=A0911=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * the worst thing that can hap= pen is that we skip some >> =C2=A0912=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 * potential isolation targets. >> =C2=A0913=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 */ >> =C2=A0914=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if (PageBuddy(page)) { >> =C2=A0915=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 unsigned long freepage_order =3D >> buddy_order_unsafe(page); >> =C2=A0916 >> =C2=A0917=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 /* >> =C2=A0918=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 * Without lock, we cannot be sure that what we got is >> =C2=A0919=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 * a valid page order. Consider only values in the >> =C2=A0920=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 * valid order range to prevent low_pfn overflow. >> =C2=A0921=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 */ >> =C2=A0922=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 if (freepage_order > 0 && freepage_order < MAX_ORDER)) >> =C2=A0923=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 low_pfn +=3D (1= UL << freepage_order) - 1; >> =C2=A0924=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 continue; >> =C2=A0925=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } >> >> These lines was isntroduced by the commit 99c0fd5e51c("mm, compaction: >> skip buddy pages by their order in the migrate scanner") >> >> What I don't understand is that "the samll race window" mentioned in >> comments is which situation. I think before the >> isolate_migratepages_block() function is involved, those pageblocks ha= ve >> been marked MIGRATE_ISOLATE by set_migratetype_isolate() in >> start_isolate_page_range(). So the pages of those pageblocks in buddy >=20 > AFAIK that's only true when we start in alloc_contig_range(). In compac= t_zone() > -> isolate_migratepages() we don't use MIGRATE_ISOLATE as that would in= crease > the compaction cost a lot. >=20 Ah=EF=BC=8C got it. Compaction doesn't need these buddy pages during isol= ating=EF=BC=8C=20 so it doesn't need to mark them MIGRATE_ISOLATE. THANK YOU. >> will not be allocated, then the buddy_order_unsafe() here will get a >> certainly correct order value. >> >> Could you please tell me what situation it will race with? :) >> >> >> >> Thanks, >> Yanfei >> >=20