From nobody Mon Feb 9 20:35:10 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=marvell.com ARC-Seal: i=1; a=rsa-sha256; t=1584953315; cv=none; d=zohomail.com; s=zohoarc; b=YJPM2PFNB09Faa6LcKcPENw3Z33EoJz60BjXJHotOLUpAjNKM94EcpUwdrKYWRbTu828DHVhbOQpekeZXHgoO9Ij1kI+OTUwg/fN66+XWFBsYiIEQgO8zmp2oZ3d3PH2bSGSXx/OfTZnll4/Gh3DU392DBVFS2sIhE4NEgmpylw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584953315; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Yu7U+IO1rJyPwcaDXc5BvMtX+sxoPo9svPD67aq7oOo=; b=nLP0+3t/65E54+EiZRRnuNcTsGx7zCxENaGh/wY5ED2RU8ojjzSAVQHYs/4AW3Gj3h++Htq49WPZE/wFqn4h6npfeFsrsDWqjQYRXOydlP6gnaE9ARKMlco21crEMaFPz+UKxtk9cR6858kSfWnnl/4SwHgHc+FTI/X8niX4e5Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584953315813862.552910403084; Mon, 23 Mar 2020 01:48:35 -0700 (PDT) Received: from localhost ([::1]:58648 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jGIl8-0001SU-ED for importer@patchew.org; Mon, 23 Mar 2020 04:48:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48377) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jGIjP-00085r-7g for qemu-devel@nongnu.org; Mon, 23 Mar 2020 04:46:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jGIjN-00036M-UR for qemu-devel@nongnu.org; Mon, 23 Mar 2020 04:46:47 -0400 Received: from mx0a-0016f401.pphosted.com ([67.231.148.174]:43406 helo=mx0b-0016f401.pphosted.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jGIjL-00034t-4u; Mon, 23 Mar 2020 04:46:43 -0400 Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 02N8eAKB010842; Mon, 23 Mar 2020 01:46:40 -0700 Received: from sc-exch01.marvell.com ([199.233.58.181]) by mx0a-0016f401.pphosted.com with ESMTP id 2ywg9ndrvy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 23 Mar 2020 01:46:40 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 23 Mar 2020 01:46:38 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 23 Mar 2020 01:46:38 -0700 Received: from bbhushan2.marvell.com (10.93.176.43) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 23 Mar 2020 01:46:33 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=pfpt0818; bh=Yu7U+IO1rJyPwcaDXc5BvMtX+sxoPo9svPD67aq7oOo=; b=KYp/SFJ7rH3N7EY41c2vYIa4JUd5vnIaAOIvT4t+SLgMOkw4a9k7PmU/vHcjb/lOOYXk 4C+m3p3yTil04bUb8aD2CaySpJ8h7hqGWBTs4LGXA8529f5Lh4f1gRyyTaioQViMWxqi OHmLO7S2aK5Il6WL3hLknKThibQAWIv2CN36wWUOOLi1WooVpK5VbTE/9Ik2KdI+eM8t FVFfm74EwMWSaMydvZmberdPZwKSZh+Yra15ucpN5pCWQtAaFHRdyohEv7GSQDGQqACQ 3BzO7ODlNfUj/Gh1j7cYrbEw3PXVjC2ARK0xWToXbmTfGr5wvGmrUNAkruC6WQvrn6j9 iA== From: Bharat Bhushan To: , , , , , , , , , , , , , Subject: [PATCH v9 2/9] memory: Add interface to set iommu page size mask Date: Mon, 23 Mar 2020 14:16:10 +0530 Message-ID: <20200323084617.1782-3-bbhushan2@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200323084617.1782-1-bbhushan2@marvell.com> References: <20200323084617.1782-1-bbhushan2@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.645 definitions=2020-03-23_02:2020-03-21, 2020-03-23 signatures=0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-Received-From: 67.231.148.174 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Bharat Bhushan Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @marvell.com) Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Allow to set page size mask to be supported by iommu. This is required to expose page size mask compatible with host with virtio-iommu. Signed-off-by: Bharat Bhushan --- include/exec/memory.h | 20 ++++++++++++++++++++ memory.c | 10 ++++++++++ 2 files changed, 30 insertions(+) diff --git a/include/exec/memory.h b/include/exec/memory.h index e85b7de99a..063c424854 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -355,6 +355,16 @@ typedef struct IOMMUMemoryRegionClass { * @iommu: the IOMMUMemoryRegion */ int (*num_indexes)(IOMMUMemoryRegion *iommu); + + /* + * Set supported IOMMU page size + * + * Optional method: if this is supported then set page size that + * can be supported by IOMMU. This is called to set supported page + * size as per host Linux. + */ + void (*iommu_set_page_size_mask)(IOMMUMemoryRegion *iommu, + uint64_t page_size_mask); } IOMMUMemoryRegionClass; =20 typedef struct CoalescedMemoryRange CoalescedMemoryRange; @@ -1363,6 +1373,16 @@ int memory_region_iommu_attrs_to_index(IOMMUMemoryRe= gion *iommu_mr, */ int memory_region_iommu_num_indexes(IOMMUMemoryRegion *iommu_mr); =20 +/** + * memory_region_iommu_set_page_size_mask: set the supported pages + * size by iommu. + * + * @iommu_mr: the memory region + * @page_size_mask: supported page size mask + */ +void memory_region_iommu_set_page_size_mask(IOMMUMemoryRegion *iommu_mr, + uint64_t page_size_mask); + /** * memory_region_name: get a memory region's name * diff --git a/memory.c b/memory.c index aeaa8dcc9e..14c8783084 100644 --- a/memory.c +++ b/memory.c @@ -1833,6 +1833,16 @@ static int memory_region_update_iommu_notify_flags(I= OMMUMemoryRegion *iommu_mr, return ret; } =20 +void memory_region_iommu_set_page_size_mask(IOMMUMemoryRegion *iommu_mr, + uint64_t page_size_mask) +{ + IOMMUMemoryRegionClass *imrc =3D IOMMU_MEMORY_REGION_GET_CLASS(iommu_m= r); + + if (imrc->iommu_set_page_size_mask) { + imrc->iommu_set_page_size_mask(iommu_mr, page_size_mask); + } +} + int memory_region_register_iommu_notifier(MemoryRegion *mr, IOMMUNotifier *n, Error **errp) { --=20 2.17.1