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

Re: Re: [Xen-devel] no such file or directory


  • To: lijiandm <lijiandm@xxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Paul Samon" <paul.samon@xxxxxxxxx>
  • Date: Sun, 23 Nov 2008 23:54:30 -0800
  • Cc:
  • Delivery-date: Sun, 23 Nov 2008 23:54:54 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=lt0ywewf7k48zWUdPTzK+aHRqiSpZDVPOAoAJgNavk1UJyDNCep8BYXOo2FUgqMIYr uAJ4cBji4JIkR2v1cnPnNUnGPTcsgSm5ubM+MG/W9wYjekAqVm+xX2N+tGxa1lUxPbKV /q5llBI3HM/r3wPFTj/ZX6r9xgD3ryzXUxml8=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Do you need to export plenty of data of Xen? If not, I think using
printk() or debugtrace_printk() is the best choice.
If you really have much data to export, I think you can look into how
"xm dmesg" or xentrace is implemented.

--  Paul. S.

2008/11/23 lijiandm <lijiandm@xxxxxxx>:
> "use some relatively complex methods to export the data in Xen to Dom0's
> userspace."
> What's the complex methods ?Can you give me some suggestion?
> Thanks.
>
>
> 在2008-11-24,"Paul Samon" <paul.samon@xxxxxxxxx> 写道:
>>Oh, no... You can not use C's standard IO library in Xen at all.
>>For example,  Xen has no knowledge about the file system at all, so it
>>can't understand a file path "/home/a.txt" at all.
>>
>>By a serial cable, you can use printk() to output the info you need(if
>>you have not a cable at hand, check the "xm dmesg" in Dom0), or use
>>some relatively complex methods to export the data in Xen to Dom0's
>>userspace.
>>
>>-- Paul. S.
>>
>>2008/11/23 lijiandm <lijiandm@xxxxxxx>:
>>>  hello list:
>>>  I add some code to xen-3.1.0-src\xen\arch\x86\hvm\vmx\vmx.c  to export
>>> some
>>> information when vmx_vmexit_handler() executed:
>>>
>>> -------------------------------------------------------------------------------------------------
>>>  --- vmx.c 2007-05-18 22:45:22.000000000 +0800
>>> +++ vmx-patch.c 2008-11-24 14:19:18.000000000 +0800
>>> @@ -50,7 +50,9 @@
>>>  #include <asm/hvm/vpt.h>
>>>  #include <public/hvm/save.h>
>>>  #include <asm/hvm/trace.h>
>>> -
>>> +#include <stdio.h>
>>> +#include <stdlib.h>
>>> +#include <unistd.h>
>>>  char *vmx_msr_bitmap;
>>>
>>>  static void vmx_ctxt_switch_from(struct vcpu *v);
>>> @@ -2590,9 +2592,13 @@
>>>      unsigned int exit_reason;
>>>      unsigned long exit_qualification, inst_len = 0;
>>>      struct vcpu *v = current;
>>> + int test;
>>> + unsigned long FS_SELECTOR,FS_LIMIT,FS_AR_BYTES,FS_BASE,CR3;
>>> + FILE *fp;
>>> + char a='\n',b='%';
>>>
>>>      exit_reason = __vmread(VM_EXIT_REASON);
>>> -
>>> +
>>>      HVMTRACE_2D(VMEXIT, v, __vmread(GUEST_RIP), exit_reason);
>>>
>>>      perfc_incra(vmexits, exit_reason);
>>> @@ -2711,6 +2717,27 @@
>>>      }
>>>      case EXIT_REASON_CR_ACCESS:
>>>      {
>>> +  FS_SELECTOR=(unsigned long)__vmread(EXIT_QUALIFICATION);
>>> +  FS_LIMIT=(unsigned long)__vmread(EXIT_QUALIFICATION);
>>> +  FS_AR_BYTES=(unsigned long)__vmread(EXIT_QUALIFICATION);
>>> +  FS_BASE=(unsigned long)__vmread(EXIT_QUALIFICATION);
>>> +  CR3=(unsigned long)__vmread(EXIT_QUALIFICATION);
>>> +
>>> +  fp=fopen("/home/a.txt","a+");
>>> +
>>> +  fwrite(&FS_SELECTOR,sizeof(unsigned long),1,fp);
>>> +  fwrite(&b,sizeof(char),1,fp);
>>> +  fwrite(&FS_LIMIT,sizeof(unsigned long),1,fp);
>>> +  fwrite(&b,sizeof(char),1,fp);
>>> +  fwrite(&FS_AR_BYTES,sizeof(unsigned long),1,fp);
>>> +  fwrite(&b,sizeof(char),1,fp);
>>> +  fwrite(&FS_BASE,sizeof(unsigned long),1,fp);
>>> +  fwrite(&b,sizeof(char),1,fp);
>>> +  fwrite(&CR3,sizeof(unsigned long),1,fp);
>>> +  fwrite(&a,sizeof(char),1,fp);
>>> +
>>> +  fclose(fp);
>>> +
>>>          exit_qualification = __vmread(EXIT_QUALIFICATION);
>>>          inst_len = __get_instruction_length(); /* Safe: MOV Cn, LMSW,
>>> CLTS
>>> */
>>>          if ( vmx_cr_access(exit_qualification, regs) )
>>>
>>> -----------------------------------------------------------------------------------------------------
>>>
>>> but when I compiled the xen,the error occured:
>>> vmx.c:53:19: 错误:stdio.h:No such file or directory
>>> vmx.c:54:20: 错误:stdlib.h:No such file or directory
>>> vmx.c:55:20: 错误:unistd.h:No such file or directory
>>>
>>> How can I slove this problem?
>>> Thanks.
>
_______________________________________________
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®.