From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 217B3A04DB; Thu, 15 Oct 2020 19:23:14 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id F26661D73C; Thu, 15 Oct 2020 19:23:12 +0200 (CEST) Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by dpdk.org (Postfix) with ESMTP id 50BE91D72C for ; Thu, 15 Oct 2020 19:23:10 +0200 (CEST) Received: from pps.filterd (m0098421.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 09FH4qkC055384; Thu, 15 Oct 2020 13:23:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=pp1; bh=I+4JRCso2sCm+iNjFYRGVDZNu5h08iG/pG2gH63SbcU=; b=ecw1mOF2x2FJCg1kPABA8r+LshO6b1vy+o/O7DUwD4Re+5hSnvM505+133Z3ECa/u2lm K1ffHWAzT2qA9s+YG6eezm46h7a+rzWVxAMlrug/vrV116To420xPpcWnutmgLi/eMaM p7LpmVrJJkLZAHa4pmWf7ltYBf75iG6C61/oNsy/lAJgLdlXfbnHOBoheDiJHnWWgjjS iv01r+ka+UZu8ED7KIZddkM8xEUb0RXp4wlOV30XHRDvBw2882hMw9Y8wVyV+5D4joIM 0NRCqwZBaRYSzXijTbx7iJN8/hZvSRd8ODnUS4J4CfIPuXPAjEybhK1LU2CuDTNgafx3 xg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 346sygswh8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 15 Oct 2020 13:23:09 -0400 Received: from m0098421.ppops.net (m0098421.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 09FH5Liv058679; Thu, 15 Oct 2020 13:23:09 -0400 Received: from ppma04dal.us.ibm.com (7a.29.35a9.ip4.static.sl-reverse.com [169.53.41.122]) by mx0a-001b2d01.pphosted.com with ESMTP id 346sygswh2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 15 Oct 2020 13:23:09 -0400 Received: from pps.filterd (ppma04dal.us.ibm.com [127.0.0.1]) by ppma04dal.us.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 09FHHPoY027007; Thu, 15 Oct 2020 17:23:08 GMT Received: from b01cxnp22033.gho.pok.ibm.com (b01cxnp22033.gho.pok.ibm.com [9.57.198.23]) by ppma04dal.us.ibm.com with ESMTP id 346dd7ppey-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 15 Oct 2020 17:23:08 +0000 Received: from b01ledav001.gho.pok.ibm.com (b01ledav001.gho.pok.ibm.com [9.57.199.106]) by b01cxnp22033.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 09FHN78d54723058 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Oct 2020 17:23:08 GMT Received: from b01ledav001.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E137F28059; Thu, 15 Oct 2020 17:23:07 +0000 (GMT) Received: from b01ledav001.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CA34428058; Thu, 15 Oct 2020 17:23:07 +0000 (GMT) Received: from localhost.localdomain (unknown [9.114.224.51]) by b01ledav001.gho.pok.ibm.com (Postfix) with ESMTP; Thu, 15 Oct 2020 17:23:07 +0000 (GMT) From: David Christensen To: dev@dpdk.org, anatoly.burakov@intel.com, david.marchand@redhat.com Cc: David Christensen Date: Thu, 15 Oct 2020 10:23:04 -0700 Message-Id: <20201015172305.105717-1-drc@linux.vnet.ibm.com> X-Mailer: git-send-email 2.18.4 In-Reply-To: <20200810210707.745083-1-drc@linux.vnet.ibm.com> References: <20200810210707.745083-1-drc@linux.vnet.ibm.com> X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235, 18.0.687 definitions=2020-10-15_10:2020-10-14, 2020-10-15 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 priorityscore=1501 bulkscore=0 spamscore=0 mlxlogscore=999 clxscore=1015 mlxscore=0 adultscore=0 lowpriorityscore=0 malwarescore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2010150109 Subject: [dpdk-dev] [PATCH v4 0/1] vfio: change spapr DMA window sizing operation X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The SPAPR v2 IOMMU used on bare-metal PowerNV systems requires that a DMA window be defined before mapping/unmapping memory. The current VFIO code dynamically resizes this DMA window every time a new memory request is made, which requires that all existing memory be unmapped/remapped. While this strategy worked in DPDK 17.11 and earlier where memory was statically allocated during startup, it is potentially dangerous in DPDK 18.11 and later where memory can be allocated during runtime, temporarily invalidating IOVA memory used by hardware. This new code statically sizes the DMA window at startup, based on the amount of memory installed in the system, avoiding the need to unmap memory during runtime. Reviewed-by: Anatoly Burakov --- v4: - Move file reading code out of vfio_spapr_window_size_walk() v3: - Rebase for 20.08 v2: - Drop patch to wrap ppc64 code with ifdef's - Add warning when external memory detected - Change VA memory size detection to scan memseg list when setting DMA window for IOVA=VA - Add explicit error message when attempting to map outside the DMA window David Christensen (1): vfio: modify spapr iommu support to use static window sizing lib/librte_eal/linux/eal_vfio.c | 412 +++++++++++++++----------------- 1 file changed, 188 insertions(+), 224 deletions(-) -- 2.18.4