All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Andy Lutomirski <luto@amacapital.net>
Cc: Amit Shah <amit.shah@redhat.com>,
	tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com,
	x86@kernel.org, linux-kernel@vger.kernel.org,
	kvm list <kvm@vger.kernel.org>
Subject: Re: [KVM paravirt issue?] Re: vsyscall=emulate regression
Date: Thu, 16 Feb 2012 18:17:13 +0200	[thread overview]
Message-ID: <4F3D2C09.1020803@redhat.com> (raw)
In-Reply-To: <CALCETrUmk+kpG9qLqSfrMP8Go9affMJCgybHFoK7Z2wm7ABXpA@mail.gmail.com>

On 02/15/2012 09:36 PM, Andy Lutomirski wrote:
> Hi, kvm people-
>
> Here's a strange failure.  It could be a bug in something
> RHEL6-specific, but it could be a generic issue that only triggers
> with a paravirt guest with old userspace on a non-ept host.  There was
> a bug like this on Xen, and I'm wondering something's wrong on kvm as
> well.
>
> For background, a change in 3.1 (IIRC) means that, when
> vsyscall=emulate or vsyscall=none, the vsyscall page in the fixmap is
> NX.  It seems like Amit's machine is marking the physical PTE present
> but unreadable.  

No such thing as present and unreadable, without EPT.

> So I could have messed up, or there could be a subtle
> bug somewhere.  Any ideas?

What's the code trying to do?  Execute an instruction from an
non-executable page, trap the #PF, and emulate?  And what are the
symptoms? wrong error code for the #PF?  That could easily be a kvm bug.

>
> I'll try to reproduce on a non-ept host later on, but that will
> involve finding one.

rmmod kvm-intel
moprobe kvm-intel ept=0

> Hmm.  You don't have ept.  If your guest kernel supports paravirt,
> then you might use the hypercall interface instead of programming the
> fixmap directly.

There is no hypercall interface for writing page tables in kvm.

>
> >
> > This is what I get with vsyscall=none, where emulate and native work
> > fine on the 3.2 kernel on different host hardware, the guest stays the
> > same:
> >
> >
> > [    2.874661] debug: unmapping init memory ffffffff8167f000..ffffffff818dc000
> > [    2.876778] Write protecting the kernel read-only data: 6144k
> > [    2.879111] debug: unmapping init memory ffff880001318000..ffff880001400000
> > [    2.881242] debug: unmapping init memory ffff8800015a0000..ffff880001600000
> > [    2.884637] init[1] vsyscall attempted with vsyscall=none ip:ffffffffff600400 cs:33 sp:7fff2f48fe18 ax:7fff2f48fe50 si:7fff2f48ff08 di:0
>
> This like (vsyscall attempted) means that the emulation worked
> correctly.  Your other traces didn't have it or anything like it,
> which mostly rules out do_emulate_vsyscall issues.
>

Can you point me at the code in question?

Amit, a trace would be nice.

-- 
error compiling committee.c: too many arguments to function


  reply	other threads:[~2012-02-16 16:17 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-03  8:27 vsyscall=emulate regression Amit Shah
2012-02-03 15:30 ` Andy Lutomirski
2012-02-03 17:32   ` Amit Shah
2012-02-14 12:22 ` Amit Shah
2012-02-14 16:26   ` Andy Lutomirski
2012-02-15 11:01     ` Amit Shah
2012-02-15 19:36       ` [KVM paravirt issue?] " Andy Lutomirski
2012-02-16 16:17         ` Avi Kivity [this message]
2012-02-16 16:45           ` Andy Lutomirski
2012-02-16 17:14             ` Avi Kivity
2012-02-16 17:35               ` Andy Lutomirski
2012-02-16 17:39                 ` Avi Kivity
2012-02-24  4:34                   ` H. Peter Anvin
2012-02-24 18:58                     ` Andy Lutomirski
2012-02-28 10:00                       ` Avi Kivity
2012-02-28 11:08                         ` Amit Shah

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=4F3D2C09.1020803@redhat.com \
    --to=avi@redhat.com \
    --cc=amit.shah@redhat.com \
    --cc=hpa@zytor.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /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.