Received: by 10.213.65.68 with SMTP id h4csp1685805imn; Thu, 5 Apr 2018 01:53:04 -0700 (PDT) X-Google-Smtp-Source: AIpwx49+92RE8/ihuaNH+IfE1ME9gjEcMmTyiJeOOAtKzfKvfZXCvIZCMyWwBkn/wInsUEM+XAHI X-Received: by 10.101.65.4 with SMTP id w4mr12502695pgp.68.1522918384333; Thu, 05 Apr 2018 01:53:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522918384; cv=none; d=google.com; s=arc-20160816; b=XOmFQjw7kD5EIs0zxz89bIOM6vwI0++8/EF84oF0VeHA+EqEQt7Wnk7glBHxGgkga6 lu8JQYgFmDlHAFbKC9qfjTH1TZTM4OW56LtsSufGoAIa3lwojhtAbHtIa4wx3hJaRxJt qTAM3WkRSSQH9J2GxKKt7CoJ8BV4onv6z7lxMEsZ56QzI1xSX0x3ZlTkgPY80YNWG8/q dWraEY6N7mUy9BdDw87tTlN55xvgmZ3bITiU4lj0aTn2RcIr4HJRwvplPcY+HUONORZU W3w94gHQme55pP50TKwMLw21BsDFJaSn+CkNJpe6ra/5lnqKN7Esl6bQ3H/DpLCWCzwT DCkg== 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:autocrypt:openpgp:from:references:cc:to:subject :dkim-signature:arc-authentication-results; bh=AWSy8G/4dAireTNIiVW6MFIIalS/RqcvgIjJl/0yQV4=; b=otzo883xMvqDAHEm94Ms0Tm6OA48hba11SBEj0nT9HlBnWufhMj8EE8ZsI578PMY1F mun0zkQhfBo1v6uH3DDd4K4fljmdSLoTsDs3M2K+o+I00qKY+6/7P5A6yAhJl+bDzg9r ke9JEd1YzMWzdRpbFy51U2cQICt66avh4zOTZWDVl612SHQ9lVSQ3Eohjh2AzMwMG0CO pZsexFXh+v5rdTtoGo5ZgfQFFGxyfoev7Af6lQBzwBc865z2cgZSlK5F9wya/mjdgez3 g0+kGSak31nD4qW7QDKi9DOEsMxWadw7wofu5gFI0QzB1A8DrwKhCNrAXNOPu+JH8mGv W5Eg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=Gr7ltZl9; 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=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g8-v6si6057022plm.120.2018.04.05.01.52.50; Thu, 05 Apr 2018 01:53:04 -0700 (PDT) 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=fail header.i=@gmail.com header.s=20161025 header.b=Gr7ltZl9; 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=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751414AbeDEIvn (ORCPT + 99 others); Thu, 5 Apr 2018 04:51:43 -0400 Received: from mail-wm0-f41.google.com ([74.125.82.41]:38348 "EHLO mail-wm0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751097AbeDEIvj (ORCPT ); Thu, 5 Apr 2018 04:51:39 -0400 Received: by mail-wm0-f41.google.com with SMTP id i3so4694164wmf.3; Thu, 05 Apr 2018 01:51:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:openpgp:autocrypt:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=AWSy8G/4dAireTNIiVW6MFIIalS/RqcvgIjJl/0yQV4=; b=Gr7ltZl9PF2TGWvaTnwZOOPY8UsZSrbMOgVmjyJNnsUafh4sWrE6TQa6bJE+/RJm9b JQaRGN6fw3Nm7YzHvgjOwrOlewODQt9/iZto1yYimFWKt1lkipORA3PfnKMnFp0w1SSK 40Hol6oudBT6Be6jiE8rSGNZPNxU4rmw3fdD7ZPRsHGdQ17hutV8Vhnqmlym2fzvexGs 7zj5nUXQBZYFpKuVIn3xVQvpEP3AbarWDpz0B1BYeF1ZEMyI2Bh1N5agbbIBXJ/HAPlp B89pR7Hgc8v5/laPljmnB60aIUNOXe9Uppe3cCjIfqqQaK8TS0kma3fRhtLujq2T5zco r7JQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:openpgp :autocrypt:message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=AWSy8G/4dAireTNIiVW6MFIIalS/RqcvgIjJl/0yQV4=; b=ExFU5glesG3DXBBKO8MPEYagaLPKrMG0ZiTAGirun1APbyygJ6OMIOvEYfpqeiMyoc pcJc+2J/zxpfpRc9bgbcCLCHvhEBvhiD38px084O2iMQ77U05fjDm5Uq62pq75bkCGs4 hgAxxbyiyyujL1WkKJFUICWdpZ9NKzbmF3hcJmDUtTEtxyMEJL6bUDMe0lNkQlp8NCD6 VsSfb74xcvORWvUSPQCob+1AHzSbmuKry4sE+P1JSeB1O5cMp6Fyfp+tI24NwgvNjxFy u024FUwK7WBfkoULHM3P9LopZ5r2QqK9F+pR/k651UqRhZvscsvV+rWFzeo8o7kcWELb I88A== X-Gm-Message-State: ALQs6tB/6ol8rHqwbGCsanEZFC9osPnLC+x/24R08G6pTijFcgkl6NLR CQAdEP83Y1h8KxCIsCDvzpw= X-Received: by 10.80.189.130 with SMTP id y2mr2050665edh.138.1522918298483; Thu, 05 Apr 2018 01:51:38 -0700 (PDT) Received: from [192.168.10.150] (94-36-194-48.adsl-ull.clienti.tiscali.it. [94.36.194.48]) by smtp.googlemail.com with ESMTPSA id l25sm4583513edb.49.2018.04.05.01.51.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 05 Apr 2018 01:51:34 -0700 (PDT) Subject: Re: [PATCH v5 2/2] KVM: X86: Add Force Emulation Prefix for "emulate the next instruction" To: Wanpeng Li Cc: David Hildenbrand , LKML , kvm , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Andrew Cooper , Konrad Rzeszutek Wilk , Liran Alon References: <1522798129-14588-1-git-send-email-wanpengli@tencent.com> <1522798129-14588-3-git-send-email-wanpengli@tencent.com> <48d06146-f508-e883-72cb-881e043f9c72@redhat.com> From: Paolo Bonzini Openpgp: preference=signencrypt Autocrypt: addr=pbonzini@redhat.com; keydata= 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 Message-ID: <6ae58c5e-a909-6cd4-7aaa-669758d71570@redhat.com> Date: Thu, 5 Apr 2018 10:51:31 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 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 05/04/2018 02:04, Wanpeng Li wrote: >>> emulate_instruction(vcpu, 0) can handle invalid instruction. >> But David's observation is still better because your code doesn't handle usermode exits. > My code handles it, return emulate_instruction(vcpu, 0) == > EMULATE_DONE, it will return 0 since EMULATE_USER_EXIT == EMULATE_DONE > fails. > >> I've fixed this up. > Thanks. The codes similar to my v3 but more beauty. :) I change to > this view since Radim's comments to v3 > https://www.spinics.net/lists/kvm/msg166999.html And after I actually woke up I think I disagree with Radim. Tests can trap the #UD to test emulation at CPL0 and skip or fail the test for instructions unknown to the emulator. It's much better than sending an emulation failure to userspace, which would abort the guest. Paolo