From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 87DF43A5422 for ; Wed, 20 May 2026 13:07:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779282421; cv=none; b=UtvvG8GQtlaCVpqQ2ySb5zAdOGFeJ9KSjRfFMkN+TAFsguN4GBGYOlgZkacLwHKw01P/UxWJYNOcYdlBoPn8u7k0Thw1yujRjtpvaSP7d9HTYsSQKfQlIKATmTmnQcSbsmU1WrYQpa2SB8Be2K3gAPmfcZaaDBSnO3WJU8oy614= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779282421; c=relaxed/simple; bh=3pE7FwjMhrFLZ047m9z+vjvMVv5nChg0KsI2fRW7T6k=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=aoD5hS+V/bOoaUW+Q9psgbyjm6RlDw5lsyIeVkEpP+DpE6Oq4e8U6unyKG0h/n3M4jVgAB7rj3mb+pRPr1LXqCNscPhLnmv2IqZmu6rNUrOs60md3S6LsyReFsVL/aXI5H1NWbAj6Y0YBVc2X0uOLXYHEcD9lG6gScSWyavpHkA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Bl7KNaDA; arc=none smtp.client-ip=209.85.221.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Bl7KNaDA" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-449de065cb3so4483237f8f.2 for ; Wed, 20 May 2026 06:07:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779282419; x=1779887219; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=5gunmBLjCjS6Gti7CYJba8OZxUFE4BT2dND5fh8wPSA=; b=Bl7KNaDA5U697R9al84oXEzdD004vzuEA67t/l8SkmJX75Dv0vBSAbry0XSED1nemE jVV5P8KSVbORS7mC6lODs1pqwyla5pLxaNsRNTFb0fAIl3OvIshGwB2S77pbNXxaoSjw 5jLyUw1tyIN+e1wFivhdWSahIYjeCoj/FXgH1DVKWPiXOqjqO9CfqTptnRdKO/bRu/w1 jnubOwniR0RNBTnHLBfT4OubIcJKmCMl24Oi8J/Orki0eR9skVHNZOyxL6maBSydfRVA sK09Os/4fCJE62+jTv3dCPbaZPSeqhJlnJ7UgCt48bFvidq9j7rd0jkU1y4t766c+Bv4 AeAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779282419; x=1779887219; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5gunmBLjCjS6Gti7CYJba8OZxUFE4BT2dND5fh8wPSA=; b=kQtm/O3jskPfg6q6XMZcS4cv6xprDs7DxV2Mp69zzm9E4cDnGwIPT0oQ2VXXLnSRtR Oc6doiwduSRa7Huk8dCMhQQZGNqr4IKyLxeEUHBffZJQo64RfETV/mrPWAxyJ5nBoGng VGefNhFLbjd8udmXQOnb8PzNMEyI9Ph3Ss0PQMUbZrcj43ZzongEPkyPHSlZ1NLHNjGT rHuoo66UTjCEvEJUxOfxaw0nBviHA33Vx0qunjVIJOX3v8+4nQDjwmssg/Bl1NnJzc3b KspyKq82orrpUY5KSaGj8/BnLbzol+Xf0x4quCwwTjEv4u6fIrNIAtFBxP6iTO9QYkOB Z0lQ== X-Forwarded-Encrypted: i=1; AFNElJ9PggrnlBYB5PgQYFKVY3l1uMyOhT6Jm5/XwNZ/m/rp03W2Pl+DX9Om6TZDPG/6dSzaGtBojJXupCxZQYA=@vger.kernel.org X-Gm-Message-State: AOJu0YzeXSVCQ3irxGuOrkNu4xlt9rGiKnAfdZKie37ED3XtLsFe1qFT J6Y8HNUjPgTT4+6cettQJC86oVv/z0NRY/WInsb9zlZUt2smqI3X3KQw X-Gm-Gg: Acq92OFRK7u9sFMhvxiuBRYC1qYwCFgr9z3LCMUhB1QWtmdNiIoaSJRT7knzAIU7GgL AqnDN+VE3Xo2H0nsTfHksrvOu7Z/eJHl+vGyhE6f5+YRp7yDqgq5CSNB/tb1L4Wv/RGUd7COrV6 ZRcBA2RnLDwlRFUaZQ3lukLFwzbWAOKMCr4jyNOwLDxSB8TCxs3IMr2+dY0dmLIt8mmzrHZtCzp OhwFUiqZ6/NTtxJTa4ZG+esEBzPdRn7qViQDumPTmVYmARCsvBMUhMjPE7Lbve5kiNuQbsRqsN0 4xi93daofKgxnx6kCxUE4BGSBwYiqZ9JdKoqhlpKDuXfzgPV20QKcKLUrvJzplL7V4TJFcDE6vo 60kTqUfXq5J2ch5TpUN5AfoWg1+5MR0t1BozxwUuq/zHsWQhro90kgvDhMlUweRkasFlLl0WOY4 wr/uaFSv0NeoDFWn1HOAosUy4uD9wPTkeTewQwvc+ILAtKjE0v6J5KGwke1/ukk3z7T/yV4tF4c gw= X-Received: by 2002:a05:6000:2207:b0:45e:73eb:2a75 with SMTP id ffacd0b85a97d-45e73eb2ab3mr27313880f8f.16.1779282418850; Wed, 20 May 2026 06:06:58 -0700 (PDT) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45d9e768bcesm56306140f8f.4.2026.05.20.06.06.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 06:06:58 -0700 (PDT) Date: Wed, 20 May 2026 14:06:57 +0100 From: David Laight To: "Mike Rapoport (Microsoft)" Cc: Song Liu , Yu Kuai , Li Nan , Xiao Ni , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-raid@vger.kernel.org Subject: Re: [PATCH 2/2] lib/raid6: use kmalloc() in raid6_select_algo() Message-ID: <20260520140657.2b5b5f3b@pumpkin> In-Reply-To: <20260520-lib-v1-2-cb3045bef2d8@kernel.org> References: <20260520-lib-v1-0-cb3045bef2d8@kernel.org> <20260520-lib-v1-2-cb3045bef2d8@kernel.org> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Wed, 20 May 2026 11:17:52 +0300 "Mike Rapoport (Microsoft)" wrote: > raid6_select_algo() allocates an order 3 (8 pages) buffer that is used > as a scratch area for selection of the best algorithm. Should this code really be using a 4k buffer rather than a PAGE_SIZE one? -- David > > For such large allocations kmalloc() would fall back to alloc_pages() but > still kmalloc() is a better API as it does not require unnecessary > castings and may provide more debugging possibilities. > > Replace __get_free_pages() call with kmalloc(). > > Link: https://lore.kernel.org/all/635405e4-9423-4a25-a6e7-e03c8ea0bcbe@redhat.com > Signed-off-by: Mike Rapoport (Microsoft) > --- > lib/raid6/algos.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/lib/raid6/algos.c b/lib/raid6/algos.c > index 799e0e5eac26..89e627c62e30 100644 > --- a/lib/raid6/algos.c > +++ b/lib/raid6/algos.c > @@ -12,6 +12,7 @@ > */ > > #include > +#include > #ifndef __KERNEL__ > #include > #include > @@ -129,7 +130,6 @@ const struct raid6_recov_calls *const raid6_recov_algos[] = { > #endif > > #define RAID6_TEST_DISKS 8 > -#define RAID6_TEST_DISKS_ORDER 3 > > static inline const struct raid6_recov_calls *raid6_choose_recov(void) > { > @@ -250,7 +250,7 @@ int __init raid6_select_algo(void) > int i, cycle; > > /* prepare the buffer and fill it circularly with gfmul table */ > - disk_ptr = (char *)__get_free_pages(GFP_KERNEL, RAID6_TEST_DISKS_ORDER); > + disk_ptr = kmalloc(PAGE_SIZE * RAID6_TEST_DISKS, GFP_KERNEL); > if (!disk_ptr) { > pr_err("raid6: Yikes! No memory available.\n"); > return -ENOMEM; > @@ -275,7 +275,7 @@ int __init raid6_select_algo(void) > /* select raid recover functions */ > rec_best = raid6_choose_recov(); > > - free_pages((unsigned long)disk_ptr, RAID6_TEST_DISKS_ORDER); > + kfree(disk_ptr); > > return gen_best && rec_best ? 0 : -EINVAL; > } >