[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [PATCH for-4.5 v6 04/16] xen: Add vmware_port	support
 
- To: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>, 	Don Slutz <dslutz@xxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxx
 
- From: Don Slutz <dslutz@xxxxxxxxxxx>
 
- Date: Fri, 26 Sep 2014 15:09:30 -0400
 
- Cc: Kevin Tian <kevin.tian@xxxxxxxxx>, Keir Fraser <keir@xxxxxxx>,	Ian Campbell <ian.campbell@xxxxxxxxxx>,	Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>,	Jun Nakajima <jun.nakajima@xxxxxxxxx>, Eddie Dong <eddie.dong@xxxxxxxxx>,	Ian Jackson <ian.jackson@xxxxxxxxxxxxx>, Tim Deegan <tim@xxxxxxx>,	George Dunlap <George.Dunlap@xxxxxxxxxxxxx>,	Aravind Gopalakrishnan <Aravind.Gopalakrishnan@xxxxxxx>,	Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>,	Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx>
 
- Delivery-date: Fri, 26 Sep 2014 19:09:43 +0000
 
- List-id: Xen developer discussion <xen-devel.lists.xen.org>
 
 
 
On 09/23/14 13:16, Boris Ostrovsky wrote:
 
On 09/20/2014 02:07 PM, Don Slutz wrote:
 
@@ -2064,6 +2065,42 @@ svm_vmexit_do_vmsave(struct vmcb_struct *vmcb,
      return;
  }
  +static void svm_vmexit_gp_intercept(struct cpu_user_regs *regs,
+                                    struct vcpu *v)
+{
+    struct vmcb_struct *vmcb = v->arch.hvm_svm.vmcb;
+    /*
+     * Just use 15 for the instruction length; vmport_gp_check will
+     * adjust it.  This is because
+     * __get_instruction_length_from_list() has issues, and may
+     * require a double read of the instruction bytes.  At some
+     * point a new routine could be added that is based on the code
+     * in vmport_gp_check with extensions to make it more general.
+     * Since that routine is the only user of this code this can be
+     * done later.
+     */
+    unsigned long inst_len = 15;
 
Can you add a comment describing why you chose 15?
 Also, saying that __get_instruction_length_from_list() has issues I 
think requires a bit more details (e.g. that when called from #GP 
handler NRIP is not available, or that NRIP may not be available at 
all on a particular HW, leading to the need read the instruction twice 
--- once in __get_instruction_length_from_list() and then again in 
vmport_gp_check(). Which is bad because memory may change between the 
reads. Or something like that.).
 
 
Added more on the commit message about this.
   -Don Slutz
 
-boris
 
 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
 
 
    
     |