From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D9993134D1 for ; Thu, 2 May 2024 01:59:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714615162; cv=none; b=XRWBMV3JIgMUZeWN5i7HmtDuiHxzSx16QNYjszRZLyjdp4yITD+5X0y1IMhoasjWgdMT757Q41pwWyTEjpTN79iIXHQRTT6+VGhNY0TVeRmApTo8GKPn8K0GzLbcocR2jgNq+/RS2OoICRwkH8qun8R+6/IWKhG5rtx7+eiLdYA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714615162; c=relaxed/simple; bh=zKP4feh47Akq95l05ylgljUzunXEWN+72fMuFIKrAxs=; h=Message-ID:Date:MIME-Version:Cc:Subject:To:References:From: In-Reply-To:Content-Type; b=JJwFfyH5XiYzGbeHAm83J+c5c24lymVKmCMJ3txBfFcmb/O2jkosZgkRkUesXSakxMVloiMD49QEVcd+F16O+W2ng6GnuvdKzQgXqm+EuijCGSsLr29rODtd6JMk8Js/BerEgnSPTuYMHGK4T4lDGj0xqHWkdb8DvF5rW2boFyI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=K6vwFJH7; arc=none smtp.client-ip=198.175.65.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="K6vwFJH7" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1714615161; x=1746151161; h=message-id:date:mime-version:cc:subject:to:references: from:in-reply-to:content-transfer-encoding; bh=zKP4feh47Akq95l05ylgljUzunXEWN+72fMuFIKrAxs=; b=K6vwFJH7V8TdKS+6SQQlDkwHBmlVlGdMwRwycy0RJl1dYRBZVK78jnJT Z9/jLvyzRuJ27F8/OEjih9AgaWym0hx7ROUHR2atvZC8mWWnuQTMJy2Dw E2cSUav4apcpOfRfgBiYpTqbpnb+ekpIysj2mVl5ewKmGc7BwVXQL+9OK pEVCF/Bka48wodTIzD2CpfdbM5aihASfTEaVQoUR0dpNSj9GjaFppn891 VEN6sdknWCLpOJrJ+zRHcOnRfTNf1sCIslctclEGjZudWlCD/16IjpYG3 5CJA1Rz9MeFZ3Gs6EXACmSqcx9mMIaE6WbPiM6iP6qepoBluxQIDBdkik A==; X-CSE-ConnectionGUID: Dpm+6BVlRI22UOH0nt85FA== X-CSE-MsgGUID: KgqNLu7lSA2NR/InDo+3qA== X-IronPort-AV: E=McAfee;i="6600,9927,11061"; a="10536755" X-IronPort-AV: E=Sophos;i="6.07,247,1708416000"; d="scan'208";a="10536755" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 May 2024 18:59:20 -0700 X-CSE-ConnectionGUID: 5TEYAUJHQm6qKX56L2o3ug== X-CSE-MsgGUID: BnZJQJRhTU2OMxt832m4uw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,247,1708416000"; d="scan'208";a="31782767" Received: from unknown (HELO [10.239.159.127]) ([10.239.159.127]) by orviesa004.jf.intel.com with ESMTP; 01 May 2024 18:59:15 -0700 Message-ID: Date: Thu, 2 May 2024 09:57:44 +0800 Precedence: bulk X-Mailing-List: iommu@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Cc: baolu.lu@linux.intel.com, Palmer Dabbelt , Albert Ou , Anup Patel , Sunil V L , Nick Kossifidis , Sebastien Boeuf , Rob Herring , Krzysztof Kozlowski , Conor Dooley , devicetree@vger.kernel.org, iommu@lists.linux.dev, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux@rivosinc.com Subject: Re: [PATCH v3 5/7] iommu/riscv: Device directory management. To: Tomasz Jeznach , Joerg Roedel , Will Deacon , Robin Murphy , Paul Walmsley References: <104358de-ea86-4e25-8942-ba285d6f317b@linux.intel.com> Content-Language: en-US From: Baolu Lu In-Reply-To: <104358de-ea86-4e25-8942-ba285d6f317b@linux.intel.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 5/2/24 9:38 AM, Baolu Lu wrote: > On 5/1/24 4:01 AM, Tomasz Jeznach wrote: >> @@ -128,6 +489,7 @@ void riscv_iommu_remove(struct riscv_iommu_device >> *iommu) >>   { >>       iommu_device_unregister(&iommu->iommu); >>       iommu_device_sysfs_remove(&iommu->iommu); >> +    riscv_iommu_iodir_set_mode(iommu, RISCV_IOMMU_DDTP_MODE_OFF); >>   } >>   int riscv_iommu_init(struct riscv_iommu_device *iommu) >> @@ -138,12 +500,13 @@ int riscv_iommu_init(struct riscv_iommu_device >> *iommu) >>       if (rc) >>           return dev_err_probe(iommu->dev, rc, "unexpected device >> state\n"); >> -    /* >> -     * Placeholder for a complete IOMMU device initialization. >> -     * For now, only bare minimum: enable global identity mapping >> mode and register sysfs. >> -     */ >> -    riscv_iommu_writeq(iommu, RISCV_IOMMU_REG_DDTP, >> -               FIELD_PREP(RISCV_IOMMU_DDTP_MODE, >> RISCV_IOMMU_DDTP_MODE_BARE)); >> +    rc = riscv_iommu_iodir_alloc(iommu); >> +    if (rc) >> +        goto err_init; >> + >> +    rc = riscv_iommu_iodir_set_mode(iommu, RISCV_IOMMU_DDTP_MODE_MAX); >> +    if (rc) >> +        goto err_init; >>       rc = iommu_device_sysfs_add(&iommu->iommu, NULL, NULL, >> "riscv-iommu@%s", >>                       dev_name(iommu->dev)); > > The device directory root page might be allocated in > riscv_iommu_iodir_alloc(), > > +    if (!iommu->ddt_root) { > +        iommu->ddt_root = riscv_iommu_get_pages(iommu, 0); > +        iommu->ddt_phys = __pa(iommu->ddt_root); > +    } > > But I didn't find any place to free it in the error paths. Did I > overlook anything? I found the answer by myself. devres_alloc() is used so the page memory resources are managed by the driver core automatically. Please ignore the above comment. Not sure about the pages for paging domain. If all pages release is deferred, it may cause big memory consumption. We have a trade-off here. On one hand, this might speed up the domain mapping since all pages might be preallocated; on the other hand, it will cost more memory. Best regards, baolu 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id F3262C4345F for ; Thu, 2 May 2024 01:59:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:To:Subject:MIME-Version: Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=LOUfzTm5qPLafceAi+ULeUSELNiJtMQ2Z/vrmcdHOI0=; b=t+crd+8c1NGeACyIX0rqmU8tAz 2FRB34mIcy3AiaS69cEYVkA3QR7cWK/mb1b+j8eDWCWXlpoR8jLz0I0V/NNlZj0xN5x8fgOsUZ424 MZV9PpOfU4ij0YYoDclinniN4KhqZU54TI/S9B95YXOoFlo1CGtnFAf/8spVGMhBS5M2e3LhfUdFU MGd1Moozaa8DC8ynJy1sQL547BGISAbSGdf//IFdo/TCFU+rqnH4Ry6GwHRb40T3A5R91QkI+WRzO hB+aSL/1eIRYSulfmD0ZLj/kai6WbPt0/TlRveaeQdolLmWSLk8r+ZDP+jYlXJ7/R95yDQyeSLk0j QUgRgu4A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s2LjI-0000000BAZj-195b; Thu, 02 May 2024 01:59:24 +0000 Received: from mgamail.intel.com ([198.175.65.18]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s2LjF-0000000BAZC-36At for linux-riscv@lists.infradead.org; Thu, 02 May 2024 01:59:23 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1714615162; x=1746151162; h=message-id:date:mime-version:cc:subject:to:references: from:in-reply-to:content-transfer-encoding; bh=zKP4feh47Akq95l05ylgljUzunXEWN+72fMuFIKrAxs=; b=NDS5iUQ4xCN7uVFJkkaI4s28cTNtIgq+qTq525+dMd3+/lP0qGpDTfTU Ign7LlkBsVvZFt2JSTyMByM6oH9b0ePmyq4JCsIQXIvGUsd/0VzJEbVAk vjZk2KTmMIu4TjfSrTL0qCbUvqfvGs8UlEFgsdznSQwiNnLL5RS7CI0XP eRiRGtVk1HgOJStInqhpEt+myGGO1ahxMSKo/mNMrc5bwu420CTWdkI+z ug5zh//HaMjfg6axytWmfAngNAQsuRbgwn8Yg7gHKZtxaUSBUq/Ka3ykC LB8LGcUIIQhKSyV9H1kW7G2QUkyRZuXI+iT/6tS7EV2jNBsBHXSGY3NxD g==; X-CSE-ConnectionGUID: 6cfTDCPfSvK6/T2hF/A/mw== X-CSE-MsgGUID: g9UBpRjtTBGsZyo5TmFADQ== X-IronPort-AV: E=McAfee;i="6600,9927,11061"; a="10536760" X-IronPort-AV: E=Sophos;i="6.07,247,1708416000"; d="scan'208";a="10536760" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 May 2024 18:59:20 -0700 X-CSE-ConnectionGUID: 5TEYAUJHQm6qKX56L2o3ug== X-CSE-MsgGUID: BnZJQJRhTU2OMxt832m4uw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,247,1708416000"; d="scan'208";a="31782767" Received: from unknown (HELO [10.239.159.127]) ([10.239.159.127]) by orviesa004.jf.intel.com with ESMTP; 01 May 2024 18:59:15 -0700 Message-ID: Date: Thu, 2 May 2024 09:57:44 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 5/7] iommu/riscv: Device directory management. To: Tomasz Jeznach , Joerg Roedel , Will Deacon , Robin Murphy , Paul Walmsley References: <104358de-ea86-4e25-8942-ba285d6f317b@linux.intel.com> Content-Language: en-US From: Baolu Lu In-Reply-To: <104358de-ea86-4e25-8942-ba285d6f317b@linux.intel.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240501_185921_881369_80A90BB1 X-CRM114-Status: GOOD ( 14.65 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , devicetree@vger.kernel.org, Conor Dooley , Albert Ou , linux@rivosinc.com, linux-kernel@vger.kernel.org, Rob Herring , Sebastien Boeuf , iommu@lists.linux.dev, Palmer Dabbelt , Nick Kossifidis , Krzysztof Kozlowski , linux-riscv@lists.infradead.org, baolu.lu@linux.intel.com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gNS8yLzI0IDk6MzggQU0sIEJhb2x1IEx1IHdyb3RlOgo+IE9uIDUvMS8yNCA0OjAxIEFNLCBU b21hc3ogSmV6bmFjaCB3cm90ZToKPj4gQEAgLTEyOCw2ICs0ODksNyBAQCB2b2lkIHJpc2N2X2lv bW11X3JlbW92ZShzdHJ1Y3QgcmlzY3ZfaW9tbXVfZGV2aWNlIAo+PiAqaW9tbXUpCj4+IMKgIHsK Pj4gwqDCoMKgwqDCoCBpb21tdV9kZXZpY2VfdW5yZWdpc3RlcigmaW9tbXUtPmlvbW11KTsKPj4g wqDCoMKgwqDCoCBpb21tdV9kZXZpY2Vfc3lzZnNfcmVtb3ZlKCZpb21tdS0+aW9tbXUpOwo+PiAr wqDCoMKgIHJpc2N2X2lvbW11X2lvZGlyX3NldF9tb2RlKGlvbW11LCBSSVNDVl9JT01NVV9ERFRQ X01PREVfT0ZGKTsKPj4gwqAgfQo+PiDCoCBpbnQgcmlzY3ZfaW9tbXVfaW5pdChzdHJ1Y3Qgcmlz Y3ZfaW9tbXVfZGV2aWNlICppb21tdSkKPj4gQEAgLTEzOCwxMiArNTAwLDEzIEBAIGludCByaXNj dl9pb21tdV9pbml0KHN0cnVjdCByaXNjdl9pb21tdV9kZXZpY2UgCj4+ICppb21tdSkKPj4gwqDC oMKgwqDCoCBpZiAocmMpCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gZGV2X2Vycl9wcm9i ZShpb21tdS0+ZGV2LCByYywgInVuZXhwZWN0ZWQgZGV2aWNlIAo+PiBzdGF0ZVxuIik7Cj4+IC3C oMKgwqAgLyoKPj4gLcKgwqDCoMKgICogUGxhY2Vob2xkZXIgZm9yIGEgY29tcGxldGUgSU9NTVUg ZGV2aWNlIGluaXRpYWxpemF0aW9uLgo+PiAtwqDCoMKgwqAgKiBGb3Igbm93LCBvbmx5IGJhcmUg bWluaW11bTogZW5hYmxlIGdsb2JhbCBpZGVudGl0eSBtYXBwaW5nIAo+PiBtb2RlIGFuZCByZWdp c3RlciBzeXNmcy4KPj4gLcKgwqDCoMKgICovCj4+IC3CoMKgwqAgcmlzY3ZfaW9tbXVfd3JpdGVx KGlvbW11LCBSSVNDVl9JT01NVV9SRUdfRERUUCwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgRklFTERfUFJFUChSSVNDVl9JT01NVV9ERFRQX01PREUsIAo+PiBSSVNDVl9JT01NVV9E RFRQX01PREVfQkFSRSkpOwo+PiArwqDCoMKgIHJjID0gcmlzY3ZfaW9tbXVfaW9kaXJfYWxsb2Mo aW9tbXUpOwo+PiArwqDCoMKgIGlmIChyYykKPj4gK8KgwqDCoMKgwqDCoMKgIGdvdG8gZXJyX2lu aXQ7Cj4+ICsKPj4gK8KgwqDCoCByYyA9IHJpc2N2X2lvbW11X2lvZGlyX3NldF9tb2RlKGlvbW11 LCBSSVNDVl9JT01NVV9ERFRQX01PREVfTUFYKTsKPj4gK8KgwqDCoCBpZiAocmMpCj4+ICvCoMKg wqDCoMKgwqDCoCBnb3RvIGVycl9pbml0Owo+PiDCoMKgwqDCoMKgIHJjID0gaW9tbXVfZGV2aWNl X3N5c2ZzX2FkZCgmaW9tbXUtPmlvbW11LCBOVUxMLCBOVUxMLCAKPj4gInJpc2N2LWlvbW11QCVz IiwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRldl9uYW1l KGlvbW11LT5kZXYpKTsKPiAKPiBUaGUgZGV2aWNlIGRpcmVjdG9yeSByb290IHBhZ2UgbWlnaHQg YmUgYWxsb2NhdGVkIGluCj4gcmlzY3ZfaW9tbXVfaW9kaXJfYWxsb2MoKSwKPiAKPiArwqDCoMKg IGlmICghaW9tbXUtPmRkdF9yb290KSB7Cj4gK8KgwqDCoMKgwqDCoMKgIGlvbW11LT5kZHRfcm9v dCA9IHJpc2N2X2lvbW11X2dldF9wYWdlcyhpb21tdSwgMCk7Cj4gK8KgwqDCoMKgwqDCoMKgIGlv bW11LT5kZHRfcGh5cyA9IF9fcGEoaW9tbXUtPmRkdF9yb290KTsKPiArwqDCoMKgIH0KPiAKPiBC dXQgSSBkaWRuJ3QgZmluZCBhbnkgcGxhY2UgdG8gZnJlZSBpdCBpbiB0aGUgZXJyb3IgcGF0aHMu IERpZCBJCj4gb3Zlcmxvb2sgYW55dGhpbmc/CgpJIGZvdW5kIHRoZSBhbnN3ZXIgYnkgbXlzZWxm LiBkZXZyZXNfYWxsb2MoKSBpcyB1c2VkIHNvIHRoZSBwYWdlIG1lbW9yeQpyZXNvdXJjZXMgYXJl IG1hbmFnZWQgYnkgdGhlIGRyaXZlciBjb3JlIGF1dG9tYXRpY2FsbHkuIFBsZWFzZSBpZ25vcmUK dGhlIGFib3ZlIGNvbW1lbnQuCgpOb3Qgc3VyZSBhYm91dCB0aGUgcGFnZXMgZm9yIHBhZ2luZyBk b21haW4uIElmIGFsbCBwYWdlcyByZWxlYXNlIGlzCmRlZmVycmVkLCBpdCBtYXkgY2F1c2UgYmln IG1lbW9yeSBjb25zdW1wdGlvbi4gV2UgaGF2ZSBhIHRyYWRlLW9mZiBoZXJlLgpPbiBvbmUgaGFu ZCwgdGhpcyBtaWdodCBzcGVlZCB1cCB0aGUgZG9tYWluIG1hcHBpbmcgc2luY2UgYWxsIHBhZ2Vz Cm1pZ2h0IGJlIHByZWFsbG9jYXRlZDsgb24gdGhlIG90aGVyIGhhbmQsIGl0IHdpbGwgY29zdCBt b3JlIG1lbW9yeS4KCkJlc3QgcmVnYXJkcywKYmFvbHUKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1y aXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtcmlzY3YK