From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 46359C5517A for ; Mon, 9 Nov 2020 20:35:41 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id 702B320665 for ; Mon, 9 Nov 2020 20:35:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="XfrhJ+z6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 702B320665 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B0C2A69C8; Mon, 9 Nov 2020 21:35:37 +0100 (CET) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by dpdk.org (Postfix) with ESMTP id 7F184697B for ; Mon, 9 Nov 2020 21:35:34 +0100 (CET) Received: from pps.filterd (m0098399.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 0A9KXDh9144317; Mon, 9 Nov 2020 15:35:33 -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=DbuRDd43U/L4nZlZBnzv1wKze9c63DlqChPnLSjzFOU=; b=XfrhJ+z6Gj/r11iEoEGG7aj/luBGXhr6UKRqMA21E3VDjR4Pe2fICygE2IplFIc7Pn2H NdWyT06GoPyYzx2y0TuhFxA+mdCzy5QkkK4C6D/hqwjh8jMlD33pCqNqhBUlO9bFVhRS ipGEXda0qXwzA/8xWniSrYEbrnp93ogys9xdiu68Dn/aEqdqBuJCFfMPYSmj+oL7zWbW +VzzSTk3nQBMoJG8iEm7zwWszGt34aVNqOSvUCnqGpaAstPAmitXvUQrG4HUtU7s2suS bqgFVkQkkAruegGOovqNsVYXTWAAX6nAJBCUPDS4kjR738UrsK8f2ETCRTwVpdQlv6uU Bg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 34q9jsy9r4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 09 Nov 2020 15:35:33 -0500 Received: from m0098399.ppops.net (m0098399.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 0A9KXkc7150032; Mon, 9 Nov 2020 15:35:33 -0500 Received: from ppma02wdc.us.ibm.com (aa.5b.37a9.ip4.static.sl-reverse.com [169.55.91.170]) by mx0a-001b2d01.pphosted.com with ESMTP id 34q9jsy9qq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 09 Nov 2020 15:35:33 -0500 Received: from pps.filterd (ppma02wdc.us.ibm.com [127.0.0.1]) by ppma02wdc.us.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 0A9KZK4F031811; Mon, 9 Nov 2020 20:35:31 GMT Received: from b01cxnp22034.gho.pok.ibm.com (b01cxnp22034.gho.pok.ibm.com [9.57.198.24]) by ppma02wdc.us.ibm.com with ESMTP id 34nk7qu0me-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 09 Nov 2020 20:35:31 +0000 Received: from b01ledav006.gho.pok.ibm.com (b01ledav006.gho.pok.ibm.com [9.57.199.111]) by b01cxnp22034.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 0A9KZVBq19661278 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 9 Nov 2020 20:35:31 GMT Received: from b01ledav006.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 781FAAC05E; Mon, 9 Nov 2020 20:35:31 +0000 (GMT) Received: from b01ledav006.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6B000AC05B; Mon, 9 Nov 2020 20:35:31 +0000 (GMT) Received: from localhost.localdomain (unknown [9.114.224.51]) by b01ledav006.gho.pok.ibm.com (Postfix) with ESMTP; Mon, 9 Nov 2020 20:35:31 +0000 (GMT) From: David Christensen To: dev@dpdk.org, anatoly.burakov@intel.com, david.marchand@redhat.com Cc: David Christensen Date: Mon, 9 Nov 2020 12:35:27 -0800 Message-Id: <20201109203528.132797-1-drc@linux.vnet.ibm.com> X-Mailer: git-send-email 2.18.4 In-Reply-To: <20201103220532.176225-1-drc@linux.vnet.ibm.com> References: <20201103220532.176225-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-09_12:2020-11-05, 2020-11-09 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 priorityscore=1501 adultscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 suspectscore=0 mlxscore=0 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011090137 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. --- v6: - Fix build error on Linux kernels prior to 4.2.0 - Rebased on 20.11-rc3 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 | 430 +++++++++++++++----------------- 1 file changed, 207 insertions(+), 223 deletions(-) -- 2.18.4