All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Joerg Roedel <joerg.roedel@amd.com>
Cc: Gleb Natapov <gleb@redhat.com>,
	kvm@vger.kernel.org, yoshikawa.takuya@oss.ntt.co.jp,
	avi@redhat.com, mtosatti@redhat.com
Subject: Re: [PATCH 1/3] KVM: x86 emulator: Fix task switch privilege checks
Date: Fri, 27 Jan 2012 13:58:38 +0100	[thread overview]
Message-ID: <4F229F7E.5030905@redhat.com> (raw)
In-Reply-To: <20120125160058.GG19255@amd.com>

Am 25.01.2012 17:00, schrieb Joerg Roedel:
> On Tue, Jan 24, 2012 at 06:23:50PM +0200, Gleb Natapov wrote:
>> On Tue, Jan 24, 2012 at 03:24:50PM +0100, Kevin Wolf wrote:
> 
>>> However, task_switch_interception() itself does some more based on the
>>> value of reason, for example it decides whether or not to call
>>> skip_emulated_instruction().
>>>
>> Joerg need to help us here. If intercept of task switch happens before
>> rip is advanced past instruction that cause it we have to know somehow
>> that task switch was caused by instruction. It is not enough that HW
>> checks permission, we still lack essential info.
> 
> Hmm, the RIP in the VMCB points to the instruction causing the task
> switch. This is also true for lcall and ljmp. But in my experiments I
> have seen exit_int_info.valid = 1 for task-switches that went through
> the IDT. But I havn't tested the VM86 case, though.
> 
> Kevin, can you please re-verify that exit_int_info.valid is always 0 in
> your experiment? On what hardware have you tested this?

I just retried. I use kvm-kmod and kvm.git with HEAD at ff92e9b5 plus
the tree patches of this series plus a printk to output exit_int_info in
task_switch_intercept(). I ran taskswitch2 from kvm-unittests and got
two failures and my VM86 unit test which hung when trying to return from
VM86. I also ran the kernel that made me aware of the issue initially.
All debug messages show exit_int_info = 0.

This is the /proc/cpuinfo snippet for the first core:

processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 107
model name      : AMD Athlon(tm) 64 X2 Dual Core Processor 5200+
stepping        : 2
cpu MHz         : 1800.000
cache size      : 512 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext
fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl extd_apicid pni cx16
lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
bogomips        : 3592.64
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc 100mhzsteps

Kevin

  parent reply	other threads:[~2012-01-27 12:55 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-23 16:10 [PATCH 0/3] Fix task switches into/out of VM86 Kevin Wolf
2012-01-23 16:10 ` [PATCH 1/3] KVM: x86 emulator: Fix task switch privilege checks Kevin Wolf
2012-01-24  9:52   ` Gleb Natapov
2012-01-24 10:09     ` Kevin Wolf
2012-01-24 10:17       ` Gleb Natapov
2012-01-24 10:38         ` Kevin Wolf
2012-01-24 10:52           ` Gleb Natapov
2012-01-24 11:23             ` Kevin Wolf
2012-01-24 11:25               ` Gleb Natapov
2012-01-24 14:03   ` Joerg Roedel
2012-01-24 14:15     ` Kevin Wolf
2012-01-24 14:16       ` Gleb Natapov
2012-01-24 14:24         ` Kevin Wolf
2012-01-24 16:23           ` Gleb Natapov
2012-01-25 16:00             ` Joerg Roedel
2012-01-25 18:29               ` Gleb Natapov
2012-01-27 12:58               ` Kevin Wolf [this message]
2012-01-27 13:34                 ` Joerg Roedel
2012-01-27 13:55                   ` Kevin Wolf
2012-01-27 14:17                     ` Joerg Roedel
2012-01-27 15:02                       ` Kevin Wolf
2012-01-27 15:45                         ` Gleb Natapov
2012-01-23 16:10 ` [PATCH 2/3] KVM: x86 emulator: VM86 segments must have DPL 3 Kevin Wolf
2012-01-23 16:10 ` [PATCH 3/3] KVM: x86 emulator: Allow PM/VM86 switch during task switch Kevin Wolf
2012-01-24 10:57   ` Gleb Natapov
2012-01-24 11:31     ` Kevin Wolf
2012-01-24 11:37       ` Gleb Natapov
2012-01-24 11:44         ` Kevin Wolf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F229F7E.5030905@redhat.com \
    --to=kwolf@redhat.com \
    --cc=avi@redhat.com \
    --cc=gleb@redhat.com \
    --cc=joerg.roedel@amd.com \
    --cc=kvm@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=yoshikawa.takuya@oss.ntt.co.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.