From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from cae.in-ulm.de (cae.in-ulm.de [217.10.14.231]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F5DB22FDE6 for ; Mon, 25 May 2026 16:04:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.10.14.231 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779725077; cv=none; b=f+q5NT+imnBxt5OuXDqkfLbeoM/sXDNJo6xN2OV9l92qKq0waJUkoFY5paH7pGP/sG2rTEPbPnH+22nyGv0ZqWKcT6sOuXmUV+6Mx/l0HkAaFE2EZCMvV3x2AbtO0xWmt3ATjzwliTwLtsQs2bDAePRDj2i3UVyzl61444sRqkI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779725077; c=relaxed/simple; bh=7fmWvyPultKw0Yb1ej1SZAV2VcXixegOJDLU9t/oDJQ=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=ncsMqhqN58qAndAP6P6nzJQqFtssOvujJAC9NwGT1DCQsvZBO17oaQVpXo4QSdzx9lZ2jGDSQFw2TN07Em+SUWll3oO6QI836j/VrYSxF/CmWXq5ij7zLJjK3v23Oi7ZCiqfTHfljtEZ+ve6aZEpjXr+kb13CMiD87p5BPpCz8E= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=c--e.de; spf=pass smtp.mailfrom=c--e.de; arc=none smtp.client-ip=217.10.14.231 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=c--e.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=c--e.de Received: by cae.in-ulm.de (Postfix, from userid 1000) id 3EACA140132; Mon, 25 May 2026 17:58:22 +0200 (CEST) Date: Mon, 25 May 2026 17:58:22 +0200 From: "Christian A. Ehrhardt" To: Thomas =?iso-8859-1?Q?Wei=DFschuh?= Cc: Andrew Morton , linux-kernel@vger.kernel.org Subject: Re: [PATCH] lib: kunit_iov_iter: repeatedly call alloc_pages_bulk() Message-ID: References: <20260524-kunit_iov_iter-alloc_bulk-v1-1-4ad7cbacb19c@weissschuh.net> 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=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20260524-kunit_iov_iter-alloc_bulk-v1-1-4ad7cbacb19c@weissschuh.net> Hi Thomas, On Sun, May 24, 2026 at 03:02:45PM +0200, Thomas Weißschuh wrote: > alloc_pages_bulk() is not guaranteed to return all requested pages > in a single call. > > Call it repeatedly until all pages have been allocated or no more > progress is being made. > > Fixes: 0913b7554726 ("lib: kunit_iov_iter: add tests for extract_iter_to_sg") Diff LGTM but the "Fixes:" tag should probably point to this commit instead: 2d71340ff1d4 iov_iter: Kunit tests for copying to/from an iterator > Signed-off-by: Thomas Weißschuh > --- > lib/tests/kunit_iov_iter.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/lib/tests/kunit_iov_iter.c b/lib/tests/kunit_iov_iter.c > index f02f7b7aa796..1e6fce9cb255 100644 > --- a/lib/tests/kunit_iov_iter.c > +++ b/lib/tests/kunit_iov_iter.c > @@ -53,7 +53,7 @@ static void *__init iov_kunit_create_buffer(struct kunit *test, > size_t npages) > { > struct page **pages; > - unsigned long got; > + unsigned long got, last; > void *buffer; > unsigned int i; > > @@ -61,7 +61,15 @@ static void *__init iov_kunit_create_buffer(struct kunit *test, > KUNIT_ASSERT_NOT_ERR_OR_NULL(test, pages); > *ppages = pages; > > - got = alloc_pages_bulk(GFP_KERNEL, npages, pages); > + got = 0; > + while (true) { > + last = got; > + got = alloc_pages_bulk(GFP_KERNEL, npages, pages); > + > + if (last == got || got == npages) > + break; > + } > + > if (got != npages) { > release_pages(pages, got); > kvfree(pages); > Best regards, Christian