From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
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 <dev@dpdk.org>; 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 <drc@linux.vnet.ibm.com>
To: dev@dpdk.org, anatoly.burakov@intel.com, david.marchand@redhat.com
Cc: David Christensen <drc@linux.vnet.ibm.com>
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 <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

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 <anatoly.burakov@intel.com>
---
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