Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp653438pxb; Tue, 2 Feb 2021 14:28:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJyRTwj1gMYgNVMr608YLqo0RXh9w6uFtshkX/VjS8DgAks7wuHZQgMffni82Zm5LNfxjM9m X-Received: by 2002:a17:906:e203:: with SMTP id gf3mr167995ejb.117.1612304886880; Tue, 02 Feb 2021 14:28:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612304886; cv=none; d=google.com; s=arc-20160816; b=LfpVKHqEyZWRXxEL5T3lpL+uBKSAYIyeRjLA/eTpmviIKRK17xmvo7jKhOkJYsX2bx beBdTrL2Axx9wt2dqZoW95U6J8IJUEVbAfAUiCyTeHslVknZjQ6eiP5Lhi6PiIyBEA73 BLaIwV1RrL+Bw8aPAQvKz8nWCtFE+QiQJb+2zmjNkSl4isrSo4YlcTtO/C4tE6NpCJmb n52IgpUYsGpEUIiwK3ydOkr8yT7x3RXXVcMKHma83TbRYh5Qoy7BaORh6Co2oTBJ/RPX fr8raT7Eki708HLtjr414zSqe3WZq6vwkaLa6vlZtbPv/wvsqWHB82RrUurnB6JPd5Ux +FtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:subject :organization:from:references:cc:to:dkim-signature; bh=p9WVcjtJGSRM6w7F2m39UE8iZCliMcHMPGNuV986qrI=; b=jfewgOw9w8TmIx6ZDHGj0LD30Zv+lkr3DjzdJAUHF04TkNAiNZ3INRq8mYx8hg7O4a FG6msgludKHLbb+4U9wEbLesBW+ip+HBna2MZ/VJQ3pqiiMV4j2vKBOFIpBwrxvZk9N0 xiRCBE0eG1Re4tV8OC1MAu9e0iaP10JC3QW3H8BoazKmRo/fqU1IcZlDTFAt7foucjQu tkoWVmGuvJkXXjulQXtKixYt/df7hCr9C5p7CDwcAQuHvGzfQAiHoOaO283Opw91sOD7 izhv2G0lmaeBKWdYvKSR8qELhAUFZL33lkks1MV67RBawGAb/v37b3MXZR9HJ8ASsu/S Rong== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=OQo3i10N; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g27si67446edf.244.2021.02.02.14.27.39; Tue, 02 Feb 2021 14:28:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=OQo3i10N; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234677AbhBBOqf (ORCPT + 99 others); Tue, 2 Feb 2021 09:46:35 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:23440 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234776AbhBBOoU (ORCPT ); Tue, 2 Feb 2021 09:44:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1612276974; h=from:from: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; bh=p9WVcjtJGSRM6w7F2m39UE8iZCliMcHMPGNuV986qrI=; b=OQo3i10NkK88wXMNXEXmca0BBgYvMgB4aFbJSf0m52DHmfo1XJm2rYtfET6sk+Vc4FE8bC dw8U/PVY0/csMZsHyU3g1o+hhwBOxQAAIT51769OIMxg5xCAw2KRFVBDHOP0s+PC4M6iUr 65LJvmG5s0DHRvV5gms9g+KHUTiST+0= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-521-8AQi4yF_NHCuVEWiuakmOQ-1; Tue, 02 Feb 2021 09:42:42 -0500 X-MC-Unique: 8AQi4yF_NHCuVEWiuakmOQ-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 46BB9184DBED; Tue, 2 Feb 2021 14:42:36 +0000 (UTC) Received: from [10.36.114.148] (ovpn-114-148.ams2.redhat.com [10.36.114.148]) by smtp.corp.redhat.com (Postfix) with ESMTP id 36D6560916; Tue, 2 Feb 2021 14:42:28 +0000 (UTC) To: Michal Hocko , Mike Rapoport Cc: Andrew Morton , Alexander Viro , Andy Lutomirski , Arnd Bergmann , Borislav Petkov , Catalin Marinas , Christopher Lameter , Dan Williams , Dave Hansen , Elena Reshetova , "H. Peter Anvin" , Ingo Molnar , James Bottomley , "Kirill A. Shutemov" , Matthew Wilcox , Mark Rutland , Mike Rapoport , Michael Kerrisk , Palmer Dabbelt , Paul Walmsley , Peter Zijlstra , Rick Edgecombe , Roman Gushchin , Shakeel Butt , Shuah Khan , Thomas Gleixner , Tycho Andersen , Will Deacon , linux-api@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-nvdimm@lists.01.org, linux-riscv@lists.infradead.org, x86@kernel.org, Hagen Paul Pfeifer , Palmer Dabbelt References: <20210121122723.3446-1-rppt@kernel.org> <20210121122723.3446-8-rppt@kernel.org> <20210126114657.GL827@dhcp22.suse.cz> <303f348d-e494-e386-d1f5-14505b5da254@redhat.com> <20210126120823.GM827@dhcp22.suse.cz> <20210128092259.GB242749@kernel.org> <20210129072128.GD242749@kernel.org> From: David Hildenbrand Organization: Red Hat GmbH Subject: Re: [PATCH v16 07/11] secretmem: use PMD-size pages to amortize direct map fragmentation Message-ID: Date: Tue, 2 Feb 2021 15:42:26 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 29.01.21 09:51, Michal Hocko wrote: > On Fri 29-01-21 09:21:28, Mike Rapoport wrote: >> On Thu, Jan 28, 2021 at 02:01:06PM +0100, Michal Hocko wrote: >>> On Thu 28-01-21 11:22:59, Mike Rapoport wrote: >>> >>>> And hugetlb pools may be also depleted by anybody by calling >>>> mmap(MAP_HUGETLB) and there is no any limiting knob for this, while >>>> secretmem has RLIMIT_MEMLOCK. >>> >>> Yes it can fail. But it would fail at the mmap time when the reservation >>> fails. Not during the #PF time which can be at any time. >> >> It may fail at $PF time as well: >> >> hugetlb_fault() >> hugeltb_no_page() >> ... >> alloc_huge_page() >> alloc_gigantic_page() >> cma_alloc() >> -ENOMEM; > > I would have to double check. From what I remember cma allocator is an > optimization to increase chances to allocate hugetlb pages when > overcommiting because pages should be normally pre-allocated in the pool > and reserved during mmap time. But even if a hugetlb page is not pre > allocated then this will get propagated as SIGBUS unless that has > changed. It's an optimization to allocate gigantic pages dynamically later (so not using memblock during boot). Not just for overcommit, but for any kind of allocation. The actual allocation from cma should happen when setting nr_pages: nr_hugepages_store_common()->set_max_huge_pages()->alloc_pool_huge_page()...->alloc_gigantic_page() The path described above seems to be trying to overcommit gigantic pages, something that can be expected to SIGBUS. Reservations are handled via the pre-allocated pool. -- Thanks, David / dhildenb