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 35259D60D17 for ; Wed, 20 Nov 2024 09:37:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B8C766B007B; Wed, 20 Nov 2024 04:37:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B3C7B6B0083; Wed, 20 Nov 2024 04:37:21 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A03E26B0085; Wed, 20 Nov 2024 04:37:21 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 7DF3A6B007B for ; Wed, 20 Nov 2024 04:37:21 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id F23FE1401B7 for ; Wed, 20 Nov 2024 09:37:20 +0000 (UTC) X-FDA: 82805968686.26.20138A1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf16.hostedemail.com (Postfix) with ESMTP id 32B02180006 for ; Wed, 20 Nov 2024 09:36:27 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=CG44vEbZ; spf=none (imf16.hostedemail.com: domain of BATV+cbb21d110c0520ad0ba8+7759+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+cbb21d110c0520ad0ba8+7759+infradead.org+hch@bombadil.srs.infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1732095289; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=R7oiEFYEVMIo/khuiHsimbHdxohCO0mg/KK57Qh3Fjc=; b=MSgA38OPRyv9UIiKK8fmbSuT2KrEmMPQBFewGX6LCeDaXNlHRTu6e9ZQPg/727s0PVtGxY qCaa2bWTKHSg7VZG4OW8akqldUKxxZ4drMzn00nHzw/CsCGkcjlSdFUkWXbC9/pyfWi4F5 /MlTSxh90qnkQqze3hYXl4KxnSVePKE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1732095289; a=rsa-sha256; cv=none; b=f5gFEV09G+xQlp99AtKAnZ/KocOniVuHUZSbIeC0Zh1a6Roam0c6wTqrZx1qxEIAe2vzlR Rasw2e4fx8cFxZO6JCEqdVDAtY9gHBh3jnbAAYakh1RPTvAq5VEEhj1TZZM7Ril0gO54WY hxmXRZJlc4PChNWK45Wc8sSi6cOBbzk= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=CG44vEbZ; spf=none (imf16.hostedemail.com: domain of BATV+cbb21d110c0520ad0ba8+7759+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+cbb21d110c0520ad0ba8+7759+infradead.org+hch@bombadil.srs.infradead.org; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=In-Reply-To:Content-Transfer-Encoding :Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=R7oiEFYEVMIo/khuiHsimbHdxohCO0mg/KK57Qh3Fjc=; b=CG44vEbZh5mNOR1judhvLEF8IO ZgJJOJfpVUUSSMmuYuL0lTo/HT25YjiaVzEP5Txt5AdxmhJH7dEb54GCxcOczM3qdQu0YRF1ZzUMk HjM7xxk8Xnj+OmiSZC4+vzZY9j1HcdGNfgdOFCgCuf0ZWG0b1J8lHiVaNdPdiRdFGFzoRAtFCFByz 9LSkzdkhGE8YtsCOEgJt8q/3sRwB+JQbG7LMXvn1enX/7Cc8D4WWYw8C3NAPY9ZEHv2Yd9Sg/SIx7 au+G68Jlf4nmVkyllC48AiRnJKwRRhD5nEs5ECzZZk0OL3KiShyzrY8Seve+8Swa1IZU7p86zE55E yZ7P+8Dw==; Received: from hch by bombadil.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tDh9C-0000000Evv9-03kO; Wed, 20 Nov 2024 09:37:18 +0000 Date: Wed, 20 Nov 2024 01:37:17 -0800 From: Christoph Hellwig To: Brian Johannesmeyer Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org, Raphael Isemann , Cristiano Giuffrida , Herbert Bos , Greg KH , Keith Busch Subject: Re: [RFC v2 1/2] dmapool: Move pool metadata into non-DMA memory Message-ID: References: <20241119205529.3871048-1-bjohannesmeyer@gmail.com> <20241119205529.3871048-2-bjohannesmeyer@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20241119205529.3871048-2-bjohannesmeyer@gmail.com> X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 32B02180006 X-Stat-Signature: p55fyb5dikp9wubptryh464wo681bjgr X-HE-Tag: 1732095387-292211 X-HE-Meta: U2FsdGVkX19So4E++S7rVJpac+pi6cGrmhZGXmm8nCoWEaj492WXRPyiub+zE1DlQQE1IYOWVAC9JO2BTitwdrVdfTttbS/ZDs5LYaBEDVZlhuBkXCHDRCHWnc9jI8gGpZcXOicpc+qE+Wp4tToF7IqvZAMjOz+ljO6ej8KkvVB+baPANkSV6Ya033FJAaO1LVm3tUVsVRkvQFkpgYT/qlghByBls+RUUoNFfk86ieaH8X2CWYVD62VO6EsmXKe45RzB8VRd5NWEp/lWKSK13e7b/hAyQb741z2Fs2tD2lB9opIwto3ZbPFbNu9grm9eBR7aY2qTHeIYSUjMXSB3N0pYTpRFqQJirc0lPBeISZNJ5p8qfWMk5If3XWlKhRIZzYijt7b+Z39ug1Td/MZhv682YPdsOGRk8CCC4tGHJBBlxRjpN6paG46ZxfvB39r7M4hQm/80OQgHVku+4e+JyNeejv3/6LausS/bIF4DwbL6XS1C/ssB6mktaxGzSKVm3H6MOAAjzZYhlO5qeprgVBxL1GA/2K+CGCLT3KO+bNpr4c/UvXDTd3KuBY7WYQJjXoRxsUobGfJiBDJtnCvtBQzPheF84JPaBs/iOHSrSU3+BomvF85wUquxJ1mmMdy49v5BMyNv25pg9F+MBucwA+J9KkXAutudekRuaFRb+NJCE/QGMygR62EObD7KgT0OxYPRDjcJrwjlrhPdwPUSQw+9N1OY7+b+UGcBODpXZrhOH0gU6B2CVv4S1cyDfLZXZCfgeEFhyMepGMbhmR4UsocgLKMXCqLvuVz16l3wpJGxEAuXZOs1zZZ3akOiCSi3FVj28yBlsYXnaRMM9vR3uTE1xs4I/hJVXAT1amoL90OLgemf49+YTWPtql4y7EXDyMFSUo/0H6Q0xhOh8nDFhgbVb4pboJ4tCdqUOjZZ0LA23osfQ0Rt6wQ8MAIJE1/0prNrhPbhptRrrj4UCql yZC0LJm/ AlcQqpNJ/BEU4P6mSC3L7rEP2OUjjhZZzqYH6khXRzEeD4pw7fLIrHEzUNBRpTEst/obEBhVWflUcOG7OuPzHB/ZbiHsnuSrsKtEpYBBWKn1FDQAz6RN+cn3oMwIhDzK+SXPPJVUYbi/hQ/Qg2C8DOwweuHdMZ7H4bo/Z90cXfcxopwOHN5mBHV7lbVWbxQ3yigM1NtXLChf9hYeZ7yeWt1VXF6dCx4umhphRgNWr4LK10zXGNk2YhTI7o9LET16cic889qab1JcB7wdoZw/6tskxsJIAB+R8lJ5rGeaTlC5/31mwY7DE9/15EgYxG2AByjrVn9HAvBEl0Fdr5Uyz0WPaXVFy5X+/fXOE+Wucutlun9zK7xhiPorxAK7Zs3JEbNk0D4RqZDab4h6WYdAKW1EjkWda7/dnAvkbwd1YvPTfERFB0nsMlBidhr9vIA3Jabk8xsnXczH4La308E+uB5223GsdyNfvekgfjnIUUxITcSQQwweOjZsotSp6XBB+Tvil 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 Tue, Nov 19, 2024 at 09:55:28PM +0100, Brian Johannesmeyer wrote: > + page->blocks_per_page = pool->allocation / pool->size; > + page->blocks = kmalloc_array(page->blocks_per_page, > + sizeof(struct dma_block), GFP_KERNEL); Given that you now need an array of the blocks anyway, it might make sense to switch from a linked list to a bitmap for tracking free state, which would be a lot more efficient as you only need a bit per block as tracking overhead instead of a two pointers and a dma_addr_t. e.g. do a find_first_zero_bit() to find the ffree slot, then calculate the dma_addr and virt address by simple offseting into the dma_page ones with bitnr * pool->size.