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 973BAC3DA4A for ; Fri, 9 Aug 2024 09:41:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 164346B0088; Fri, 9 Aug 2024 05:41:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1138F6B0089; Fri, 9 Aug 2024 05:41:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F1CF66B008C; Fri, 9 Aug 2024 05:41:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id D5F706B0088 for ; Fri, 9 Aug 2024 05:41:50 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 48CBD120B89 for ; Fri, 9 Aug 2024 09:41:50 +0000 (UTC) X-FDA: 82432215180.14.F3B0406 Received: from mail-lj1-f170.google.com (mail-lj1-f170.google.com [209.85.208.170]) by imf14.hostedemail.com (Postfix) with ESMTP id 4235110000E for ; Fri, 9 Aug 2024 09:41:47 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=QbC0Pml6; spf=pass (imf14.hostedemail.com: domain of urezki@gmail.com designates 209.85.208.170 as permitted sender) smtp.mailfrom=urezki@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723196443; 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=d5iX1/IG6jtHq1Cd/wpVRMCC2IDAUkyqowaJYsLDHSM=; b=2eN4HbWiQFDOf8gTzx1szE1gjBHJIW4GqPrYVEQzFMW4Bpb2hlHhMxUa4uuZaJyLBLXkoK UFL8bLsYZkex95Gw/t92GxrvxLfiW+fV8HQNEfIEpQNnYe3SQmnBUXD8wyiqfXNH7F6/g8 mSuMvtty319dUoqr6ZpS+hTGRf6o+KU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723196443; a=rsa-sha256; cv=none; b=2GaicY27Qb001VhE02B91f8qiABXTx8UOVjzlhzQmlZ5xY7mMvYZH1ClSGloo5bPool0r5 eJPtTENMYAKms5jOjxHHUXTwudB245ZKT5TI9oduayvUJ0hCh4V8GntNfqwRVn4m/+q/nO hZTLMezdQtzE9VCe/9gUsYLkqLiNXZI= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=QbC0Pml6; spf=pass (imf14.hostedemail.com: domain of urezki@gmail.com designates 209.85.208.170 as permitted sender) smtp.mailfrom=urezki@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-lj1-f170.google.com with SMTP id 38308e7fff4ca-2f032cb782dso20308601fa.3 for ; Fri, 09 Aug 2024 02:41:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1723196506; x=1723801306; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:date:from:from:to :cc:subject:date:message-id:reply-to; bh=d5iX1/IG6jtHq1Cd/wpVRMCC2IDAUkyqowaJYsLDHSM=; b=QbC0Pml6yJ7cyR6dxTwz12jT0F1jghyah2IWr2SiWCnfS4tOeohrHxusvgQi+An0jo hY0ortKoHVhKonLlqSYiQhSCNaj2FUY9yO8XH4YI1YcPyE0eP7/gzKZFMWDLXLZ9zu80 TDXoyYgETZd8fabsiCcxZMRBc2LsFSeR0iPNBpMW87KMf5sWlXMzYRXub0b1RwV3C8ww ATSAmph4X2WJ/qLPKuHcqqdz+3Z/YG+iMIibVTz9M0nBSLOol/YEofjEnaIFmIa970rx XxRwtC3h0tz8dtrMSfWcea7dOFNuBDnMc0Hae4smCLuIZSn0xuLp2ubip3A1uLsNqg9A N3iQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723196506; x=1723801306; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:date:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=d5iX1/IG6jtHq1Cd/wpVRMCC2IDAUkyqowaJYsLDHSM=; b=T4MuJ6pwfKrmRZeHylko9IMiw+1G27bzAAAcek1NJmI0UIpCmUEk6OHhTbDMSFrTCT 4kB0S82aJDpVyvAmHgIZS5539LFOjBHc7g97WMPlsVgPx93AQ/kyH5f0EF4iPw/vLLUA FVX4fIgWWOkncyYJ/nirDMAWHrUSqJUBfn/nspU2fR01IMPwvDgfDbHsYXjX6HUkwZrI +KrxuvS9EK2Skuvg15+qqTOWn/JDWUCAlSWalr1U7maYRhccZ1Gv1XTMyfxFPnUdCHUq c74MgnXDGSSuP8wuVDv+SEtxwaAJivKR/PHHWIqV4c5rlx1imIgw4a6Gxt/p+xEkfQrp gU9g== X-Forwarded-Encrypted: i=1; AJvYcCU1dnMSGYcHCQSOIobh5KggPIsT9YyX8klBVaYlGKpvQUE98Uy3i4Nz+YKCvHpdE33y34CKuYv9c+c3Hl5IvvubzE0= X-Gm-Message-State: AOJu0YxlUWOt7GqOTFSA6B13iidcc4TmugbOnshc3hyIIDE/oo7KUFhP 7Inoa9B6CImPuJOZ04A6WAgT8hQ4DGXQYeHZAaclJynOQBnU8Ac+ X-Google-Smtp-Source: AGHT+IFo2g3pXbdsimxbhg0VDttWVuBRTxu5yRyePmJxDoKwFTR3KGVq1wuiMjYaImqjpz0HEpEOig== X-Received: by 2002:a05:651c:154a:b0:2ef:2c86:4d43 with SMTP id 38308e7fff4ca-2f1a6d00286mr8914121fa.3.1723196505901; Fri, 09 Aug 2024 02:41:45 -0700 (PDT) Received: from pc636 (host-90-233-216-8.mobileonline.telia.com. [90.233.216.8]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-2f15e1adf63sm25321541fa.40.2024.08.09.02.41.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Aug 2024 02:41:45 -0700 (PDT) From: Uladzislau Rezki X-Google-Original-From: Uladzislau Rezki Date: Fri, 9 Aug 2024 11:41:42 +0200 To: Michal Hocko Cc: Barry Song <21cnbao@gmail.com>, Hailong Liu , Andrew Morton , Uladzislau Rezki , Christoph Hellwig , Vlastimil Babka , Tangquan Zheng , stable@vger.kernel.org, Baoquan He , Matthew Wilcox , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [RESEND PATCH v1] mm/vmalloc: fix page mapping if vm_area_alloc_pages() with high order fallback to order 0 Message-ID: References: <20240808122019.3361-1-hailong.liu@oppo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Queue-Id: 4235110000E X-Stat-Signature: uo7nt6xuc9ppxq5gsuuuxtq893bjiewk X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1723196507-743528 X-HE-Meta: U2FsdGVkX1/PRIEMU1uI45jJB6bzNMBpyM7hVcobKfBpvgoHJbDqdgM6CBSEF8/1JGkD3fAdpKhIGJY9UkZQq+qtx0iju70Bw5hKoGYf8d37fHrYaPwaNN3/iGoLQbJw7Ysgodr2XAIvMfFvRW7YA+LwayB+MFAprcgHqx+Hub+PFK7ns4oifhvTTJSsMtNaUF2zCGCC9Ul+U/Y7+MchnzxVf9RMAAuVulWxb5bsciEknTc0CRETrit/kHOJJ+7kU7v1STVkUilUtWTLyDxv2opKGdISNdg+Gz+L5FlnxAJx6wpcGNMKl6qE9oVemLSTIgGqFuUtx1OD9ufYZByeNLAE3GRcXhOShe5PKwJsliespYAcorRbvwjCjY4DIJhysfK9l451TYb7h8nJkfZvzb65wG7IQlbyl6DIX4UzqtNgxlmv5xI7iTmrIlsoaeneddmO61OXEjBZEadOrqhj15TH0RARAWf159TR4gkM1G1syOP1dkCz5T17e4JYH9J/+WDC9rzaOROgAwc7Iqkv9lI43kSCQWps0Q9O2z9K4eteP2RtO2MqLplXsr/YfhZWwJLEE0hJMFBwoPuS0HBa7w3YQSaIudQ9Ec/aW05Fgduh9XGhfJKaFjbnY6Kuhp2Z2sz/aBPxZjM6P7fg5m9YLMjKaybVeLTZn6s79o0vomPJFSCFhmVt9o3MyAGvLEe0PPJKkm0lwn3RT34g5lgl/qXJTT0Henl0WtiU/RJexXxvrHmAJa018xsScGiWxYFv4mWbqm954Okhcrt846eeE6PfBkG0EfihyewjkBBiCk9sFaf1ukDze6PDGHUorBTc5ETJUtrG1MLt6OQc0QMqoPw0Wp6OniV4SR5Zg7xkz/YEd2NYiHyXEBsuQYPFUIY+CDae77+kbCcEA3vWx4BQ4s+Z3A/2+WIMBwSBK/7BAUZBc0QAfROEfsX0Zfsy+X29iT5WZSopl+fl1G5C2XX YDdGteB9 mrgB5etKFboZy487PqOThZ8TQdM2/0eLe9erUJyGpQvRLu/0m0ue+dfWHIXhtqR7zIKB2nMyjNJZF7KST/d55yAtHzH+gFCVUuTIy82Pm3nijgTeUzzqN+zZRycqXfhfbzxf4GraMgdT4/Zm4ypzEmpaAOwbEnlyxladcVstssGvlKRMptdCgQoz1hTWagVKx5okMfhQ8jzS+/mo3KNF2LJyJzaG1UQgPdrA/MBays/x0JvWhyQEQ3kdMzR+YcQ+TV8E4W/AxEHQ15UKeQFqGqDg/S+GaykJxpTNTaEd1RoXDAVZudNrCwzbYfkyYmHXR5etzH065S7GUYNIg0asrnw25NH6qdWZmqF9I45z+M3rueqG+KXBQK2xzpZzH+SmNSB07mJBcYciFDufPgwp2AKZsSmNkS1bkdnG5Fkgn3/kf0pg3utjOQLqHJm6cN7ikEP7RTPb4dZfky0rkOyYMPjQgN1hn78QhQImqIwet9EDtlki2hf9tkF1SezKni4gl0Rci6NMXA7dHTicTrH/BtntzkxhIwZI0mzA5Wn5X7bHaaJazxJICw3MGBnH57+W+q9G19O/LxOuqgRzVxvNJJuzsxsLxC/wS29GMK/xYtQUUtOzQZVvLX1nyiP/sStixjJhKo4LqCUlr+dptFziy4YSApJysNo7L+71wZtaMtZblpxFPVdj5w/4+r6rUr0BahKI5bWC7JHxyEHGnJcK/qaaqOwiRBrUx9C/k 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 Fri, Aug 09, 2024 at 11:33:06AM +0200, Michal Hocko wrote: > On Fri 09-08-24 09:05:05, Barry Song wrote: > > On Fri, Aug 9, 2024 at 12:20 AM Hailong Liu wrote: > > > > > > The __vmap_pages_range_noflush() assumes its argument pages** contains > > > pages with the same page shift. However, since commit e9c3cda4d86e > > > ("mm, vmalloc: fix high order __GFP_NOFAIL allocations"), if gfp_flags > > > includes __GFP_NOFAIL with high order in vm_area_alloc_pages() > > > and page allocation failed for high order, the pages** may contain > > > two different page shifts (high order and order-0). This could > > > lead __vmap_pages_range_noflush() to perform incorrect mappings, > > > potentially resulting in memory corruption. > > > > > > Users might encounter this as follows (vmap_allow_huge = true, 2M is for PMD_SIZE): > > > kvmalloc(2M, __GFP_NOFAIL|GFP_X) > > > __vmalloc_node_range_noprof(vm_flags=VM_ALLOW_HUGE_VMAP) > > > vm_area_alloc_pages(order=9) ---> order-9 allocation failed and fallback to order-0 > > > vmap_pages_range() > > > vmap_pages_range_noflush() > > > __vmap_pages_range_noflush(page_shift = 21) ----> wrong mapping happens > > > > > > We can remove the fallback code because if a high-order > > > allocation fails, __vmalloc_node_range_noprof() will retry with > > > order-0. Therefore, it is unnecessary to fallback to order-0 > > > here. Therefore, fix this by removing the fallback code. > > > > > > Fixes: e9c3cda4d86e ("mm, vmalloc: fix high order __GFP_NOFAIL allocations") > > > Signed-off-by: Hailong Liu > > > Reported-by: Tangquan Zheng > > > Cc: > > > CC: Barry Song <21cnbao@gmail.com> > > > CC: Baoquan He > > > CC: Matthew Wilcox > > > --- > > > > Acked-by: Barry Song > > > > because we already have a fallback here: > > > > void *__vmalloc_node_range_noprof : > > > > fail: > > if (shift > PAGE_SHIFT) { > > shift = PAGE_SHIFT; > > align = real_align; > > size = real_size; > > goto again; > > } > > This really deserves a comment because this is not really clear at all. > The code is also fragile and it would benefit from some re-org. > > Thanks for the fix. > > Acked-by: Michal Hocko > I agree. This is only clear for people who know the code. A "fallback" to order-0 should be commented. -- Uladzislau Rezki