From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0070.outbound.protection.outlook.com [104.47.41.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 4ECCA21E3EA77 for ; Thu, 14 Sep 2017 04:05:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=rZk46ixxaQfI64vJR8UjSrncAeRMpBbS9b5s+2A55Jk=; b=1g3sDyGJ0qGR/pBGcnTPZ8S7JlAImpSDCzZihpohyr3aju+7eirxco61LQgVgrGDhXQRD0cI9tKH9gJzJnjZZVlJeKa1onrSkYx7Ex6o4IKQmc5uJlSdFXDYd5mpEWblk4VdAyKItw2nzIfqcRSo9/MQwNyH1vvtjTStDw70ZgQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from ubuntu-010236106000.amd.com (165.204.78.1) by DM2PR12MB0156.namprd12.prod.outlook.com (2a01:111:e400:50ce::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.35.12; Thu, 14 Sep 2017 11:08:39 +0000 From: Brijesh Singh To: edk2-devel@lists.01.org Cc: Brijesh Singh , Ard Biesheuvel , Jordan Justen , Tom Lendacky , Laszlo Ersek Date: Thu, 14 Sep 2017 06:08:19 -0500 Message-Id: <20170914110822.112540-6-brijesh.singh@amd.com> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20170914110822.112540-1-brijesh.singh@amd.com> References: <20170914110822.112540-1-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: BN6PR08CA0083.namprd08.prod.outlook.com (2603:10b6:404:b6::21) To DM2PR12MB0156.namprd12.prod.outlook.com (2a01:111:e400:50ce::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 91a328ad-36ac-4786-f2e3-08d4fb60f42e X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM2PR12MB0156; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 3:d2jEUkfjrzMTDwBeuOx+ris4eBNdVsbua0ukiOt3YYOb7jWKgaeiuEzWgvBp2/Y/sxgtc2QZiXGKu0uWk6En0ynNU3izwGMkfundxjdHbeE7cV6Dm6+6Nmvxnhgj7h1jNjItw7R1b6NMDwfRk+ic8vwDjspC+h4dYVEpZSGDbvwoYHQlgsVkzM1gTO00qm5UhoOIk6cvbTcCv09BM8O1Qz3ZBybp8OQ0JErTswNOQ96wFkpWI41UmkWcJQT9a0oh; 25:NhoG+Xyh31E2W5czd9Em0jvJfLOOsNa0kDwMSFXs1AeI05eKHBlG44HOIydh3vU36IqPc+6Hu1fXkYdzaFfuoScatWO2g13OOj8TZsqi97VCGHXl/F3p+e2yKDSiyWWDvVxG5RCk4uNb/VvpeTYh4JhDZ+Qh28zJ3JtdEaxUaJjNl1lnbq/mQDmx52s+lr2uuCucL3HtK9LGbbNEklZy6WOKHmWbWo7F8SRCU8rHiW/5Z1Vz0PIp3beUhDy2pWGp4BbPgaaBiSun4FaxnP8NCtG6F2tdtZOLuTXNL2ZLZpZ/C03dIPVz+vk6MRUdx7AtAwTyMNzI2e7e+30qt9WrHA==; 31:PIOg+mX0lHd5URWWkChcEEN6r6g6t4Mo2t3rMs4Mm3HjlkjM2Q9f1xmeBXU2Xu5B9Iln+/vzW5nNEc3ZsyBwIAzirz/+9uHJOwqZ7uY0K1XUFlCVuToIVDjgF4GHtaEZV7CKq7wTlKlupm0frgBo4UZbU26NG8Rm9dA61vRkSvqztYa/OXMbDIdc8hCU8F2arFH41xQluGEZqas6ERZRSh5PALBxS75KGnDMvjW00xA= X-MS-TrafficTypeDiagnostic: DM2PR12MB0156: X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 20:AME7Y+4K2a4JQg63fTeFU7TElDAQ8+YqYKqzJfBYnTPs+nKSARVSDgMp85XVsMSyd9h0w4ccF1c4Kl45hsZWCh7Qc87G6iMJpwG49h3wQriQCfGOVDvzVnjFnXouw7ljUGj+VVzmGAvwtHp41c1hgUJJfyt/lXtWb3Z0u+MMkBFPpas34RyZYjV+20GunSmfMeBTODMf5PhC+O7aeAu7rdePYkuT/vFXnLujGexBAHKoicHjST0YnLxI5DUQPHWQZgQZqYT0S0WZ+83mEPaFqpqihzal8PlUZHeG8TlxE6GTd+M1Sw0I2CjFfXB577rfR2okcSl++d4RbWHwM6ujwjXCwH0ZhAYPi+2r3bEE41p7c3cT09V9CkfvOWkmZzRGBBG3tYc8Bk+uR31gVJZzOiMdPDHmH9fct1agtymtTJSQjNAQEjjmt72cXtklvAiYvPy1CfoT688N0S7nlsCiqD9yTbSR8GP8KBiHgyhbI5kY+AlrXuk8y4h8jKDfzgcB; 4:LPy2qLch1iU4gveGS7lQezWcX1cE1IejW4ilcSOyCbf55A6dkxS/Ty3WhMCovizjQQRrO8DR1GdWxlC2wP56EuOIHSrsVUHJcye/MEER78gxHDeZaiznVkS4wQWdBUQf22U9G7U7b3az3/23qxwnVJ1T0oeaE5Jh3biCH3mILmO9gv6mVrXN58kxG1xJJicM56Rv/CelLMYy64X2lEKmhOypi8JEwS5xeksCyYDwDGlwfSDxXlHXvzAqzdCZfTWGUmVUz/lsBfuc4O6KEEEiYpiZjZFkjH+dGcM9Q/VQZNho4OM1vLrhLD/LNY132Xo7EKCq4a9+zV97K8ec2LMdIE6IL1JOZsa54fDn4b9axNs= X-Exchange-Antispam-Report-Test: UriScan:(20558992708506)(767451399110)(228905959029699); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(6055026)(6041248)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(20161123564025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR12MB0156; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR12MB0156; X-Forefront-PRVS: 0430FA5CB7 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(346002)(376002)(39860400002)(189002)(199003)(189998001)(50986999)(76176999)(105586002)(106356001)(33646002)(2361001)(2351001)(5660300001)(6666003)(6916009)(2950100002)(6116002)(25786009)(36756003)(1076002)(101416001)(68736007)(3846002)(53416004)(16586007)(6486002)(478600001)(97736004)(50226002)(110136004)(81156014)(47776003)(48376002)(16526017)(81166006)(54906002)(8676002)(8936002)(15650500001)(7736002)(316002)(305945005)(2906002)(4326008)(53936002)(86362001)(5003940100001)(50466002)(66066001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0156; H:ubuntu-010236106000.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR12MB0156; 23:DNy7UQJzypqq7gC/qFbBew5AnUivGinAPCpIf8R3/?= =?us-ascii?Q?qaSBd86lKG/dpYTY85J/6n92NpcHBUZfRizZEJ1WQXToEMtQQoS5TAhnehdo?= =?us-ascii?Q?S1AASdR1vhANFN3n9WrjkFiYsfdBg/tfSaPUBxETsbcQwFe/E4ir4A9AdQtF?= =?us-ascii?Q?PkxZ1E0PiJ2db67bk1whmD3ZScjyB9w7UTBfXQYy+nhj7+EGMwe9XP0x/MDe?= =?us-ascii?Q?X+SE2UKdOx/KmxhmXt8BM1ud5FB+OcokZA0MQUcgQ1tuPYGla7eg64EiKqO9?= =?us-ascii?Q?Ou4Dodsbpz/BblET8VUD6gJwaqKwtir2OOxvZqpZda/p7dY85S/icCYzBXdQ?= =?us-ascii?Q?p8po9yGhNFt3/nmel0WUKTvPJy8Xu14CWX4kgw8Lf/1m+7W5g3wFMijpbXoi?= =?us-ascii?Q?E1Rl5j950ffY0kTPfAfYi0B1CDk2E6TRJuxD6dsrCAp0bpkAc5Cu+AvvWpWk?= =?us-ascii?Q?uAj3ZpOg6MVep6q7aquDH2E73eGq0gEArPaghT67J23PflcFxbgeVGE2TqRR?= =?us-ascii?Q?fj0KnyDEioZSncakmd/PjDSjXWy4/LfXWXlCz6veKeNxAE3/umJMZIUj/q8S?= =?us-ascii?Q?fSYxCHBWeAj3RX3XoJiR5jMloZhZIJcVLjfEbTv2nyfbhB8uyN9b5to12sJ2?= =?us-ascii?Q?yBZEulJo4+evu+SecIsBCp1rwpY6KUFoYZTVtoaBvmSG0wHkgQXIWe2tf61K?= =?us-ascii?Q?cLfNwPLpS0jjsN+0X8MD0qpMnKi75EtByEqkYEH6RqEF3/GUF2FZS0tOrged?= =?us-ascii?Q?j9x4ky8ELPi2deStMcNnIGHdO4qZWL1QskJXLVEyYuzGr8Fudjm/A/L3SO8U?= =?us-ascii?Q?AhmGYd9y7dE30zwWJqutPw2Gcv7U0lhbX3gHD/NZXDQHW430bixiUyH0RV7m?= =?us-ascii?Q?SmzckGK3NwhOXuHbtrx/BT2olPTaLTn8XKXS5j8uws2wSztN5W1h28rcD/Cf?= =?us-ascii?Q?qWfmYZs42QCT2b2hK3g/lVEj5L/Mbup2DLn9D7Z9kjhEHDmlEO0H0SwTSsvQ?= =?us-ascii?Q?bol9/NtFcRQEHOLT/3vWhU7RY75mb31alKqdF3YuvxizrgiklIwVAO5fZbNa?= =?us-ascii?Q?1D51z4J/UztnKlshFG9d0Fp5YHmu6QRvP1cXQ/C5W1gnspIlU6CA/vVGt5Zj?= =?us-ascii?Q?XL7ikwk5SvRgVDukfEWTeXG20Ih9bTX0xz3IvvOOdiQb8ARPlakx2P8ruhZo?= =?us-ascii?Q?B8reef006a2CiJ+cFVeKe5l5+PbExYzBJeh?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 6:sjPZL7KYsvXZrJOz0d1nUWaAlctZNX65JhLyC9QEASjziV7hxSx8bkXEchZONwJACIuuhFKWRJbTuE+PTcJXZl1MZVRf4o0D5qCCPxAc8O8EEHPkKKCbRSZoKdFsog4ugBt99aA83AJr/uexnFnzMlC/gyc4agKV3hgq5CFp8HvoWEFtfbY0DR8SkNRStraIvMUasc9eWKBEwKE86NzI89WDzYK/xCor3cYmKkkFxxJgFpB79RygfSXDbe92QRR0Js/Hqlcmh9Ah0SgHdfS+8rjEFRNQWgCrhazRb04+lw29an3FpRXSs4/nIHaGgxBPKwOoSlzajuKjhaON1KPY7w==; 5:RXYcFPmqDpaxWDpmZLGd/h99l3qiH46Rr6h1qWZILm7luGzAiisjrTTx/eL0Q6BBi1Aog0pddFWcm2l7mAk77FUUOB4GWYtQjw8bZQf7VURoN5EjgEmUWi9s+4O2Tp5kXw5Rz9ojgoU+d7wTXOP2yA==; 24:7xtwS4z0LZpMCnMPGEuRo1aC1IbkT7JVKT92F9Eb2dORzedzoI5rFhJ1250v8K7C58MOgusC4rVLjL2z9VelBpEs0qH5LTPbBDoSNheAoKc=; 7:pNyEh7eFSAtf3rhHEHqVkpwoD6XWOHWtEcSSt1/jvtOMdzk/g2OiPvoGB4UvM/O15+yeojfZHzgDe/pBQEUXkXExOP51vkZZP0p3bqefTbByC0SPEXqlAoJnIdcad2koaaWNHWu/Tzzz3SuQsQOjfusj1nKEnQ5no+QLQHHOC3dDf9t8H8o8W1ekm2ebp8JxyiYl2IDmZzjAAdXnWybuKWVsgVHUMyP+heedyQrmDg0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0156; 20:TFLOj8Nhhf8FHoJguc6kCJPkenjhajY6cPU/BdYTXFDpsIYLjD0rwiehKYAwvFkP0bPgHxx5dDsx4frlgf8hVR7QXykqU5V8UPu0JihnggTCCCotz5s7v6Vl1R8wR+BgkfCZ+ibaPNH+oGTD446Hh4Lax5S0A8NahfcuS86ox91BPRD6Us53E/sV6UiwK6c1eCnwHn2UIKN0+9bY+sZdVTqMj6UiP40fkeZT5aLMfh7gLpnMt85qkPsLgakzqbya X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2017 11:08:39.1982 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0156 Subject: [PATCH v3 5/8] OvmfPkg/VirtioNetDxe: update TechNotes X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Sep 2017 11:05:42 -0000 Content-Type: text/plain In next patches we will update Virtio transmit to use the device-mapped address of the caller-supplied packet. The patch documents the new model. Cc: Ard Biesheuvel Cc: Jordan Justen Cc: Tom Lendacky Cc: Laszlo Ersek Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Brijesh Singh Reviewed-by: Laszlo Ersek --- OvmfPkg/VirtioNetDxe/TechNotes.txt | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/OvmfPkg/VirtioNetDxe/TechNotes.txt b/OvmfPkg/VirtioNetDxe/TechNotes.txt index fedbaee07ec7..40a22f66dc22 100644 --- a/OvmfPkg/VirtioNetDxe/TechNotes.txt +++ b/OvmfPkg/VirtioNetDxe/TechNotes.txt @@ -312,10 +312,14 @@ in the following: that is shared by all of the head descriptors. This virtio-net request header is never modified by the host. -- Each tail descriptor is re-pointed to the caller-supplied packet buffer - whenever VirtioNetTransmit places the corresponding head descriptor on the - Available Ring. The caller is responsible to hang on to the unmodified buffer - until it is reported transmitted by VirtioNetGetStatus. +- Each tail descriptor is re-pointed to the device-mapped address of the + caller-supplied packet buffer whenever VirtioNetTransmit places the + corresponding head descriptor on the Available Ring. A reverse mapping, from + the device-mapped address to the caller-supplied packet address, is saved in + an associative data structure that belongs to the driver instance. + +- Per spec, the caller is responsible to hang on to the unmodified packet + buffer until it is reported transmitted by VirtioNetGetStatus. Steps of packet transmission: @@ -338,9 +342,11 @@ Steps of packet transmission: - Client code calls VirtioNetGetStatus. In case the Used Ring is empty, the function reports no Tx completion. Otherwise, a head descriptor's index is consumed from the Used Ring and recycled to the private stack. The client - code's original packet buffer address is fetched from the tail descriptor - (where it has been stored at VirtioNetTransmit time) and returned to the - caller. + code's original packet buffer address is calculated by fetching the + device-mapped address from the tail descriptor (where it has been stored at + VirtioNetTransmit time), and by looking up the device-mapped address in the + associative data structure. The reverse-mapped packet buffer address is + returned to the caller. - The Len field of the Used Ring Element is not checked. The host is assumed to have transmitted the entire packet -- VirtioNetTransmit had forced it below -- 2.9.5