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 E7710E77179 for ; Sat, 7 Dec 2024 06:35:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DD4BE6B0321; Sat, 7 Dec 2024 01:35:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D84386B0322; Sat, 7 Dec 2024 01:35:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C730B6B0323; Sat, 7 Dec 2024 01:35:00 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id A8D3F6B0321 for ; Sat, 7 Dec 2024 01:35:00 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 6123A160111 for ; Sat, 7 Dec 2024 06:35:00 +0000 (UTC) X-FDA: 82867199562.03.1A8FF8C Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf14.hostedemail.com (Postfix) with ESMTP id 1BE34100008 for ; Sat, 7 Dec 2024 06:34:38 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=VxHP0ZI5; spf=pass (imf14.hostedemail.com: domain of akpm@linux-foundation.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733553282; a=rsa-sha256; cv=none; b=K5UQP7jdNh1231blUixXNxxmRYWesJLeSocQAmdVTjzjD2v6HsfsMi1ADgyaBlZ3VPfSef TTOGOsCzQJmsJBjpFJZHm+FBhfpFYJrxtQSfKvAIMAJszw2LpX3RESXYnujA1IhF8Wv4Rf /uzCM3IcfcVVhaniesc9qBOObA9v6v4= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=VxHP0ZI5; spf=pass (imf14.hostedemail.com: domain of akpm@linux-foundation.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733553282; 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=yL0VRUc+RYvJfUtMx+j7t3243eh+WqNfq+4Fs3n7bX8=; b=f+w0+Bo2JxTrldF2gjRkhdYb46j8nrmt0EkOy6AS4vQ+/6J1zgWaWN/tPtXcd3goZzljeJ P2sX92kkSH9EJJLPPhhuIIAhdstdPd9xOIG5SY03KWWxtfKxF3sbd3y10O0FVO+vT3D4fG XWA2zYKAoFoJEb+WeLpQROOFF/jwYgc= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 00C3FA403D2; Sat, 7 Dec 2024 06:33:06 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2D37CC4CECD; Sat, 7 Dec 2024 06:34:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1733553297; bh=Npf+MyggO9HZ9wKwgppsjzrSH0WCmQ6OIfL0cWGGxQM=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=VxHP0ZI59FMs0i6Orgyt9T7qAzgZLpC075dK10CBdHIZ0zM7JBtYfYuI5Lr/J1w0G IsCqubWYUxuTCW9EUgEvvfR86nU7rbb2BtAvJe8u11d80Jkgfa0vmxArsjt4sXbJ4a v+6pCzELHlfSKf+5eoxLNHd6SqzZEYkkb6+ZGyAQ= Date: Fri, 6 Dec 2024 22:34:56 -0800 From: Andrew Morton To: Kefeng Wang Cc: "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Christophe Leroy , Rick Edgecombe , , Yang Shi , David Hildenbrand , Ryan Roberts Subject: Re: [PATCH -next] mm: don't try THP align for FS without get_unmapped_area Message-Id: <20241206223456.255b00b35cb554987e48daae@linux-foundation.org> In-Reply-To: <20241206070345.2526501-1-wangkefeng.wang@huawei.com> References: <20241206070345.2526501-1-wangkefeng.wang@huawei.com> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 1BE34100008 X-Stat-Signature: nmm5gfnp6gx1byj3turnk5xubm9zkpnc X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1733553278-838906 X-HE-Meta: U2FsdGVkX1+jCaQf1kapU6cXOHXo77LjvoBIIiR320Qtjd0OQARsxMSspMHBFheTmTQz6/X5HLqpiRRnND4UuAEI2/4Ql0/twuyxZtc7oxDTk0nVW7TrTYx2TgQctcRx7POhHc2NUUI85s//O2MtYYkOR6ON3C26iZEtKucV4kaYD/i4c5K/kAO+F/6RsciT4/BvLcGpmRjb0to9Y7KsnevmvichYSq6QYouUbwQTGroTIPsyAgDS5DWYj8J/d9Hd3iCtoL7bO8LxIS45kVuyCwNmnpNYw9FPkEtHeQ0UJdI1du6/nZLi/Q7u1WBOO/CKKERaJ+PMS6cVKF/nvnDoNU3VYrZfMpi5SqDZWPkLEsU79/H5sAC9tAJ1o7osaXajHwFo+PFjN3FyHZlCnC/ZWw3AwLR2U+93p8g34uMxuFa4hY/BpwgSHAsnG2TnE7ri59NshQmyrH5vWVqghk5Oadt84yqDC5Rg/W6x2l5MyKkIffgkYVlzUTtRiYpPKdhlNSjnGH5oe3S/giZ+uA1w220TNvTIjDgGGYwNrK4Fpmdx2nEgqv1oRyW/mEOkIkJ61oBYPh4rEaiAZY8b4VncVESaVf55Sman7i2FWz1pq22BMv+fnLArmEAVV7eplZ7c8yMxyvvN6e1ot9fVIOlNKvB0fpIDSBKJ8llvzlW3hxHu53GOewI+flx1cdgQrGMbWWcIOCgO4Q2Qq9Q8B1WjWKgAwvb2oUbGjC1VfBB/rpQw09aREJosjpZhNPu71RHgcjejnIm+LAvDHwYtXH08I+c4U93xnAQeyhEaDQTPIx6oBrHxkQET0MkZVxdonMacBtnuXsDq+ReqOyqJn98Rz4z1ibo/9mNB6M2ykn+XXE+RMPAF8yxSzr2JCUMquT/KJs0krwZsO/frTCO2dKiA+5Na7AHFWjeVa28phILpnuJtqGLVPNTmDUlibYyvNr7RMAgJ9tmiL5KlVJRE08 VtxmytM4 HQOtVALLmqy1a3OrovlrWGtW8QNvY4qSLB6vpWTuYp7VSrN85gI+b4tuksq3wIUKScZWY6qivY85l7BcCrTe9x5GNPGi8E7zMsAv28wqh6QS8PNHMQjbryrvSNWSjLHzbh3qpy/3tcNV10xzRgrwO3SuXdgQY3OcZR4NIUMPVtoUTPdFdTm8XB/g2p+JMypBVlTwUH02r/TL/0zxhSMx4byCa9za8OUWkPeO6FH6kwp4Pt36RzUuHErtGemDzpG7aC4VfEA7RLuWPH0Pi9M/M1t1Pe0+7tR4QDVzVwCZJJ0ou9DcQMJ8J/hmvOvq25pL/eGtQ 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, 6 Dec 2024 15:03:45 +0800 Kefeng Wang wrote: > Commit ed48e87c7df3 ("thp: add thp_get_unmapped_area_vmflags()") > changes thp_get_unmapped_area() to thp_get_unmapped_area_vmflags() > in __get_unmapped_area(), which won't setup get_area for anonymous > mappings, but it leads to always try THP align when file ops without > '.get_unmapped_area' callback too as the get_area is NULL. > > Since commit efa7df3e3bb5 ("mm: align larger anonymous mappings on > THP boundaries") only want to enable THP align for anonymous, adding > !file check to fix it. The above is tough. I attempted a rewrite, please review for accuracy and completeness: : Commit ed48e87c7df3 ("thp: add thp_get_unmapped_area_vmflags()") changes : thp_get_unmapped_area() to thp_get_unmapped_area_vmflags() in : __get_unmapped_area(), which doesn't initialize local get_area for : anonymous mappings. This leads to us always trying THP alignment even for : file_operations which have a NULL ->get_unmapped_area() callback. : : Since commit efa7df3e3bb5 ("mm: align larger anonymous mappings on THP : boundaries") we only want to enable THP alignment for anonymous mappings, : so add a !file check to avoid attempting THP alignment for file mappings. Also, the changelog failed to describe the userspace-visible effects of the flaw, which is basically essential when fixing bugs. The bug has been there since 6.10 so it would be interesting to learn why it took this long to be noticed.