Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp3288346rwi; Fri, 21 Oct 2022 14:19:33 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5FC5eyz8/2v/7dWzHlEC0oGG2PPa/QNfM8p8zON/Ga9AOtQO+C3Uc3bU/vd5j9u+bqXRD2 X-Received: by 2002:aa7:c041:0:b0:45c:1584:23db with SMTP id k1-20020aa7c041000000b0045c158423dbmr19371142edo.184.1666387172911; Fri, 21 Oct 2022 14:19:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666387172; cv=none; d=google.com; s=arc-20160816; b=gSuWf9OJGmDUb1+Kdmu+qAeg8GcAx8LxPSmLj68H88ny0gZKsWFGSPJrApRK7dwzdu RFbyxoyeloL4d858WYei+l7qP7uH1Gxib2JImoImjlfv1Hj5jT4MMlPCXV6tHP1U12cn T9rbVHzw9sE61yE+NekaOQeLlAZeMkv0Y7kWNjGHvn0yFZW7L4uYVSq3pQjopsPtks/S 22aua+jCprIA3kQthiyl1uFJuaq2QoID+dlcLe3J6zD94V80py5a+97asUQaWWsgVEtW i405FfUMxFxMglYc4GA8L7nXbaQDmhbuSbOxuybv7M/sg8QBBKVbkzVuPV/oKPn90Cc2 yttg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=vSUYSsVVs69MXg4Zail5fN9LKVMtwxPEFEZAyniXFvw=; b=zdTugt8nfjSc/uv/A+k63UL2XdpIP7Cte69PR14eQaYqjyFvpkmh+iX99m6LhgE8rj 8ALvRyiXmkMtN1ny50p+qGtzAcVp9fZ5IbQeRBl5PvRKUM0XINboYz4IpHaklswhuM1K tr1SGMnTIQPgD8cfZIHKeMG3wS0wIsGaLZAw2Xn1HMLZTV9arufVnDsJRvUjxfvWpCKu 8vQ71e298TAbpSpD/GGu4d9ED+WBkgpm88Hc4cdGLvngNXPO6c/0hoc6/z90Of9h4S7b bKqK2j/FdfKq/JGBq5QsgNIEGp9/GcLhUmOHFcOdWyFdXbbtEZ1JMpHkvpaZHxnR4e2Y 3qyg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=korg header.b=NLkzSlyP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nd27-20020a170907629b00b0078331a3b123si23341494ejc.572.2022.10.21.14.19.08; Fri, 21 Oct 2022 14:19:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=korg header.b=NLkzSlyP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229565AbiJUUsv (ORCPT + 99 others); Fri, 21 Oct 2022 16:48:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59574 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229519AbiJUUsl (ORCPT ); Fri, 21 Oct 2022 16:48:41 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3C623103277 for ; Fri, 21 Oct 2022 13:48:38 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id F1C9561F0B for ; Fri, 21 Oct 2022 20:48:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 326A3C433C1; Fri, 21 Oct 2022 20:48:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1666385317; bh=BmGPpt6ZZmS6tEKeRWOGR6TymKZu3px6XDlXoOZvO54=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=NLkzSlyPq+qlpzvyyt31uOBvLLNUIb7e79iWRR07Td0MCWazlH4tj+gL9ryGgMhnR QD+VJXjR9P7dhlnDE3uch/jDCamvlp+sosNWsc3v6sdfS8ciwz87zSqWyGGAH0JvBq i2VvfVrBK5AxyroSqECfQRmMXkBblqz8a04EtdJE= Date: Fri, 21 Oct 2022 13:48:36 -0700 From: Andrew Morton To: Rik van Riel Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel-team@meta.com, Mike Kravetz , David Hildenbrand Subject: Re: [PATCH] mm,madvise,hugetlb: fix unexpected data loss with MADV_DONTNEED on hugetlbfs Message-Id: <20221021134836.1fe0e8c8310eb247ce7acafb@linux-foundation.org> In-Reply-To: <20221021154546.57df96db@imladris.surriel.com> References: <20221021154546.57df96db@imladris.surriel.com> X-Mailer: Sylpheed 3.7.0 (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-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 21 Oct 2022 15:45:46 -0400 Rik van Riel wrote: > A common use case for hugetlbfs is for the application to create > memory pools backed by huge pages, which then get handed over to > some malloc library (eg. jemalloc) for further management. > > That malloc library may be doing MADV_DONTNEED calls on memory > that is no longer needed, expecting those calls to happen on > PAGE_SIZE boundaries. > > However, currently the MADV_DONTNEED code rounds up any such > requests to HPAGE_PMD_SIZE boundaries. Well that's obnoxious. > This leads to undesired > outcomes when jemalloc expects a 4kB MADV_DONTNEED, but 2MB of > memory get zeroed out, instead. > > Use of pre-built shared libraries means that user code does not > always know the page size of every memory arena in use. > > Avoid unexpected data loss with MADV_DONTNEED by rounding up > only to PAGE_SIZE (in do_madvise), and rounding down to huge > page granularity. > > That way programs will only get as much memory zeroed out as > they requested. If we merge this, we're inviting people to develop and test code on the 6.2 kernel only to ship it and then find that it misbehaves on 6.1 and earlier. So I think we should backport this. > While we're here, refactor madvise_dontneed_free_valid_vma > a little so mlocked hugetlb VMAs need MADV_DONTNEED_LOCKED. And if we do backport it, "while we're here" changes are unwelcome!