Received: by 2002:a05:7412:b995:b0:f9:9502:5bb8 with SMTP id it21csp2940330rdb; Tue, 26 Dec 2023 09:58:17 -0800 (PST) X-Google-Smtp-Source: AGHT+IEO9XxOWqLIkhkOZpFFQCmt93zCsCh9nezgFxEwwMK84m++sXYqwZB+gj7Vx0rFDox/0QYU X-Received: by 2002:a05:620a:1e:b0:77f:7898:8a73 with SMTP id j30-20020a05620a001e00b0077f78988a73mr9471822qki.6.1703613497513; Tue, 26 Dec 2023 09:58:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703613497; cv=none; d=google.com; s=arc-20160816; b=fPYdpUnzuyvzTpOTS2ZI4BjCwzIZ9Bv4Cmhr5QVRXUeOFCnjn+B6Z9afa3wSrFISYb gr3jd76l7C5ISOzDil1WIqJvTXz01wJphedD09EkPK/R5zaYE0+Clzx29VQ2ZUsuS6ku 1QecHPmQXoxPoTbgp5UMpVB4ihWgnEuPpFNIMy5wWE++ZF9G8L7v9KeriILLdAuLJN3z 4k6tRcHGUGNhhgrVxd8hl7WS1xWKmTu+xdBHwgDmSJug9Uac2ksCb5E32ShG70AKG6mU njPeuPjwus4kLpez/K+e6wo0ococlXogZ1X36REUwcqmqw+m1FNfvCcmEzqbk9LEM8+b /7Hw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=eYH7udRxVOWUuYR1uviT4nzog+O468I+tsZ16QY52lY=; fh=5wFXEWCW2P+35DUe6w3XzCAwIyvAF86KDMHRtNph0es=; b=yaTP2uuv6Cp/UmZMRajJ2cYoYdMul+zsRgCOe/60xEJ8HdnkMq7BWTdG49TtvimNey +9Aox/K89Nd2fkhEuUZVXM2K9vazJadwehhcCzr0h3l63cFVRaALm7xae+qxbeMDKDcg lXA/yEU4RZWY4qh133jre0zRYiN4xiOytE4ByHun2vjjkqz4mU1Be+ktUd031GDzNsiB sszpyuDqc9GOjdzHEIfRsoPXRaNw6XNQPJMZIJWZ4diTTIHyhJn7Qu2KPOOJ5OWZhkNp X7n0pDmmeWaSn9HYdpOKj4VIw+VSfumC2Q1cTuKoNYCp+GG3aRY1NMCorljbRouXYt2l oNoA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@soleen.com header.s=google header.b="Rx/Z4nHR"; spf=pass (google.com: domain of linux-kernel+bounces-11599-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-11599-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id bl12-20020a05620a1a8c00b007813de03a41si7292515qkb.452.2023.12.26.09.58.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Dec 2023 09:58:17 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-11599-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@soleen.com header.s=google header.b="Rx/Z4nHR"; spf=pass (google.com: domain of linux-kernel+bounces-11599-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-11599-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 44F271C20B81 for ; Tue, 26 Dec 2023 17:58:17 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3A3D85100B; Tue, 26 Dec 2023 17:58:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=soleen.com header.i=@soleen.com header.b="Rx/Z4nHR" X-Original-To: linux-kernel@vger.kernel.org Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C00454F8BB for ; Tue, 26 Dec 2023 17:58:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=soleen.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=soleen.com Received: by mail-qt1-f169.google.com with SMTP id d75a77b69052e-4277e7146abso42941791cf.1 for ; Tue, 26 Dec 2023 09:58:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=soleen.com; s=google; t=1703613482; x=1704218282; darn=vger.kernel.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=eYH7udRxVOWUuYR1uviT4nzog+O468I+tsZ16QY52lY=; b=Rx/Z4nHRY1rSniKB7ojzBTzchlS2er2VU2zu6k5/FnO7NMhFsGCtuVNSYt48bBzIUK ij4DxspKTtvkJw2rpHMDZyOEonUoz5HeKb+hWX2utOvlr/xPxySA9cMQuIWIHDI13TuF bJqKEtiWP+VYYe4QdfnU8x30DHGrT/bxxwCa726sfWqYWXPxhtRIz/VATzKaxTXXpEuQ +20EeOcvHa6zPq5v/gWGKcf/gLTxOpnnVj3IoUH8Gx8ADZqJugSDmg2CxzCe5gAnNGVD WKUlXr0g3eBOh9Z39Ati6EXzd69lD5HtiDdcW7l17KFZ7iZnn/iQ/pq3AzHVqUmNbJxp 7dYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703613482; x=1704218282; 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=eYH7udRxVOWUuYR1uviT4nzog+O468I+tsZ16QY52lY=; b=hXqhjLXoWhEPEQhAk17faD98Glv4SqsE2GesKRJVBWwepD9sECyrU10YzHAGkedxkO UtFbxUMvWX5lLxChYE7Y84y9cUMomeptRgoBVii3LRNOOyR5lgdWEYKO7AWFnTa5Klk0 N6GXXEsY052OyN7xI1RT4YPrtTzhvdEvhx0R+/KABn6994zDJ1t9hGXxISoLhvCCCtwI die4Qfzu0iGgssA5JWySGW6HBUSbvXHFmCCAgd1V+5Y2BeQSHPJjGDP4FIDNbrRnCjO/ ZzE9Q+gDzd1k8UgSSGnoecnk/b6dBIjw9Mo5g57uwxl4Bha7yeDnl0JIzg6NV10B9oLv 3YCw== X-Gm-Message-State: AOJu0Yy+ILeZQoEgFU6HDjF4k7F1vnXd+k4WTDAges5anxW5WaWUgAjX Mc20ADu1HZ+RGIXXnPsXEglYMFvadOWUc8VgwVDUd2L2n+6c/Q== X-Received: by 2002:ac8:5915:0:b0:427:9fad:896a with SMTP id 21-20020ac85915000000b004279fad896amr10235427qty.56.1703613481775; Tue, 26 Dec 2023 09:58:01 -0800 (PST) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20231130201504.2322355-1-pasha.tatashin@soleen.com> <20231130201504.2322355-2-pasha.tatashin@soleen.com> <776e17af-ae25-16a0-f443-66f3972b00c0@google.com> <1fd66377-030c-2e48-e658-4669bbf037e9@google.com> In-Reply-To: From: Pasha Tatashin Date: Tue, 26 Dec 2023 12:57:25 -0500 Message-ID: Subject: Re: [PATCH v2 01/10] iommu/vt-d: add wrapper functions for page allocations To: Matthew Wilcox Cc: David Rientjes , Andrew Morton , alim.akhtar@samsung.com, alyssa@rosenzweig.io, asahi@lists.linux.dev, baolu.lu@linux.intel.com, bhelgaas@google.com, cgroups@vger.kernel.org, corbet@lwn.net, david@redhat.com, dwmw2@infradead.org, hannes@cmpxchg.org, heiko@sntech.de, iommu@lists.linux.dev, jernej.skrabec@gmail.com, jonathanh@nvidia.com, joro@8bytes.org, krzysztof.kozlowski@linaro.org, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-rockchip@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-sunxi@lists.linux.dev, linux-tegra@vger.kernel.org, lizefan.x@bytedance.com, marcan@marcan.st, mhiramat@kernel.org, m.szyprowski@samsung.com, paulmck@kernel.org, rdunlap@infradead.org, robin.murphy@arm.com, samuel@sholland.org, suravee.suthikulpanit@amd.com, sven@svenpeter.dev, thierry.reding@gmail.com, tj@kernel.org, tomas.mudrunka@gmail.com, vdumpa@nvidia.com, wens@csie.org, will@kernel.org, yu-cheng.yu@intel.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Dec 24, 2023 at 4:48=E2=80=AFPM Matthew Wilcox wrote: > > On Sun, Dec 24, 2023 at 01:30:50PM -0800, David Rientjes wrote: > > > > s/pages/page/ here and later in this file. > > > > > > In this file, where there a page with an "order", I reference it with > > > "pages", when no order (i.e. order =3D 0), I reference it with "page" > > > > > > I.e.: __iommu_alloc_page vs. __iommu_alloc_pages > > > > > > > Eh, the struct page points to a (potentially compound) page, not a set = or > > list of pages. I won't bikeshed on it, but "struct page *pages" never > > makes sense unless it's **pages or *pages[] :) > > I'd suggest that 'pages' also makes sense when _not_ using __GFP_COMP, > as we do in fact allocate an array of pages in that case. > > That said, we shouldn't encourage the use of non-compound allocations. > It would also be good for someone to define a memdesc for iommu memory > like we have already for slab. We'll need it eventually, and it'll work > out better if someone who understands iommus (ie not me) does it. I was thinking of adding an IOMMU page table memdesc, at least by starting with Intel implementation. - For efficient freeing on page-unmap we need a counter. - We might also need a per-page page table locking (aka PTL type lock), if the current approach I am proposing is not scalable enough. - Access to debugfs (I am studying this now). However, iommu memdesc would really make sense, once all the various page table management IOMMU implementations are unified. Pasha