Message ID | 20201015172305.105717-1-drc@linux.vnet.ibm.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.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> |
Series |
vfio: change spapr DMA window sizing operation
|
|
Message
David Christensen
Oct. 15, 2020, 5:23 p.m. UTC
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(-)