Received: by 10.223.176.5 with SMTP id f5csp186090wra; Thu, 8 Feb 2018 19:23:55 -0800 (PST) X-Google-Smtp-Source: AH8x226CDmNmXR+to1IIk0ax/vwRgGx3C6fyOu5/S8QkGrOsTHQzyC5dDtT3Bra3TpHD/ZuXCAjg X-Received: by 10.99.190.15 with SMTP id l15mr1164486pgf.142.1518146635886; Thu, 08 Feb 2018 19:23:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518146635; cv=none; d=google.com; s=arc-20160816; b=l/iu5liJLnGBCC4sEemWYlZx5Yk76iSZML0Kz4LXTseIY5m03mF3pLM52tG8LAnVxH FWSgmx4jzxDT8maYIOJfU/I/TpMF/eYT5QDo9w2pWEekqI6OA5hRIcXcvWnhh5CdPJHt 6BArOUcV0UQNY7MeEfUYuOMwBMCuLshTFQdF1kJaFgkJbXNVmSQ6DRG3rRKHYzP9V2St 1k/XIzwLZ7fFsYynQDYWkk8uvP2H0q7NPws+1BQ27bIbwVdr8u4hiUPdlDIwvzoMNyzA mVJXGw0vKvgwFFT5NZ5axVJnhLb3KhTpEth45CEjk2J3HDWB2XTW6PAIK4+8oNQLrRNp +XQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=lOv2hQhwzWUBiFG104rOk7nb9pgQ5DR8YrTD/59PO10=; b=nSVLgo32iopgb1hfCpamNpDjOu4wPXcc6vkx//TThMiWOTu5SnP9MgG7/kfBVePXH/ NRMaN06nbHSGCK7ZwOcNPA9vzZrWhcUfkn+1liHj0e5Uizi3xjq9ecHyLcMogN9HzZTL t5GfCCLEvmlp5ZPF+WB520Zgs9nd2FvWrGaggjN2GTiZugGSlEeZ2eF7BfqtEYKd0qUV 0F0hQos8FMG6DUCEiUSyPqqVXuo1/gtRxH2RosyN2xcwwXg2JbAxuurJ4fNuqkYsfkC1 ryLWQHt3EfD1TCs50qp3IeFc3Zv3AeRawkY6wmIx1yczRCdgzdImb9FUYfJ5QHUFKfC+ WY8w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=J6rIc9SG; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 64-v6si924969plk.313.2018.02.08.19.23.41; Thu, 08 Feb 2018 19:23:55 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=J6rIc9SG; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752547AbeBIDWS (ORCPT + 99 others); Thu, 8 Feb 2018 22:22:18 -0500 Received: from mail-io0-f196.google.com ([209.85.223.196]:46056 "EHLO mail-io0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752509AbeBIDWR (ORCPT ); Thu, 8 Feb 2018 22:22:17 -0500 Received: by mail-io0-f196.google.com with SMTP id p188so8183388ioe.12; Thu, 08 Feb 2018 19:22:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=lOv2hQhwzWUBiFG104rOk7nb9pgQ5DR8YrTD/59PO10=; b=J6rIc9SGer8NFO7AS/8JrjL02ZXWFXafDPMOOkD8pDJHWtmTiAXVl7alZ2jws1aGEV o8iH0IPqGwr4vrlYEmRintlUPggjcWJko7waNr3bNKFZFKCsdyu6IKi4jkB/lLW5iwpN jekOfRg2wl9yUx8fxZHWMEVoXdCj8J9Fe6OyuOiBoqYSa5awckoXSrDTweEJ8OoZUM+r uZPFFU6L5p9D2jToRRYzpzLcmuQEPHrTwXS+/HDxsu39RlmReJiJ7dCvqPnnFvetIWg4 nP/a+R/V98dv+e7v83GegrhrmA4fmx4je0PPXNb4/u+WOlpy20qDyRJcfDnBQjwZMmCv qmFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=lOv2hQhwzWUBiFG104rOk7nb9pgQ5DR8YrTD/59PO10=; b=lCmibgvRzfJ5J+BAXMHRVuen4IIlJKUT476P6J2d1T05FSszAxF1U7Ljs8EU0PcBbo TD45UD9VotnFYLlOZTqfwXzoqY6WEAXZZBXxTmvCKzyW2vHoYoRzoG//YN00/ZUdR62x Uz8QVT+YsVH3ejp0/tQvYj8WccEIvrZeUpbSyiqHC6mlpauZ3mQCaDTHz8LSmp2W/TT2 sgpFxB0/COpotw7MFetJu3LaPNqeDz4Mqf9lkWDwjTVBSEiuBQZNB5BRnHzX0iwATo/f itM6w1ubJrKa8yQcAlS3xbj6JM2EIutz281as9ydp/h4XFKkJU6DoVkXF1R5ilcfLXwj EDSw== X-Gm-Message-State: APf1xPC9KXHJnCTgpgxOXSAyfrEXjcDl/F+YklGiCmTeo4n+83xEwOE6 GBhEdi3q9QpKh5SQRfRzVKI= X-Received: by 10.107.26.204 with SMTP id a195mr1470763ioa.17.1518146536480; Thu, 08 Feb 2018 19:22:16 -0800 (PST) Received: from eric.tencent.com ([203.205.141.36]) by smtp.gmail.com with ESMTPSA id 193sm1247754itv.9.2018.02.08.19.22.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 08 Feb 2018 19:22:15 -0800 (PST) Subject: Re: [PATCH] KVM: X86: Fix SMRAM accessing even if VM is shutdown To: Paolo Bonzini , Wanpeng Li , linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Dmitry Vyukov References: <1517984706-47244-1-git-send-email-wanpengli@tencent.com> <233cfca3-971e-c3c2-f0fe-b50dd69d2546@redhat.com> <5664ca7f-f391-0301-3a0d-666b73f17b15@redhat.com> From: Xiao Guangrong Message-ID: <9034fe13-26c4-ee72-5b94-19aa8fc11efc@gmail.com> Date: Fri, 9 Feb 2018 11:22:44 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <5664ca7f-f391-0301-3a0d-666b73f17b15@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/08/2018 06:31 PM, Paolo Bonzini wrote: > On 08/02/2018 09:57, Xiao Guangrong wrote: >>> Maybe it should return RET_PF_EMULATE, which would cause an emulation >>> failure and then an exit with KVM_EXIT_INTERNAL_ERROR. >> >> So the root cause is that a running vCPU accessing the memory whose memslot >> is being updated (met the condition KVM_MEMSLOT_INVALID is set on the its >> memslot). >> >> The normal #PF handler breaks KVM_RUN and returns -EFAULT to userspace, >> we'd better to make ept-misconfig's handler follow this style as well. > > Why return -EFAULT and not attempt emulation (which will fail)? > That is a good question... :) This case (with KVM_MEMSLOT_INVALID is set) can be easily constructed, userspace should avoid this case by itself (avoiding vCPU accessing the memslot which is being updated). If it happens, it's a operation issue rather than INTERNAL ERROR. Maybe treat it as MMIO accessing and return to userspace with MMIO_EXIT is a better solution...