From patchwork Tue Jan 3 19:15:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Keith Busch X-Patchwork-Id: 3519 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp4780440wrt; Tue, 3 Jan 2023 11:24:12 -0800 (PST) X-Google-Smtp-Source: AMrXdXtnm+LEJKAn8BudaUxVcB+3334sVYGB1jajPzSuvYhhiNsbT38/loT1ugdwyWNlmpI3AK1V X-Received: by 2002:a17:906:b0d2:b0:7c4:fe36:5b80 with SMTP id bk18-20020a170906b0d200b007c4fe365b80mr46079382ejb.62.1672773851864; Tue, 03 Jan 2023 11:24:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672773851; cv=none; d=google.com; s=arc-20160816; b=twNgZhOGvbh2uyBkoKKiUQW6+Fh1tzdTF728c7zNUyw8UhF9UArrtrdlCPyFfMDsF0 csW4UUsVW5m8pZK/aitLYXu8EqGgqkJdQY1VS7dOdpM9ODrUa8a9+IEvrdr9uvNd38IM 3D4DyZ1MVsj/8lDcZZy7WcolfIynQ4Tiij99fCH+m0JU5vJ0gOq9UJ19V6dyqE9vU1lT DCCtbq0qVmcAx0/BiGzqSQBscNsW3mM6FN+34H1sdYqZqNWE5E31JPAkIRgMOD5apske hZS/75FDlzHvwAzImNq9ZWcAp1xLsInDNxl/HnKNz78Qssu6JOcxv/b/l5VtQtY4YIos Eniw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=Q3J5QgpjIfcAednQEWV/FrCvTjaD0fSbWej/hAzXw9k=; b=WF4nf5JjwRF3dpGfUzaTP1u6Uoaxr+xf8hl0pFMjn4c/Uxjk/2q5GI5aF3w+Ard1b0 Lsa3XVqqmHvntmqZwhjLF8Zg9gvfjgNYRb1E+986Q81Ih5n2oCc73ldii820TiOGEWjD 0oVC7FHDpxkhL9utkZJ27ZrHfyly8mgjcuyTm+kvW6wncDVbgawNYuPzexd8fpn+yZ+L vaXzauSfy1j9Z880PpoL93nIj5IF1PZe8RzA2Dm4VmkyMU4BLcvSYjj/2JnlFSql8ivw APIIrSFZ1yml/uxLQqL4nNd4+6MSvCy7lMgEtShnmN0Ru2gWYTsTyP96A0IuZlCW8s/C 2wIQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@meta.com header.s=s2048-2021-q4 header.b=Q+suXye2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=meta.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id qk31-20020a1709077f9f00b007c0c1cd86cfsi29089741ejc.36.2023.01.03.11.23.48; Tue, 03 Jan 2023 11:24:11 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@meta.com header.s=s2048-2021-q4 header.b=Q+suXye2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=meta.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238933AbjACTTH (ORCPT + 99 others); Tue, 3 Jan 2023 14:19:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47052 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238887AbjACTSe (ORCPT ); Tue, 3 Jan 2023 14:18:34 -0500 Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 17DCA65F8 for ; Tue, 3 Jan 2023 11:15:59 -0800 (PST) Received: from pps.filterd (m0148461.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 303IGJhY000907 for ; Tue, 3 Jan 2023 11:15:59 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding : content-type; s=s2048-2021-q4; bh=Q3J5QgpjIfcAednQEWV/FrCvTjaD0fSbWej/hAzXw9k=; b=Q+suXye2CDOVXEchdnagYlWSSuS2h7pWHObGdl+zFA31A/QMnoVnJC8/vhNp3tgpXo45 MLhAHx/ck8FtBVr2JbQzKd5Dys1c2XhUhAmMmy7Yl0bUuqXc62vIlIIUkAqQ0GPB0ZCP wGi4vQ40jsCBD3cmz0YZ4/+m0kbh7iVCu5JM51FyuW47InUYsmo9DxBw4LDqBgFhtq9l d6SHZrLeG7/7m3WlD3FRKsetSRBwO+MckzWznRp5khQ3EPIIJKuvHMREcSTPZxiKw0Jf wn4XK0T9ZLV3fUt5fxANukc2VIeLqAyBgu8Y6MccKJ7itLvkrDITDzaxORAbqeuW0guZ Ow== Received: from mail.thefacebook.com ([163.114.132.120]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 3mtk356u36-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 03 Jan 2023 11:15:59 -0800 Received: from twshared7043.05.ash9.facebook.com (2620:10d:c085:108::8) by mail.thefacebook.com (2620:10d:c085:21d::4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 3 Jan 2023 11:15:58 -0800 Received: by devbig007.nao1.facebook.com (Postfix, from userid 544533) id 8501CE1F5DFE; Tue, 3 Jan 2023 11:15:53 -0800 (PST) From: Keith Busch To: , , Matthew Wilcox , Christoph Hellwig CC: Tony Battersby , Kernel Team , Keith Busch Subject: [PATCHv3 00/12] dmapool enhancements Date: Tue, 3 Jan 2023 11:15:39 -0800 Message-ID: <20230103191551.3254778-1-kbusch@meta.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 X-FB-Internal: Safe X-Proofpoint-ORIG-GUID: 3DfxsX3Yni69DQ6ekiBk7sj8PsSz4b2H X-Proofpoint-GUID: 3DfxsX3Yni69DQ6ekiBk7sj8PsSz4b2H X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-03_07,2023-01-03_02,2022-06-22_01 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754030514285093281?= X-GMAIL-MSGID: =?utf-8?q?1754030514285093281?= From: Keith Busch Time spent in dma_pool alloc/free increases linearly with the number of pages backing the pool. We can reduce this to constant time with minor changes to how free pages are tracked. Changes since v2: Added received reviews Applied suggestions from Christoph (removed inlines, use preferred conditional compiling style, minor changes in patch sequence, use kzalloc) Fixed printf formats caught by kernel test robot Added one extra cleanup patch at the end Keith Busch (8): dmapool: add alloc/free performance test dmapool: move debug code to own functions dmapool: rearrange page alloc failure handling dmapool: consolidate page initialization dmapool: simplify freeing dmapool: don't memset on free twice dmapool: link blocks across pages dmapool: create/destroy cleanup Tony Battersby (4): dmapool: remove checks for dev == NULL dmapool: use sysfs_emit() instead of scnprintf() dmapool: cleanup integer types dmapool: speedup DMAPOOL_DEBUG with init_on_alloc mm/Kconfig | 9 ++ mm/Makefile | 1 + mm/dmapool.c | 371 ++++++++++++++++++++++------------------------ mm/dmapool_test.c | 147 ++++++++++++++++++ 4 files changed, 331 insertions(+), 197 deletions(-) create mode 100644 mm/dmapool_test.c