[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Question on shadow_invlpg return value handling.


  • To: Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>, aditya shevalkar <aditya27783@xxxxxxxxxxx>
  • From: jeet <jeet_sat12@xxxxxxxxxxx>
  • Date: Tue, 27 Mar 2007 15:49:22 +0530 (IST)
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Tue, 27 Mar 2007 03:18:15 -0700
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.co.in; h=X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID; b=STLPB7yhtlrZTiyq2PFDN7BrWZRVczRR5+PzYoWC6z8sORsOUIUGm8muGDAQr+rsHvbdr/UHrXTHDWq8IlpHVl8PQR+YxTUFRxg9vEoM/qgFJEzN7J6g8CdDJD5SI1oszv8C/sFM9od1R1wL6wd0N+bQI+dzCC0bW+ZNXu7XO7E=;
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Hi Tim

If on VM entry TLB is flushed why we are handling instruction "invlpg" in xen
can't this be done by doing VMexit and VM entry as this would do flushing of 
TLB?

Is this TLB flush done due to loading of guest state (mov to cr3)?
or 
Is TLB flush on VM entry hardware feature or is implemented in Xen ?

jeet

----- Original Message ----
From: Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>
To: aditya shevalkar <aditya27783@xxxxxxxxxxx>
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Sent: Tuesday, 27 March, 2007 2:02:25 PM
Subject: Re: [Xen-devel] Question on shadow_invlpg return value handling.

At 10:21 +0530 on 27 Mar (1174990916), aditya shevalkar wrote:
> Can anyone explain me where does this return values from sh_invlpg are used.
>  The comment is given below:
> /* Called when the guest requests an invlpg.  Returns 1 if the invlpg
> * instruction should be issued on the hardware, or 0 if it's safe not
>  * to do so. */
> I have followed the following path of function call in my study of the 
> function.
> vmx_vmexit_do_invlpg(va) à  shadow_invlpg(v, va) à sh_invlpg(struct vcpu *v, 
> unsigned long va).

The VMX (and SVM) code ignores the return code of shadow_invlpg at the
moment, because they both flush the entire TLB on every VM entry anyway
(AMD's hardware support for tagged TLBs is apparently not quite useable
yet).

arch/x86/mm.c, which handles PV guests, uses the return code correctly,
e.g.:

  case MMUEXT_INVLPG_LOCAL:
       if ( !shadow_mode_enabled(d) 
            || shadow_invlpg(v, op.arg1.linear_addr) != 0 )
           local_flush_tlb_one(op.arg1.linear_addr);
       break;

Cheers,

Tim.

-- 
Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>, XenSource UK Limited
Registered office c/o EC2Y 5EB, UK; company number 05334508

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel





                
__________________________________________________________
Yahoo! India Answers: Share what you know. Learn something new
http://in.answers.yahoo.com/

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.