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 9CB1CA04E7; Tue, 3 Nov 2020 23:05:44 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9CBABA8E9; Tue, 3 Nov 2020 23:05:42 +0100 (CET) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by dpdk.org (Postfix) with ESMTP id C73186947 for ; Tue, 3 Nov 2020 23:05:39 +0100 (CET) Received: from pps.filterd (m0098396.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 0A3M4Ta7050497; Tue, 3 Nov 2020 17:05:37 -0500 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=J5ty74vX8Sz8YC0YFeaNd7pAiEiNVfaUxma834Npphk=; b=iHHeKRzOBPaaktB5eh5vLX1kjXzAtFMBPai4671rOpiBl77iHv2lhcDHfJU2ALATc/Iy qnWceksVCxcCvHDW9zk3K/Hbx3EMwsBjtMWgu/8BHUR3S0OnzVYaiHf/Kt1mGL0T5YwF tHr1/kFOJ9pHZ25VLGP8RTF/01s+UF+h/cUQBlTFbAXqa6BdvIInCnxEOp01gC8T0u3l bNHpdvQxgm1erK1LLTOb3xUjZDKep0LXH9DYHFZYRos1wUsQ30tlPSAY6a8NGx46a4Yr 8Ay6+uKxSkeIJdMfuTXYmWe0ks1yosuhMjrAd7R/qChI6jp+PHfgRW0mnrM9gpp0ikSU NA== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 34kahjadfk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 03 Nov 2020 17:05:37 -0500 Received: from m0098396.ppops.net (m0098396.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 0A3M5bGj055235; Tue, 3 Nov 2020 17:05:37 -0500 Received: from ppma02dal.us.ibm.com (a.bd.3ea9.ip4.static.sl-reverse.com [169.62.189.10]) by mx0a-001b2d01.pphosted.com with ESMTP id 34kahjadf2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 03 Nov 2020 17:05:36 -0500 Received: from pps.filterd (ppma02dal.us.ibm.com [127.0.0.1]) by ppma02dal.us.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 0A3LrYs3021037; Tue, 3 Nov 2020 22:05:36 GMT Received: from b01cxnp22036.gho.pok.ibm.com (b01cxnp22036.gho.pok.ibm.com [9.57.198.26]) by ppma02dal.us.ibm.com with ESMTP id 34h0229jcn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 03 Nov 2020 22:05:36 +0000 Received: from b01ledav001.gho.pok.ibm.com (b01ledav001.gho.pok.ibm.com [9.57.199.106]) by b01cxnp22036.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 0A3M5Zbo22806932 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 3 Nov 2020 22:05:35 GMT Received: from b01ledav001.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3C92A28071; Tue, 3 Nov 2020 22:05:35 +0000 (GMT) Received: from b01ledav001.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2FDC92806F; Tue, 3 Nov 2020 22:05:35 +0000 (GMT) Received: from localhost.localdomain (unknown [9.114.224.51]) by b01ledav001.gho.pok.ibm.com (Postfix) with ESMTP; Tue, 3 Nov 2020 22:05:35 +0000 (GMT) From: David Christensen To: dev@dpdk.org, anatoly.burakov@intel.com, david.marchand@redhat.com Cc: David Christensen Date: Tue, 3 Nov 2020 14:05:31 -0800 Message-Id: <20201103220532.176225-1-drc@linux.vnet.ibm.com> X-Mailer: git-send-email 2.18.4 In-Reply-To: <20201015172305.105717-1-drc@linux.vnet.ibm.com> References: <20201015172305.105717-1-drc@linux.vnet.ibm.com> X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312, 18.0.737 definitions=2020-11-03_16:2020-11-03, 2020-11-03 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 suspectscore=0 bulkscore=0 spamscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 adultscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011030144 Subject: [dpdk-dev] [PATCH v5 0/1] vfio: modify spapr iommu support to use static window sizing 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. --- v5: - Modify get_highest_mem_addr to return error, not address - Add comment regarding sPAPR v1/v2 default window and why it needs to be removed - Added indent to second line of vfio_spapr_dma_mem_map() definition 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 | 421 +++++++++++++++----------------- 1 file changed, 198 insertions(+), 223 deletions(-) -- 2.18.4