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 3986AE6918E for ; Fri, 22 Nov 2024 19:20:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C0F2A6B0085; Fri, 22 Nov 2024 14:20:09 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B99AE6B0088; Fri, 22 Nov 2024 14:20:09 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A38C56B0089; Fri, 22 Nov 2024 14:20:09 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 8236D6B0085 for ; Fri, 22 Nov 2024 14:20:09 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 313C2121766 for ; Fri, 22 Nov 2024 19:20:09 +0000 (UTC) X-FDA: 82814694942.24.F92B7A7 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) by imf04.hostedemail.com (Postfix) with ESMTP id A857B4000C for ; Fri, 22 Nov 2024 19:18:58 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=AgD7rgmM; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of bjohannesmeyer@gmail.com designates 209.85.218.51 as permitted sender) smtp.mailfrom=bjohannesmeyer@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1732303019; a=rsa-sha256; cv=none; b=cNIjO+Q8E4K8NSOyIqFQ3zNY2HfrB3H7+v/EambnKeiLXE/b9x7QXcI7Jeu6haV5Ug//qi X0Pyy8jy5DM1D62KfWoBL1nGNK0bByr6339SCGIFQ19gZWL0kLNErOwsbl4wvI1BUVLrIR BwXWJ4uyaRE0Nwo8a+vbvhUBY40TjXg= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=AgD7rgmM; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf04.hostedemail.com: domain of bjohannesmeyer@gmail.com designates 209.85.218.51 as permitted sender) smtp.mailfrom=bjohannesmeyer@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1732303019; 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=gmPHZq7NvbuC3A6VuT/FeDUicgcVWod/bDQW4ILw5hM=; b=AN2H7FmpfCOzsDuOE78etvtpzGSVx6rtwNn1PwyJQul1WepRFw17kf7n5Fhnnm1t8KqXIp LS3VQgwKXjB9NMHFN0qqVkz2o0Dtf9B46hMvGNAv2HjfqKGQmgZGe9GPtAb1DNrBwxmfsA Zgl7YMBOVtRrFMkO6pukleif2sDRx4k= Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-aa4cb5fcc06so421295966b.0 for ; Fri, 22 Nov 2024 11:20:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732303206; x=1732908006; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=gmPHZq7NvbuC3A6VuT/FeDUicgcVWod/bDQW4ILw5hM=; b=AgD7rgmMy+NZiZO4FwJNWEBcz2L7enjKmXnTkf3UCI9TZmCo6LF6qDtSz75cUt8PPR UI5SUmCiXP7f/ovfifl1KikdX4ZBUslMZFbgvxrqs7y+GjxNZsHlwbw9KcA6kq7XYEgD /T8OwOU56SPzWqP7yN6i37xNsPstixtyqXJ+9I2oBPYlLJORFB7Cpbaj79wUFSuzJCkS KJCzxf9eLT1EUxc7CCBkn+KUzZEUBsPi+9h1ZMTlRZf0gqIziyrHYp/WIuV0BDKM0t7l G9WMhR7s+BV84j+cJNJtMp1Kb9WwyJ4+l11NQH8K1rLVBZ6+OChumI2bxMSKIwHYk0Jk igEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732303206; x=1732908006; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gmPHZq7NvbuC3A6VuT/FeDUicgcVWod/bDQW4ILw5hM=; b=aFphvNYmOENVSWvPvjbjgTRp78KMC4vwfIw3hM2t7K1n8RmWWl4BDe2DFschMYGf2/ hM97xNf+pMP9kkqECLgOQO9C+8d2GQkpL12i+YqOdNUBWZAXuUmHawiAnWxAGBAiXbay 3b80SKFv6Cx8pN35HRVNZjeLQGPm2MmlLdOnvsSbTlSwltpSUy7jQFn5fBXtBFlShtJ7 ae7aC1CPQtlRHQp2fHsMV5yzpmKp6RXqbk+nxtB4fB7UdBN4ASNuRSgEXiIbvejSDgmd POyOXNavB0+eqzG43gYbKEZM/FQBdYNYKGLuqI4/Ol1vrr7j0gAr1xUu4sV6i+tasAsq EUCg== X-Forwarded-Encrypted: i=1; AJvYcCXYeOC+SUR5aWEC7GxKvx8oiOd1fGOujBuerFRxOFSYwquh2qYBGYHn62zpST41e99/Me7KVZKMcA==@kvack.org X-Gm-Message-State: AOJu0Yyorm9no8d1t+1NuOs49gt0zcojmuoXaox+RCxVbv0oMCEAFjzC 9goiCNooiRFg0sQgb2t9wG3kGCxwx0xqQ1c5tMGd5bMy9prhdRj+iCj0BMcDxzwwT7QD1SrLJmp I/3/lJCTZb+Od9x64+nUp0PaAakk= X-Gm-Gg: ASbGncv12Q+UJS1fKb5BHJgve7uPdKQPmOqHkn/Tij4P20QANxu9zatbMzf85Ya45RJ tk0utcPmz0rxx3gEWyCarh8lVGqZAPF2P X-Google-Smtp-Source: AGHT+IFXiqfnLVQ8D0j59J/GYxw4kf+YeOP932hoVzW/jRsfs6HEsvVxld6iWnpKMdecPrGAqrHYjlrI0xQ6I7taMUY= X-Received: by 2002:a17:907:7812:b0:a9e:d7e3:ccae with SMTP id a640c23a62f3a-aa5099389d8mr369578766b.16.1732303205427; Fri, 22 Nov 2024 11:20:05 -0800 (PST) MIME-Version: 1.0 References: <20241119205529.3871048-1-bjohannesmeyer@gmail.com> In-Reply-To: From: Brian Johannesmeyer Date: Fri, 22 Nov 2024 12:19:52 -0700 Message-ID: Subject: Re: [RFC v2 0/2] dmapool: Mitigate device-controllable mem. corruption To: Keith Busch Cc: Christoph Hellwig , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org, Raphael Isemann , Cristiano Giuffrida , Herbert Bos , Greg KH Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: iitrjbrnibw3usrbti4zceei8oj4tx5s X-Rspamd-Queue-Id: A857B4000C X-Rspamd-Server: rspam08 X-Rspam-User: X-HE-Tag: 1732303138-648049 X-HE-Meta: U2FsdGVkX19X0VFkGqOivA0y61IFzzHaKAPbWzf8lX7cCL+AJiJ2Yg1vFxOSGJ45k4cHaSBJyNPcqv6zXCAMSTOem6NTOPavVV8HLgojXvITz2oGfgT/HUOn9MXE5mxu2lrxgwJkh/3atwH0qGKWnLrT6b5P+THoSJkOKeiUvU+q1rXUFGvt4+QYBM1lpaVvPgpsLfdP8IB94IXR3XF63WLgDdzHAWwcXCrYGBMWN4BZdGA0Bp453kAR6+jrSqoN32KO1xhr1xamuzqUGYcL5DZvFfmFtmqyiwtjK4iZirv0gdhCH/BlF+bl7Qz5LTRR/WVb4as1gilLI37uNUM+g1oOtNtxnZqrA3vCyIFQ78i3Yf/g7aWhCOWrG4Z+K80wddf+2kTXcxMp8DuJ5wGYa3hQqZWotBoc4db/r3YP/Gs85dyugviF8JgZSBqXlbqXNhfFsEfSNId5V6db1XQHUr62S6q6vUEQP56Ev5boxWQettqekxH1wiEqPK2kNUVaCNCJTfNt6R4o50boxO65Nx7zk8EE1+sH69ee6e/PNSFn0spYzputmsB8yzk9vE3EgqR84rYOfw4lJSPmZL0CA1JzSKf/nx0NjsO0jX/aVnDtgPg7mKeA2sKZFreocVbo3SuThymPdIdoRZPn8cQQVaKqI3y7DlaUnOzuXpJ905l2SgZ2mJB9ZZsW6NyKjl9a+sSqbHa8bgHqB7AdoFTFKOjeVDCyjjigUQt5GLbmAobrd/E1RBP+CjZ0WVaQjNiSC92LjYroaHezc0fvSzZHa2c8QjNeFeSWDqkMVsOoboCVZazuGNP5nt3s4phSH6EDhOvPP53/sWrJn/oCxu5xnaBwlhnmhM8LLUwSqRok6GqVKAOAxdC+JGZYHKWbaDxjCOAGwP5OREHGgc69tixAmFpgswgE6xvOmRX0agCDYhjET4R+wQvjzFCUpTxsUCGIFc4MWCu7OFpIguD50+4 1VOzARFS Mbyxx4IMlskkVmG/UtTkLGsfa7EMK0mvbRybx+JLcItI+rPumlkKO4iq35r+r/S/DXwwlTLkHtWfvm7J9j30K/3l6KExI/0d5qVYNOrJ1QudULFlfm6rzJQvnciDIO4sdupxI2DuR8Xvh8SsqUvzM2CAy92D79enCNi2Bs8KOBnXXTJ+d9pS/DsRW4g8o3j4kMo1KXwMdg/TVMFyYFKhrt6DoYpwJm93Uf8y3SGXBfuYPUIyuFbntbCd+bN1/or7W2+yJTbXYWAvXrX8NH41bIn6DqBb9th2cpvvGRbGK20zACvJ/pMVXLIh63lkUjiIFAUWc71vD5j90MVfNoySe19rsdIb9eKPEkVzR1zGwDvpeBvnFvYBltcYP4A== X-Bogosity: Ham, tests=bogofilter, spamicity=0.024232, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: I=E2=80=99ll go ahead and prepare a V3 patch series with the following upda= tes: - Using an xarray for vaddr-to-block translations, which improves the performance of free operations. - Removing the minimum DMA block size constraint, as it is no longer necess= ary. Let me know if there are any additional suggestions or concerns to address before submission. Thanks, Brian On Thu, Nov 21, 2024 at 12:07=E2=80=AFPM Brian Johannesmeyer wrote: > > On Thu, Nov 21, 2024 at 11:06=E2=80=AFAM Keith Busch = wrote: > > If you have the time, could you compare with using xarray instead? > > Sure. Good idea. > > **With the submitted patches applied AND using an xarray for > vaddr-to-block translations:** > ``` > dmapool test: size:16 align:16 blocks:8192 time:37954 > dmapool test: size:64 align:64 blocks:8192 time:40036 > dmapool test: size:256 align:256 blocks:8192 time:41942 > dmapool test: size:1024 align:1024 blocks:2048 time:10964 > dmapool test: size:4096 align:4096 blocks:1024 time:6101 > dmapool test: size:68 align:32 blocks:8192 time:41307 > ``` > > The xarray approach shows a slight improvement in performance compared > to the maple tree approach. > > FWIW, I implemented the two with slightly different semantics: > - In the maple tree implementation, I saved the `block`'s entire > `vaddr` range, allowing any `vaddr` within the `block` to be passed to > `dma_pool_free()`. > - In the xarray implementation, I saved only the `block's` base > `vaddr`, requiring `dma_pool_free()` to be called with the exact > `vaddr` returned by `dma_pool_alloc()`. This aligns with the DMA pool > API documentation, which specifies that the `vaddr` returned by > `dma_pool_alloc()` should be passed to `dma_pool_free()`. > > Let me know if you'd like further adjustments. > > Thanks, > > Brian Johannesmeyer