From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933444AbcKVO0G (ORCPT ); Tue, 22 Nov 2016 09:26:06 -0500 Received: from mail-cys01nam02on0075.outbound.protection.outlook.com ([104.47.37.75]:36293 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932605AbcKVO0D (ORCPT ); Tue, 22 Nov 2016 09:26:03 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; Subject: Re: [PATCH v1 2/3] kvm: svm: Add kvm_fast_pio_in support To: Paolo Bonzini , Brijesh Singh , References: <147916172660.16347.15695649975899246333.stgit@brijesh-build-machine> <147916175150.16347.2494044229416144843.stgit@brijesh-build-machine> <63d4112c-71c4-9d6f-60dc-c5a71c03df7a@redhat.com> CC: , , , , , , , From: Tom Lendacky Message-ID: Date: Tue, 22 Nov 2016 08:25:52 -0600 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <63d4112c-71c4-9d6f-60dc-c5a71c03df7a@redhat.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BN6PR17CA0016.namprd17.prod.outlook.com (10.173.147.26) To MWHPR12MB1149.namprd12.prod.outlook.com (10.169.204.13) X-MS-Office365-Filtering-Correlation-Id: 8eaf7f4b-4464-4d1b-a8e3-08d412e37b86 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:MWHPR12MB1149; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1149;3:uYs/1RuY9niRpybqGSTTD3NcrnA5ZdykNNgqjeeMe7QQc+UQ93Ytg3Gyk+09IJCbLMT2LCLaeUx0uNcefWsfGUvfUsnZ7zuVHPAeEj3c2Mi5IMWzXLA/a0jSCx9jJoi2kO6+Gpw2nJQcMNhVV1Vwbc9ryrx+1ph8PCr0SzNWS2EYj5u/+HYy7o7uacC66J/ngs294M6UYEWjsjLZoIWhSOprY/qpLfLLAWJjgulexETKidYWXsHKVjfsKEBx/jAHj1ThsWS6W3ffasRho6aH0Q== X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1149;25:SPwZzIohZFFcWsnZVep7LYf6cViIWJXyp8fL0lNkQcrkzr9lIWz3TjWQ8bA4uVltgNoUNXekngFgTddEXP/rCcfB0oMe9+WgjGd+UaMlQSLDFYN45SfE9IlASBI3wn+gS3RUYdlnAVRAEYlaLfgm2cApjfYlyy7i88/mJLZ2V2KNaPPpGVx1HLPA+6ylI2iU/QpTwnXJM/Iza39xwlPFR+KRakIsA+rMOnV0t3wZNludNCzxe2hBYxnjtzJ1sNKzP0RsV+vkhCJyxFM6upcRo9bnytni8WCsJlCjgOifrUTJ18+tqUjrzDi62btomk0IwZFnLEu0yACa8x/GHzcgyGqJDX95W+E+Jhe8hjTlsio4V66fguLhJFj+mSmw2w+ccCk/UhJbbFWnxkk/FbXN/A4DrJr78Vx/EF0a5bxjot+JgVSPdeJ9SK1oXJmindymGnxTgZcEnbbfYGvYPGDOVhrRfj6Wc4pE4Juh8IZVtHut1u3u1RbFw0a/xVkwJyzd9PXjoe0KnDTASROsjarNwc7WXNc3N4kw53BZAb3I/TBd5MTdXxGBOCOu7wyxfEugUjD0wt9D9SBLRu4FDeCqdOoOXTcY79dQzSS0Ivsq/mIHu/B9RBolTpe7hQQWjDKsXR6/YjHurCHJ9XnmmWhTOPGCmCDOqSKDEFRaA/DnyB27ZYAgjb+hOVoWFl3F4fCKgFuL5m+woywj25NsE9UkZFEllKz9A8A4Q0SqWmnAd2gxZvpcCAusJrolJ3I7p+QWKieyj9DfRoGmZHotDEHP0ADBIBS0Xcez7hUpvMhccrSQ7eDIA7GHtTiOFU6PKrYe7c/Gvl2Qm7N1KRV3VIXD9g== X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1149;31:Bg7HjJ1JmC4JC4t68YL2tq2W2Udg5tz7gcq7FG1qz6xq+OFZNHvFCU4W5SAs0DW7xcWy8w5MKq5ZH47SqP/TKOgjwVjPc/hg2W6UfiVu8EwfgC1x+jCo49Z+VDK0oiey4Vuj6HA2zFcZUeEFFF2tLq3P7T0Lk4NVnAmcYSmyCUAcMMLXyVHoc3X0ALgsOAzc+qviDWnjU0BBe/IkGTMifEPLgPX5ag8A8myfA4AR0u1qKxQYPSWUXP35eVNPWlIQxYpYXgPhzrs1N4d05zdc3Q==;20:M+waWsP1tW/xuZHqbqtgobDd+5h3wWuLPgt4WxuD+YHGBvh9N3L6azGupyGZ/3dpS+9R4PydV1gJuJcJ9+yPOxLIgBWWAMT9rQzjCkptZXLUrWTqG+iGhYXe54seorxqWCERvgL0zsGU4Byzab0mWAGsxN0VIGMkr1PKMoe6R+eDgsirIsyp3vVqXM0P4l/jzcqjNOj167P8pXSHdPNpqGqSzs7r/J4286H+Ag802APUgyDg88X1AoTFwfWgekHN6ss+ZWT8YHd3LzpggiHDTzGXbhipTG/cK3z2BhUjtUkcJRjZwF3hamlHvyVtCR5xazmazUVfDmLW5FuxSs+xMfNxhaaAIXw9sPJqOAJQDGEkCD2kpLYoqPMt3/C6OGFEDkz+9ckJ5mg37Wu6bglh74chC2BDI/48um8s6fvkrSumo4zdpNalJ9RL058EJ62YCQu29Jur1HegIAPaSQPpYkBj9iktD9xJJtR59Z/ecYH73cqePNNeF7zBFPRpUj61 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6060326)(6040307)(6045199)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6061324)(6041248)(6042181)(6072148);SRVR:MWHPR12MB1149;BCL:0;PCL:0;RULEID:;SRVR:MWHPR12MB1149; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1149;4:Ndhxs+GNIdNFMh/DCd+SLLSgnHrc01jI8AUn856U5U11ZYWdDQ+v6TwOVgEtdKC5wGWx1QZIILypJPRMKwByckXAoOYVdYw9vwJp6DaV3N/HbQyom2XPYhPtb/O7pXZu3N8jfLO3k1qb5lFtvgGYKgbIoRfqPJ+5I3byxyasi3TR1ufpMI/CZUcgqG2TxBWXfxw1JFRRmOyVuXQ8TB0mWkF6qssahpJBaPVXMUSEkdzb18USU46U56JP7bGB+Q0IIHzUqDFCfnNJVskG0rxXrkt+rsRZNSRagMnt3UhYTWbCvqKZ+JpFoliwyOFY9EXgzMk4Pex2rah344fqD12P8/KaFaou5666HFdSVqajhBPSdXyLRb+kSwYwHEZouyzdex79OO1s2ENjXFZNQTfENUk3VZIkOYdyBZT+YrDYA0xE/oBncUyZRoDN+mui4bpvvjB4zoDsKF5ZulGp3NywL2gCR3rTsltmBZ9FshLT3wQ5Ee4yrsSNWRRk3s38Xx+Y7mUrabFitCBpU+DICLw5DKDhSc4cLZR5hXc12IyBl40Jti01xlm8jDLh0/hU3LG1 X-Forefront-PRVS: 0134AD334F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(7916002)(377454003)(199003)(189002)(24454002)(50986999)(23676002)(77096005)(97736004)(50466002)(76176999)(4001350100001)(36756003)(33646002)(189998001)(3846002)(5001770100001)(54356999)(101416001)(230700001)(4326007)(8676002)(68736007)(81156014)(81166006)(42186005)(38730400001)(31686004)(83506001)(106356001)(6116002)(105586002)(229853002)(31696002)(92566002)(64126003)(7416002)(2950100002)(7846002)(47776003)(305945005)(65806001)(7736002)(86362001)(6666003)(65956001)(66066001)(5660300001)(65826007)(2906002);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR12MB1149;H:[10.236.64.222];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxMTQ5OzIzOjBPTCtWSDFJKzJicUxocGZqZUt1dlRHbkZl?= =?utf-8?B?K251VDZWMmIyZDBZMFlzSWxUOE9KSittVHJtMDU2czZ5TVY2aExvL0NaRGVn?= =?utf-8?B?aUhUbXJRemYyd1Y2RlFmTEdFMDVJWlVxZnF1VkV4TGxjOUdpdFJPTWJjYy95?= =?utf-8?B?RjNCVTZYd1p5OEk0U1h1anVRK0xBbFpMcFM3c3JqMTlIUGdwNTA1UCt0SjhS?= =?utf-8?B?OTRHcnBBdW84K0dvdExkc3VlU2N4R3FsaERUZnFOL0hhOUpvUENXODJZYzZw?= =?utf-8?B?YjBNV1pVN0YwYmlNRktSRDcxcXVrSnMvTnpZTVdjeVBHbjJBemxQMG5xSFBH?= =?utf-8?B?aGp3NEhsbkUrS1RSbDVyVkEyQngwZHJHU25Fc2lWWWNvNkxSZTNrSytiaEwy?= =?utf-8?B?NEp2VDFib2RMdlQ1b0NWREFVQk5rVTJJbVM0T2pMRHZmVitZWHZtR3RRbHNk?= =?utf-8?B?VmFHbHNRemtZMFZpaWlvOGNqSGowWjhDSFlZdGRPNGovdnYwdkIrTlJFcFNW?= =?utf-8?B?SkoyRWlSMmFrd2RXQ09jeGNoZnBGNHZkRkIwalpFcGlxZkYrMGlhYnJRWTdD?= =?utf-8?B?RGlqRjhEMDFnb05STjlqWklLcTdBTkpLZUFTQ29jeWE1ajdwQm55Z1ZzUnpJ?= =?utf-8?B?TFN0WEZwNXUvUHcydm4wUTRkYS9yMUp6bTRGWStvdWhLSDZZOW9QL3FsOWZm?= =?utf-8?B?TnVNaXdXaU12cnhXT200UlpucVlXM29jQ2hpWmpUQzlZa2tXeGlDUEJnaFRY?= =?utf-8?B?U3FPWjBGYVQ2UVh0NVhPVGZYMDNwbXBVTHJvajdzTGFYbmpSTStFNTdDQ2dX?= =?utf-8?B?T2Y0SFRVN0RNemJvSjJBT1B1MEliMkcreHp3OEhQVjJMWkd5RGs4eGh6cXRO?= =?utf-8?B?Y2IvbFBIeTdaczBtOVBWWXN4Vk5OV2FrUVBBMml1TEdLODRjL1F4Z1NtWUVN?= =?utf-8?B?cnNOK0UzNkpVK1RGNE1nT2RUb2RLRXVGclJ4YjBmKzMwZEc1VnZJbjJ6Nkll?= =?utf-8?B?NFRqbmpwNTZOY21TZ1hicjIxVmR2T2xVaktZUXZTazhMTVdNb21tNDhySzgy?= =?utf-8?B?aFY3dUUzRDZpV0FmZXh6Yk1udEJ6M213c25mUFhLNDRpdTkwdWxERjI5bElD?= =?utf-8?B?L3hyeEs5eXZZQWMvdjhLb2g1Z0t6UUZlRjYyakdERkU4WlpUMnN6VUNmUnhP?= =?utf-8?B?Q3RKektXd29vd2JEb3NlT2RNdGtVMTlvWm9HbHpIcFNjUVdjNjEyNHpmaDhS?= =?utf-8?B?blc5QzlZMFl1OVZjWW9qa1JuS3Bhd2NObzdGUUNFdnY5cG5veDBCZTZMU0J4?= =?utf-8?B?NEN6Q3l5MFcwQ1FrbnJxbW41aWdUaGtiVGY5TEI5cHE0N2lDSG0rdmxTMmdU?= =?utf-8?B?bDliaEFOSGRZNnR1SG1VMnd1ZlNXRjlyemRhS3NsamMyWWJncWRLU2FPWjkx?= =?utf-8?B?T0Z4VHJWcFBxYTJOUTl6VzJUL1g2eE1vaWxkMGZWbFVVSEloRERYV3pOMG9T?= =?utf-8?B?bjlOQUNsdHBPc0ZxOUk1MVlnbDFoNEI1bEFkN1JrUG5Ic2VvWVFHcm11emE4?= =?utf-8?B?SjEwZHpMNzVIUk1adThscENjOE5ERDVFVVR1dHY1T0pBUExsamk3Y2dPTGxa?= =?utf-8?B?d0Z0NEVQcWcvL3p0TkkzQjJmaU5KTjJ6bmpQVU9jV1RCc0doaGJkNEdIYnFH?= =?utf-8?B?UnUrdE9EN3FmTUNKeW13eUhjMmZQMjhpWmcxWW5PR09NamxtV01YdGZGbzA3?= =?utf-8?B?aGQ5REpmZzZOWndYcFJPdz09?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1149;6:NpyeeWJjzwhku26QGRpsfmlMaL7agy6OTL7oQkOOmDp0GqUCcJkQwAa9EczZAEszNNedIXxl6paOUb6fmUB5Jqbl5ST6IBtNpehUIvIMrtL61O5ReR1ET3BTBxF/+xn1lV1yTl8Q1fpQh5Fta69jiBW/gNRDmdbM4CVolrnd0gO0aOxoKxA5bOPSz3Fp/AOMVqFgzg8avq81968Bv96fZFL0L6sTbIOTCMQQD//lVTp27SxnLyf9I8KbcjdDmnQGvy6F74apqZL2cF6jP2hK3zGyscoraf8f+xFYs2RZF2GzsD70peam7zNxk6NOlDMm7u952O0rucIrf8noY+/A90IceZ3bLrpKvBZbulNbGW0jbfdf/kc4eHANter9NeDzpy7AgHkajW5TXG+Ioo1Xs3WTK31JRPEpSGykde6GYfAm/ztA6WRjEpXZUd9lPaFn9LLEnJCparHdJW2lWhYQ05w5ULJcZGN2NlB5nmot7IHxIEj/nI6gw7LGlOGkz7Wd;5:pa88lWoN3UH/A62kXctq8WeKQifaXZ8heOiZU8HdNwJFzVbxjflO2tIbT4tv02jj/t7946QSnWD4Vx2PVGlqTMtLiLhpmQCzy16U6oIujhghp+o16KG2yieJ3Ri8DbJUpvU6byOZ214JX8bUCMdneWbUjvf3E52G+UjKHBwyRJg=;24:SOr/71/3slmFXf/uONxOip6+ml4VVq8teiALTRKdLnWiYZiemZc74ASxWpCzuA7P03DLSN0NFWx8rjUwgVOJEZu01S9qw3KmA5/92P7YeJg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1149;7:xK9vdQtqcTPL0HbZIp4booHiMsBQHtCefhMoyNm+8MgLyry2ijZgS436njyqYdhWXF/rXI69QmDqYrakuTGZBS/zgVhbVrSfL3c6+41Wtt3CJVdF8Vxl5VNJAQeYi498gqdeR+oNK6yOZChyMyq49GyYtDo7h4bCHaH0ngI7v4ZWNyH6aK52YsghLmXA1k+FzZc4WJN3R4sczneUNLK9riA8nkfWeDfqaK8C7QvftbF4IAAZLRsyB8DnGuw6Tv/kpKaVFFdkigFXVU7+Dhc+XUjs+nO1+HWBw4zGvAhMY1WQ2+wUKDdAnb3eaUD+nCuAUzXDcVxFCzyU64X/P15+UtuRjWNn+G0BDH3xsiAENkZjyhfB8KZA8Hsz+tPzAk9y4KLjTeKK0vs5elf/Ah7Zx5tDWsDlRaOAkKKoXxp6lEA60tLiZlxWWAMWmF6UplWx3rB8PAooagL14WtFO5IKeg==;20:rBeGSdDE7riDggUxXTYuPOpW2dTG21Eeiqv3esFaMsDnpMpHwdcqtTiN0J5+98NNm5jLKNeMq6SfoRtU9CXqIdgx7dnDduS4lUoataMGSUPsDXLoSIqZsZn3BQ4gwfxM2MEnEOhR+w/hgSzY4D3IhSwdkuaQLH7f1NAaWHAnGC2MuENBycMToKqNqTkhJeO38ORT0Xn1e4puC1287r++WL3wweLpQLoBPjWpAGYUGtC0jryz8u7p+Rv41API041A X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2016 14:25:58.9868 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1149 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/21/2016 8:50 AM, Paolo Bonzini wrote: > > > On 14/11/2016 23:15, Brijesh Singh wrote: >> + /* For size less than 4 we merge, else we zero extend */ >> + val = (size < 4) ? kvm_register_read(vcpu, VCPU_REGS_RAX) : 0; > > Are you sure it shouldn't always zero extend the high 32-bits? So "val" > should be declared as u32. > > Paolo It should only zero extend when dealing with a 32-bit operation. Any use of 8 or 16 bit registers leaves the upper 56 or 48 bits as is (see section 3.1.2.3 in http://support.amd.com/TechDocs/24592.pdf). Thanks, Tom > >> + ret = emulator_pio_in_emulated(&vcpu->arch.emulate_ctxt, size, port, >> + &val, 1); >> + if (ret) { >> + kvm_register_write(vcpu, VCPU_REGS_RAX, val); >> + return ret; >> + }