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 19:14:03 +0200 [thread overview]
Message-ID: <4F3D395B.1000708@redhat.com> (raw)
In-Reply-To: <CALCETrUhGY8C8JLz6DrbBxukV58K=2jrMSfDyAm=eF7OWbKx7g@mail.gmail.com>
On 02/16/2012 06:45 PM, Andy Lutomirski wrote:
> >
> >> 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.
> >
>
> The symptom is that some kind of access to a page that's supposed to
> be readable, NX is reporting error 5. I'm not quite sure what kind of
> access is causing that.
Might it be a fetch access, with kvm forgetting to set bit 4 correctly?
> >
> > Can you point me at the code in question?
>
> The setup code is in arch/x86/kernel/vsyscall_64.c in map_vsyscall.
> The bad access is to the vsyscall page.
The bad access is on purpose, yes?
>From fault.c:
#ifdef CONFIG_X86_64
/*
* Instruction fetch faults in the vsyscall page might need
* emulation.
*/
if (unlikely((error_code & PF_INSTR) &&
((address & ~0xfff) == VSYSCALL_START))) {
if (emulate_vsyscall(regs, address))
return;
}
#endif
so it seems like kvm doesn't set PF_INSTR?
I thought we unit tested that, but maybe not this exact scenario.
--
error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2012-02-16 17:14 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
2012-02-16 16:45 ` Andy Lutomirski
2012-02-16 17:14 ` Avi Kivity [this message]
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=4F3D395B.1000708@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.