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

Re: [Xen-devel] Get IDT from virtual machine


  • To: Matthew Donovan <matthew@xxxxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
  • Date: Sat, 02 Feb 2008 10:18:37 +0000
  • Delivery-date: Sat, 02 Feb 2008 02:18:34 -0800
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AchlhPkjN6qtDNF4EdySjgAWy6hiGQ==
  • Thread-topic: [Xen-devel] Get IDT from virtual machine

Yes, your code extracts the virtual IDT for a PV guest. As I said below,
doing it for an HVM guest requires you to issue a hvm-save-state hypercall
and then pick apart the binary structure that is returned.

 -- Keir


On 1/2/08 17:20, "Matthew Donovan" <matthew@xxxxxxxxxxxxxx> wrote:

>  But one could get the IDTR for a para-virt guest?  Out of curiousity, how
> hard would it be to do it for HVM guests?
> 
> -matthew
> 
> -----Original Message-----
> From: Keir Fraser [mailto:Keir.Fraser@xxxxxxxxxxxx]
> Sent: Friday, February 01, 2008 3:40 AM
> To: Matthew Donovan; xen-devel@xxxxxxxxxxxxxxxxxxx
> Subject: Re: [Xen-devel] Get IDT from virtual machine
> 
> That's very wishful code! Unfortunately the IDTR is not exposed via
> vcpu_context for HVM guests. The only way to get it right now is to do a hvm
> save hypercall and then parse the pickled state to find the IDTR. It
> actually should be quite easy.
> 
>  -- Keir
> 
> On 31/1/08 21:31, "Matthew Donovan" <matthew@xxxxxxxxxxxxxx> wrote:
> 
>> 
>> I'm trying to retrieve and print the interrupt descriptor table of a
>> guest OS but every address is coming out 0x00000000.
>> 
>> Here's what I'm doing:
>> 
>>     vcpu_guest_context_t ctx;
>>     int i;
>> 
>>     int res = xc_vcpu_getcontext (xai->xc_handle, xai->domain_id, 0,
> &ctx);
>>     if (res < 0) {
>>         fprintf (stderr, "xc_vcpu_getcontext failed!\n");
>>         return;
>>     }   
>> 
>>     for (i = 0 ; i < 256 ; ++i) {
>>         printf ("Interrupt %d: Address 0x%08x\n",
>>                 i,
>>                 ctx.trap_ctxt[i].address);
>>     }
>> 
>> 
>> I'm using Xen 3.1.2 on Fedora Core 8.  The guest OS's have been XP Pro
>> and Vista Ultimate, though I assume that part doesn't matter since the
>> IDT is a processor structure.
>> 
>> Any help is greatly appreciated.
>> -matthew
>> 
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>> http://lists.xensource.com/xen-devel
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel



_______________________________________________
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®.