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 3D3D8C7EE23 for ; Tue, 28 Feb 2023 02:14:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7C74E6B0078; Mon, 27 Feb 2023 21:14:32 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 776E26B007B; Mon, 27 Feb 2023 21:14:32 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 63EB76B007D; Mon, 27 Feb 2023 21:14:32 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 50B4A6B0078 for ; Mon, 27 Feb 2023 21:14:32 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 1CD2C160D76 for ; Tue, 28 Feb 2023 02:14:32 +0000 (UTC) X-FDA: 80515081584.27.5835AA8 Received: from mail-io1-f46.google.com (mail-io1-f46.google.com [209.85.166.46]) by imf07.hostedemail.com (Postfix) with ESMTP id 463BD40003 for ; Tue, 28 Feb 2023 02:14:29 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=FqL5p8OZ; spf=pass (imf07.hostedemail.com: domain of groeck7@gmail.com designates 209.85.166.46 as permitted sender) smtp.mailfrom=groeck7@gmail.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677550469; h=from:from:sender: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=g2m+6sOh3dyXOUyiPoT4Lw8BzZfcrPOpFEQSJseXRAs=; b=WCJ2TDwdQHUpJW8REMWwsSyiZ88JBA5GZKrvp/AfkEqifLmluSksXKE1vxOWc8j2nlZ5kv jsLrimrWiqlCbqfs8cugd34S3iICY0xhr/5EW85pI+fFH2FEtghl6gvXYEbedmAKDgrwLV maNqPv5fXkszEx0F+6Z62BqpLGK37BA= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=FqL5p8OZ; spf=pass (imf07.hostedemail.com: domain of groeck7@gmail.com designates 209.85.166.46 as permitted sender) smtp.mailfrom=groeck7@gmail.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1677550469; a=rsa-sha256; cv=none; b=Mddw6CNhJse1QBIQAz24T+QRjexeiivUtlQEzk6vvaECCGZf4U9DY0cYhXz3w1uJsq1/2j VhJKsMqhQAmvLSyNwRThHQiwI6klokKa4nfrFqQJgwjsV1joqL2t+k5jggNL57G5nvNVDM qNnR4QkpkoRmJIRwMbxFkQ2WCPdGvMA= Received: by mail-io1-f46.google.com with SMTP id y140so3471417iof.6 for ; Mon, 27 Feb 2023 18:14:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:from:to:cc:subject:date:message-id :reply-to; bh=g2m+6sOh3dyXOUyiPoT4Lw8BzZfcrPOpFEQSJseXRAs=; b=FqL5p8OZ3DK2n3cd37DdQvhpw3wHvw2tkH20Z1KoftB7Id72i2VcBm30+8pcowdVmj qHmc0lf1BUoYpr1591cjLFWz3BXSbZV3iZLbco7NyfA8l/jhbpklOK09efaPtpxJZ6o8 unNkX0Zd1NikKQP4NZdUJbChiSEN4rQVY+CRXmrIAYEtmGye7gxmYtgl5wT8+Y5IAWgl ObvndivndepZh4QtDZUBihQi1YarfrnVl3ioFoF8/DWR8xHMQRZGg96qhwWzspHKuGjs 7RzzQQePnuhMiDlFv/TKz4B976ktQs+IwRr1L9HaUUxF9HiZtZFxjVcu7dnERH7v9sDY fSQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=g2m+6sOh3dyXOUyiPoT4Lw8BzZfcrPOpFEQSJseXRAs=; b=usErnnhgulZ5q8Mhs4pXo1XBdwrMF2EGHvPsax2rxFQkKMqB3RrpEcmDeiuVALPSUW K6TAtgcDgEiSNmG3HB5D2xIItuUrIiGwYxYCR11xLe5fLu0Pey24A8yYngHIkb1HiS0+ WFWwO9M8RRqaiBvmfyIEv9JaDCST0zvAnQ1j+wBiw/t6RaFi9zu29O1K1DhQyhRZXyJt E/iDhKKv5SP0+U9Kzz6O4nz1dvAE1rEjVwj/EqW+90NBz6w0Udbi606SJ+EkQonot6hd cdVpPPUgmHZtmrehzOdbyGVrySVi+XMUVUWIhsDelSCM+P/799bPnKgfQNLHcZMSAwV7 dXyw== X-Gm-Message-State: AO0yUKWLRAvDXesMpjUk2dOnv4IjPSRV75s8JWi2+CkFNH0uqmt7yXgg y6oQWxCM7OTzM6LfpypYZhQ= X-Google-Smtp-Source: AK7set/0bDq770mH9N02FdUqzvYx+uX2ctrnSx+SFLIYYrsE9WCTllIMtIIoOA0Ey4OdDiu6yy+GJQ== X-Received: by 2002:a5d:840d:0:b0:74c:ae72:dc16 with SMTP id i13-20020a5d840d000000b0074cae72dc16mr1008687ion.5.1677550468323; Mon, 27 Feb 2023 18:14:28 -0800 (PST) Received: from server.roeck-us.net ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id r16-20020a056e02109000b00316ecc80a61sm2414581ilj.11.2023.02.27.18.14.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Feb 2023 18:14:27 -0800 (PST) Date: Mon, 27 Feb 2023 18:14:26 -0800 From: Guenter Roeck To: Keith Busch Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Keith Busch , Bryan O'Donoghue Subject: Re: [PATCH] dmapool: push new blocks in ascending order Message-ID: <20230228021426.GA3955867@roeck-us.net> References: <20230221165400.1595247-1-kbusch@meta.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230221165400.1595247-1-kbusch@meta.com> X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 463BD40003 X-Stat-Signature: kwan3g6owd38qc39atnk6nfrg1nfhjct X-HE-Tag: 1677550469-333118 X-HE-Meta: U2FsdGVkX19+/ikCrCm8AvFI4EreL9haPeXC5QFmon2y4P7xL7KbGA7U97EkRsnxleVdvnnNgamzb5rJc4vsZeJRhr14Q1pBd2txTk+PrQhSp6N0561y4HANbavAtXSKkdzzwaxqhf5zQpidaz4ugClT0Ep9dXyeFqCh2VReaxHiI9oF8FcZVd3LjYV36me5QFF4gIbuKsZZRkqhVR8Ixfk9UoPmJd5evz2aIYlxj3doSiwga9LuBPhGizHm4/TZxDemNU0epum1Lhz76OhdKqrplC5uEL9xWirCW+j/WXJ1ztASe/nVVJr11SclY6XvIh1ep1ABS8gbHr1G3qqJaVLis+7FKJF1wl3E78hkKMbWPvM8wtJ+hhUsgB/kQyVX6F01zuRhUBr/9ev0q0dWGAC+aIm1aPXw2qenU19zertiYa35B6NhEvY5eu6R5HUyYTib52tFIRZH6u7MoIouRufyUUCIBCK8Wpf3yzXmz3B9P1ILGd83eAMaZS61auNJGaBmYePwFP/6SnZE3Tx1iBg1e3jmgqakcmPKANZU+OdQfLM13e/rVL+bEpXG9KWv6gDgr1GaddtLXa5MYj8TFBbZ42S5nLweGXrBYBCpJGRfTZx0k82iGMcgmNDNH/gWO0wPyzgQVwS2wV33aHPtdRxPCH+G6UlQcERKFoAkZHeLjMbjCNJTYcapCaDLMLTpxGejSYs8ersng5ZkATYXQuuLE0/f///+eshpiYk//Uy7CKXYquuGCAG1eo+A7BGbR4vecrKMBuh6B2/rvlM51cnEb0GFXRhst5t+Q+v1l+8D76CkmQ2aW0q7Qw7QUTV1Df0+hYhlZ5qdpQKRPW4bWlQ2WdGkkg4Rcb+sCLFVMLH/jNsV1yDguy2SjTBVSBHA9Wbb8pSfckm/F46spByBcnz1mCnmrPsZX0jOLh/6RpvBfcomZUNtNbMEjSjc6AE/yUIiJCsZzdbpWsrck7y WNjvW7f7 ZylIfUsre4hRNhzZjbggAvWwNb6B9H/XQO0gOz353p33ety1QEWK0inxgjkDaf1enhQWHU0IKSOZ4f/CHB821mB7FV9PoNWdS4XPnyC+Olqt91Z+OLDq9rJ9SNgLreSO00heUtxw5/9RFPfW2tLLEBXfnOk+c1O8SIMhuXPAIbbWhK0qDv2fQULpImbfaIs+oLHyAwjhUrd8NnDpDOvLyVZeYxuvWgDIo5InGOA6RnozQ7KomJ2jHFFHfr73RmOKcWpyL5f1oubVag0uzzjWJkh1L/3t1zGyjk/BYFhqTDfx35yFiwbm6suhwFFlVQNK4DdmHADy5YqbdR2s3fxyFnPRLpDs5nUCEXlAznHYksw38CeAw3+lWpVUeHktJRrozZACtwxam1OcWVSS/UNm5peo/APo1ACxqATAN1vnzEz40D9Dz1qlveTf7j1UPZeGo3/MQYcMgsSS0v5fFj/c5DPU22Kuj7VQUZ/6qIT2/QAQRUH3r0nAO7Du6xEWIV662aP4OQv82Pf74wIg6HqfQfm++6gbiZNyVQ3dObmZ2sQQ1znSH3POLjM8fGNA1lz067Jp3xXt2bJ52ASrd7mrMDwdv49aHwnDo2t5gj+YvV9bKIS2BBiJsn01FquLBUbFfKjbG 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: On Tue, Feb 21, 2023 at 08:54:00AM -0800, Keith Busch wrote: > From: Keith Busch > > Some users of the dmapool need their allocations to happen in ascending > order. The recent optimizations pushed the blocks in reverse order, so > restore the previous behavior by linking the next available block from > low-to-high. > > Fixes: ced6d06a81fb69 ("dmapool: link blocks across pages") > Reported-by: Bryan O'Donoghue > Signed-off-by: Keith Busch This patch fixes the problem I had observed when trying to boot from the megasas SCSI controller on powernv. Tested-by: Guenter Roeck Thanks, Guenter > --- > mm/dmapool.c | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/mm/dmapool.c b/mm/dmapool.c > index 1920890ff8d3d..a151a21e571b7 100644 > --- a/mm/dmapool.c > +++ b/mm/dmapool.c > @@ -300,7 +300,7 @@ EXPORT_SYMBOL(dma_pool_create); > static void pool_initialise_page(struct dma_pool *pool, struct dma_page *page) > { > unsigned int next_boundary = pool->boundary, offset = 0; > - struct dma_block *block; > + struct dma_block *block, *first = NULL, *last = NULL; > > pool_init_page(pool, page); > while (offset + pool->size <= pool->allocation) { > @@ -311,11 +311,22 @@ static void pool_initialise_page(struct dma_pool *pool, struct dma_page *page) > } > > block = page->vaddr + offset; > - pool_block_push(pool, block, page->dma + offset); > + block->dma = page->dma + offset; > + block->next_block = NULL; > + > + if (last) > + last->next_block = block; > + else > + first = block; > + last = block; > + > offset += pool->size; > pool->nr_blocks++; > } > > + last->next_block = pool->next_block; > + pool->next_block = first; > + > list_add(&page->page_list, &pool->page_list); > pool->nr_pages++; > } > -- > 2.30.2 > >