Find the answer to your Linux question:
Results 1 to 2 of 2
Hi, I need to get the task_struct's address of current process in a virtual machine monitor (such as Bitvisor). Because of, in kernel mode, each process has an 8kb-sized (or ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Oct 2011
    Posts
    1

    Convert guest logical address to host physical address


    Hi,
    I need to get the task_struct's address of current process in a virtual machine monitor (such as Bitvisor).
    Because of, in kernel mode, each process has an 8kb-sized (or 4kb) memory area which contains a stack starts at the beginning of the area (with highest address) and a struct named "thread_info" start at the end. An operation: esp & 0xffffe000 (esp & 0xfffff000 for 4Kb stack size) helps bring out the address of "thread_info". Since the task_struct's address can be calculated from the first field of "thread_info", I want to convert guest virtual address of thread_info struct to host physical address i hyoervisor level as below:
    thread_info_guest_logical = VMCS.rsp & 0xffffe000
    thread_info_host_logical =guest_logic_to_host_physic(....);
    I need a proper C function such as guest_logic_to_host_physic in the Intel platform.

    Anybody know about this or have suggestion ?

    Many thanks.

  2. #2
    Banned
    Join Date
    Nov 2011
    Posts
    13
    First, guest does not have any information whether it is running on hypervisor or not. You can not get details about a guest inside a guest unless, you have implemented some special interface (virtual device) to get details from hypervisor (e.g. command relay) or some mechanism on top of VMCALL instruction.
    Last edited by oz; 11-26-2011 at 01:37 PM. Reason: spam removal

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •