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 E3F73C3ABBF for ; Tue, 6 May 2025 09:42:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 213246B0082; Tue, 6 May 2025 05:42:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1C31F6B008A; Tue, 6 May 2025 05:42:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 08BD76B008C; Tue, 6 May 2025 05:42:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id D95266B0082 for ; Tue, 6 May 2025 05:42:17 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id EAF3C1C8591 for ; Tue, 6 May 2025 09:42:18 +0000 (UTC) X-FDA: 83411992356.11.C1FC01F Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) by imf02.hostedemail.com (Postfix) with ESMTP id 043D58000B for ; Tue, 6 May 2025 09:42:16 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Uot+wNTg; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of urezki@gmail.com designates 209.85.167.44 as permitted sender) smtp.mailfrom=urezki@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746524537; a=rsa-sha256; cv=none; b=bxMZ+pJnMVCZUE5ZpSwubLh4v5+i1Jaw+GbTxSmhTW7YD/Xm4fXD3cbz4sXT2kxb3J4jFU RckGV3OWzJJ61+/eKNz1Xfl5jECnQZ+d9uHPf5RY4amKv39HoDnT/ftYtQLF8bMFu/s8Td O9EpDMJt0C8ybmq4ebfzy89ncnOVzdg= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Uot+wNTg; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of urezki@gmail.com designates 209.85.167.44 as permitted sender) smtp.mailfrom=urezki@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746524537; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=DnYgIEbZbM7AEX1GIIDCB7iTsvQrOHQFzeVr1mPAjRI=; b=GYgu7gDKtfxCMLVyG0LESR/HSDXUyOj5oRByg+3AqaLAi+j+7Du37ody7HmIwnIiRFInaX +ftA+hq0+CEe55rNiosQaE4AMjwMrrJJrSXbDXl0WqZWJSLK3+hBPpDkwb5tav0d3Moi3H 98AK9WF+quC25GhgzTqoqP/GL7WzEFI= Received: by mail-lf1-f44.google.com with SMTP id 2adb3069b0e04-54ea69e9352so6448186e87.2 for ; Tue, 06 May 2025 02:42:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1746524535; x=1747129335; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:from:to:cc:subject:date:message-id:reply-to; bh=DnYgIEbZbM7AEX1GIIDCB7iTsvQrOHQFzeVr1mPAjRI=; b=Uot+wNTgvwtf+4yHOWu3tUE6f8rN1e6yLy7IMSnE3j0tgYIKqEhaRpPPLdUvZaOevi DMVU6nm12FDzQIHUWxCj4Y2VDrj4CJsFVTFUqhZfXUMPHKi/RpvyFmKMb9PrRQzri6yd Kd+bA1KCAhvShUBWbCbTr/c6IEwED8p2ehzf2xsJNHRUQKNt0JG2eRIDWYILFXr5i1/M UkwlFtJ2bQ/Ae/mATXF7zYs6wSjSu9VefyaMgBi2U5ODHNMNzVtOVXgD3dZS2Tcc2Q36 OKYOExE19cgjwEx7UU6BpAj0wKoBoo8q0Wnvxy/AjcvrIUULDjt+5jzgrQi79tI0gVr5 MMvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746524535; x=1747129335; h=in-reply-to: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=DnYgIEbZbM7AEX1GIIDCB7iTsvQrOHQFzeVr1mPAjRI=; b=h8SlN30069vsmZSf15zw31uNlqiL8DYlsO3iR9nOhSKRZgiQ66VKYwSYw5TvtR0BKu 3bjFkoEDcz/rDVXWXYB2MfcQ/U6+AIt/uA/s2KtI7PkErkTtiUJgr+cbDbnOH1VKy/Ck FKkk1+2nGU6eR5TZiW9Rfh3BaU3ufqych1m85EgDxKF+piOnAMCxAd5elymf5DYBCMVQ dPq6knheX952G72xWDy8vNk6Flmdyfok1jrzj5Hs1uhiErbHyhiSYpGdPlItkGga6FUA R7iRS5+WomMTBLYCXyU3tJU0wLJVvYZAelgnfg/Nh94Jq2J9UD3JuGgCb+6ijcfMRO44 MQfQ== X-Forwarded-Encrypted: i=1; AJvYcCV8qLjgAGudKl3GNcdBhIBHuFBj8sdOLPTlNesGIEFHw2eLR56d0Z3lNLVIURl/Pmv7NF59eFfJ/w==@kvack.org X-Gm-Message-State: AOJu0YzyVbd59sFlfhU4neuYwWa3CkhnwTxbzPZBbsii3JPX8y8kDK1f WSBfGLLwk/a+ZiNKGdYq4Og8QmCIqza09ExkE45gooj3VQPayBj7 X-Gm-Gg: ASbGnctnHf1l0uNotC5a3aDnffV0wCt1ZuzlEIESTpsAthOsNsAeoiLx4f6YRtqMma3 c2zGGhbwRLuwMpD/IuwxmiA2MqtUY6Qlet5KXCl0NHFrCBs1j2jfaGjo7LAgxSkbfAZYmSrgUHB qvZxlYe+sqOP9TCYANV1skqSqnvbhNd7YP/pMXFmZORS4GEngqfhgpIgP+oLB9irSo9FhGxA7PS kHJ4V3DoIjTzvOrwxVb0KC1rCOx6qynNhELtXfF2BCPl4ykVOymsQbpuWPUSqcVb5kktfTNU4h3 otHGAHxTgl0AU/NtnaCxsCoaMuVqe+8kThhNvY8/HB/nFVPDXbJaWdPidc8ziYvJOXXY X-Google-Smtp-Source: AGHT+IE5oihn/tybHKHZFV6TFYH6vzBVfOCZNSggfeKTY+cJcyX8A2k/xGaUzO6rR+eZ7R/hhrCsPw== X-Received: by 2002:a05:6512:1093:b0:54a:cbfd:5517 with SMTP id 2adb3069b0e04-54fb4a70fe0mr675574e87.53.1746524534762; Tue, 06 May 2025 02:42:14 -0700 (PDT) Received: from pc636 (host-95-203-26-253.mobileonline.telia.com. [95.203.26.253]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54ea94ee6ccsm2001951e87.122.2025.05.06.02.42.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 May 2025 02:42:14 -0700 (PDT) From: Uladzislau Rezki X-Google-Original-From: Uladzislau Rezki Date: Tue, 6 May 2025 11:42:12 +0200 To: Johannes Weiner , Vitaly Wool Cc: Vitaly Wool , linux-mm@kvack.org, akpm@linux-foundation.org, linux-kernel@vger.kernel.org, Nhat Pham , Shakeel Butt , Yosry Ahmed , Minchan Kim , Sergey Senozhatsky , Igor Belousov Subject: Re: [PATCH] mm/zblock: use vmalloc for page allocations Message-ID: References: <20250502080156.1672957-1-vitaly.wool@konsulko.se> <20250505142949.GB30814@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250505142949.GB30814@cmpxchg.org> X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 043D58000B X-Stat-Signature: jg89dubm8zajumuk8jkcibicrxoukmad X-Rspam-User: X-HE-Tag: 1746524536-829485 X-HE-Meta: U2FsdGVkX1+RD6a9fzRJ3Wfde7cp/72+SHE/1xhI4NMSZmW3+l9sQdl8Hr7Yja6PGgHw4HqhnFbX/b2/lij+mbgFqyK6p8ZRj+2BZ/iKm61/en/hec3Mp1KpbmZpqoRJox+dhsenpnbe0+xMX5jvEnlU1feMMnrarsMUbA7QGIMvyD+OhtXPOOBUvEEKuMaRCjW5qj2A/p+jbi7i/XP45cZoLEwkELWrXdolw3aPr4TiCskvxofNH0WZx/CTsEz8VasTlDUE6ka2Ju8l5zSypUN/wI6SPFLT6Yykim55BF4JNGt5qudbSz2Wg+YtQ57bQwgsJ2GBYLixJS6MoUkyTUK3LQebGTAtFMSeo6NOeMoXRMDb3hv2zWGuU7MwgSlLu9KSElrJ/mpMDqxdXBwAjFGOgsurZPRzlct+Jk2EqPZIpte8I2C3PcKHf/SIxOih8DP0qDFT7L2a9d7w68Q9hhhMBzxKbtCjrSNWu7Cr7WoAwW+TSh3XY4oCTz5Lnb5uK3wcrUQUp9icBbs8lDUzeYaIxgfzGsw0FSRf6HroWSVhU71EkVeAEzTl8dme2nz6KbWyV4pley68jSEohsmCflAfpT18bgDmTPB2nPfqoBEMNBUN7L/6lTogDh7B44nBzoDLgvF5B2ZkuXZ/pVMZDo0XtdNEIVhpBmAmvFbEG91Bh7cE56uA89HGh+ze45kJU+nv34hJCkX30uJDER+ctonlzzy+/djCHnBxhs4mU9upq3GzCHNz6xWaGDlaz836dnRqfIuu43c1m35fZL7m8UeRs9AxP1TGFFYVjbfo6/2A/hSGZzLAQtxqF2UkAMzYpQi+PEqtbsvb68HG5iXMFqNB5XXPm2sM22l5Wqgexqyoaz8XeSwTIRM3P1ZcoGliEgokq4ea1RKUu0sdf53t/mHWYwb1zPGvz9wjC3MOZYBdG1V9TdoX+l8ZFpQcjPTYzaVDnpEFKFNrGezBYP6 SFdrK1J5 B2n2NrW0w7j+NVxtDmW61c+aO1pdZJ5MtfVJNi1TERL/JcDn+ozIYifqMiW/jM5TzxJUc2xRPqcyMHJ6gciwV30P8WBhdoevJAQ7q8wtljoScrScZh9GzjkTka0Q3/G4s232GuD+QQu8AwsgzbV5IjQNh9Cvhe4EWvxsYCgFQB30/dnwYzRvanK/lMrZPprJA5S9NiOyMH+0E5HbdJrCTwbz2AcbWhKxkyfQkT7jBp/rDy1x0ifnNa6Gu+5+xUxxaAZeiS0asBsRR57oiaHIQF1bgBMjuFgL8zNVmtnr9XxGSzRpLVpP7KiQ9XbtSrLHM4w8ui4neX0inATGYX8wAHP68uapRkjKOmXcWGGk7mVkVjQME/flEtzIQBa6SGKnf73XTTZyW1FMDCaw= 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 Mon, May 05, 2025 at 10:29:49AM -0400, Johannes Weiner wrote: > On Fri, May 02, 2025 at 10:01:56AM +0200, Vitaly Wool wrote: > > static struct zblock_block *alloc_block(struct zblock_pool *pool, > > int block_type, gfp_t gfp, > > - unsigned long *handle) > > + unsigned long *handle, > > + unsigned int nid) > > { > > + struct block_list *block_list = &pool->block_lists[block_type]; > > + unsigned int num_pages = block_desc[block_type].num_pages; > > struct zblock_block *block; > > - struct block_list *block_list; > > + struct page *page = NULL; > > > > - block = (void *)__get_free_pages(gfp, block_desc[block_type].order); > > - if (!block) > > - return NULL; > > + if (!vmalloc_small_blocks && zblock_get_order(num_pages) >= 0) { > > + page = try_alloc_pages(nid, zblock_get_order(num_pages)); > > This is broken in several ways. > > The function is meant for NMI contexts - the "try" refers to > trylocking the freelists, in case whatever got interrupted was inside > the allocator already. This will fall back to vmalloc unpredictably. > > It also doesn't take a gfp parameter, which ignores the zswap ones, > and substitutes a set that doesn't make any sense in this context: > __GFP_NOMEMALLOC is counter productive inside reclaim; __GFP_ACCOUNT > wreaks complete havoc on how compressed memory is charged to cgroups > (double charging the wrong groups for shared blocks). > + "&& zblock_get_order(num_pages) >= 0" is always true? A fallback makes sense to use when order > 0, IMO. Or just stick fully to vmalloc. Another option is kvmalloc()/kvfree(). -- Uladzislau Rezki