All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jan Beulich" <jbeulich@suse.com>
To: mukesh.rathor@oracle.com
Cc: xen-devel@lists.xen.org
Subject: Re: [PATCH 10/17] PVH xen: introduce vmx_pvh.c and pvh.c
Date: Wed, 01 May 2013 14:52:27 +0100	[thread overview]
Message-ID: <51812C2B0200007800099AF7@nat28.tlf.novell.com> (raw)
In-Reply-To: <20130430175130.7cd4a1e5@mantra.us.oracle.com>

>>> Mukesh Rathor <mukesh.rathor@oracle.com> 05/01/13 2:51 AM >>>
>On Wed, 24 Apr 2013 09:47:55 +0100
>"Jan Beulich" <JBeulich@suse.com> wrote:
>> >>> On 23.04.13 at 23:25, Mukesh Rathor <mukesh.rathor@oracle.com>
>> >>> wrote:
>> > @@ -1503,7 +1503,8 @@ void vmx_do_resume(struct vcpu *v)
>> >  
>> >          vmx_clear_vmcs(v);
>> >          vmx_load_vmcs(v);
>> > -        if ( !is_pvh_vcpu(v) ) {
>> > +        if ( !is_pvh_vcpu(v) )
>> > +        {
>> 
>> Surely an unnecessary adjustment, if an earlier patch got it right
>> from the beginning?
>
>Hmm... I don't understand lot of the time code, but PVH uses PV time
>ops right now, so don't need to worry about it. But the time thing needs
>a revisit anyways with more vtsc modes added in phase II.

The point was that this is a formatting only change, which you shouldn't
do here, but get things right where you insert the conditional.

>> > +    };
>> > +
>> > +    regs->eip += ilen;
>> > +
>> > +    /* gdbsx or another debugger. Never pause dom0 */
>> > +    if ( vp->domain->domain_id != 0 && guest_kernel_mode(vp,
>> > regs) )
>> > +    {
>> > +        dbgp1("[%d]PVH: domain pause for debugger\n",
>> > smp_processor_id());
>> > +        current->arch.gdbsx_vcpu_event = TRAP_int3;
>> > +        domain_pause_for_debugger();
>> > +        return 0;
>> > +    }
>> > +
>> > +    regs->eip -= ilen;
>> 
>> Please move the first adjustment into the if() body, making the
>> second adjustment here unnecessary.
>
>Actually, there could more debuggers being used also, so if you don't
>mind i'd like to leave it as is:

I do mind actually, not the least because I even consider it wrong to do the
adjustment before calling out to the debugger code. That code should be
handed the original state, not something already modified.

>> > +static int vmxit_invalid_op(struct cpu_user_regs *regs)
>> > +{
>> > +    ulong addr = 0;
>> > +
>> > +    if ( guest_kernel_mode(current, regs) ||
>> > +         emulate_forced_invalid_op(regs, &addr) == 0 )
>> > +    {
>> > +        hvm_inject_hw_exception(TRAP_invalid_op,
>> > HVM_DELIVER_NO_ERROR_CODE);
>> > +        return 0;
>> > +    }
>> > +    if ( addr )
>> > +        hvm_inject_page_fault(0, addr);
>> 
>> This cannot be conditional upon addr being non-zero.
>
>Why not? rc = emulate_forced_invalid_op():

Because zero can be a valid address that a fault occurred on.

>> > +static int vmxit_io_instr(struct cpu_user_regs *regs)
>> > +{
>> > +    int curr_lvl;
>> > +    int requested = (regs->rflags >> 12) & 3;
>> > +
>> > +    read_vmcs_selectors(regs);
>> > +    curr_lvl = regs->cs & 3;
>> 
>> Shouldn't you look at SS'es DPL instead?
>
>Ok. It looks like CPL is stored in both CS and SS, so either
>should be ok. But I changed it to ss. 

Your response reads as if you're still looking at the low two bits of the selector,
whereas me using DPL was intended to hint at you needing to look at the "hidden"
portion of the register.

>> > +    switch ( (uint16_t)exit_reason )
>> > +    {
>> > +        case EXIT_REASON_EXCEPTION_NMI:      /* 0 */
>> > +            rc = vmxit_exception(regs);
>> > +            break;
>> 
>> Why would an NMI be blindly reflected to the guest?
>
>I wish it was named EXIT_REASON_EXCEPTION_OR_NMI.
>Anyways, TRAP_machine_check is handled in caller. We handle other 
>excpetions here.

Okay, but then please add a comment to that effect.
 
Jan

  reply	other threads:[~2013-05-01 13:52 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-23 21:25 [PATCH 00/17][V4]: PVH xen: version 4 patches Mukesh Rathor
2013-04-23 21:25 ` [PATCH 01/17] PVH xen: turn gdb_frames/gdt_ents into union Mukesh Rathor
2013-04-23 21:25 ` [PATCH 02/17] PVH xen: add XENMEM_add_to_physmap_range Mukesh Rathor
2013-04-23 21:25 ` [PATCH 03/17] PVH xen: create domctl_memory_mapping() function Mukesh Rathor
2013-04-24  7:01   ` Jan Beulich
2013-04-23 21:25 ` [PATCH 04/17] PVH xen: add params to read_segment_register Mukesh Rathor
2013-04-23 21:25 ` [PATCH 05/17] PVH xen: vmx realted preparatory changes for PVH Mukesh Rathor
2013-04-23 21:25 ` [PATCH 06/17] PVH xen: Introduce PVH guest type Mukesh Rathor
2013-04-24  7:07   ` Jan Beulich
2013-04-24 23:01     ` Mukesh Rathor
2013-04-25  8:28       ` Jan Beulich
2013-04-23 21:25 ` [PATCH 07/17] PVH xen: tools changes to create PVH domain Mukesh Rathor
2013-04-24  7:10   ` Jan Beulich
2013-04-24 23:02     ` Mukesh Rathor
2013-04-23 21:25 ` [PATCH 08/17] PVH xen: domain creation code changes Mukesh Rathor
2013-04-23 21:25 ` [PATCH 09/17] PVH xen: create PVH vmcs, and also initialization Mukesh Rathor
2013-04-24  7:42   ` Jan Beulich
2013-04-30 21:01     ` Mukesh Rathor
2013-04-30 21:04     ` Mukesh Rathor
2013-04-23 21:25 ` [PATCH 10/17] PVH xen: introduce vmx_pvh.c and pvh.c Mukesh Rathor
2013-04-24  8:47   ` Jan Beulich
2013-04-25  0:57     ` Mukesh Rathor
2013-04-25  8:36       ` Jan Beulich
2013-04-26  1:16         ` Mukesh Rathor
2013-04-26  1:58           ` Mukesh Rathor
2013-04-26  7:29             ` Jan Beulich
2013-04-26  7:20           ` Jan Beulich
2013-04-27  2:06             ` Mukesh Rathor
2013-05-01  0:51     ` Mukesh Rathor
2013-05-01 13:52       ` Jan Beulich [this message]
2013-05-02  1:10         ` Mukesh Rathor
2013-05-02  6:42           ` Jan Beulich
2013-05-03  1:03             ` Mukesh Rathor
2013-05-10  1:51         ` Mukesh Rathor
2013-05-10  7:07           ` Jan Beulich
2013-05-10 23:44             ` Mukesh Rathor
2013-05-02  1:17     ` Mukesh Rathor
2013-05-02  6:53       ` Jan Beulich
2013-05-03  0:40         ` Mukesh Rathor
2013-05-03  6:33           ` Jan Beulich
2013-05-04  1:40             ` Mukesh Rathor
2013-05-06  6:44               ` Jan Beulich
2013-05-07  1:25                 ` Mukesh Rathor
2013-05-07  8:07                   ` Jan Beulich
2013-05-11  0:30     ` Mukesh Rathor
2013-04-25 11:19   ` Tim Deegan
2013-04-23 21:26 ` [PATCH 11/17] PVH xen: some misc changes like mtrr, intr, msi Mukesh Rathor
2013-04-23 21:26 ` [PATCH 12/17] PVH xen: support invalid op, return PVH features etc Mukesh Rathor
2013-04-24  9:01   ` Jan Beulich
2013-04-25  1:01     ` Mukesh Rathor
2013-04-23 21:26 ` [PATCH 13/17] PVH xen: p2m related changes Mukesh Rathor
2013-04-25 11:28   ` Tim Deegan
2013-04-25 21:59     ` Mukesh Rathor
2013-04-26  8:53       ` Tim Deegan
2013-04-23 21:26 ` [PATCH 14/17] PVH xen: Add and remove foreign pages Mukesh Rathor
2013-04-25 11:38   ` Tim Deegan
2013-04-23 21:26 ` [PATCH 15/17] PVH xen: Miscellaneous changes Mukesh Rathor
2013-04-24  9:06   ` Jan Beulich
2013-05-10  1:54     ` Mukesh Rathor
2013-05-10  7:10       ` Jan Beulich
2013-04-23 21:26 ` [PATCH 16/17] PVH xen: elf and iommu related changes to prep for dom0 PVH Mukesh Rathor
2013-04-24  9:15   ` Jan Beulich
2013-05-14  1:16     ` Mukesh Rathor
2013-05-14  6:56       ` Jan Beulich
2013-05-14 19:14         ` Mukesh Rathor
2013-04-23 21:26 ` [PATCH 17/17] PVH xen: PVH dom0 creation Mukesh Rathor
2013-04-24  9:28   ` Jan Beulich
2013-04-26  1:18     ` Mukesh Rathor
2013-04-26  7:22       ` Jan Beulich
2013-05-10  1:53         ` Mukesh Rathor
2013-05-10  7:14           ` Jan Beulich
2013-05-15  1:18             ` Mukesh Rathor

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=51812C2B0200007800099AF7@nat28.tlf.novell.com \
    --to=jbeulich@suse.com \
    --cc=mukesh.rathor@oracle.com \
    --cc=xen-devel@lists.xen.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.