This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ARM virtualization scenario.

Dear all,

I am interested in a scenario where I want to host two guest OSes above a bare-metal hypervisor on an ARM mobile platform. The total available memory platform is 4GB where I want to expose exclusively 2 GB of continuous RAM to each guest OS. Could you please guide me through my two below concerns:

1- in case I change the FDT (device tree) of each guest OS to reflect exclusively 2 GB of continuous memory, can I be assured that the kernel of the guest OS will only access these 2 GB, and further it is not even aware of the existence of the other 2 GB of the memory on the platform?

 

2- I prefer that each guest OS manage directly its memory without the intervention of the host hypervisor (in other words the guest physical address reflect the actual hypervisor physical address), in such scenario can I resort to a XenARM-like hypervisor and just disable the second stage translation in the Xen hypervisor code? Would that work or is there actually a better way to do it? Please share your experience

Best wishes.

Parents
  • Thanks daith and Martin,

    @daith: yes I agree that the overhead of second stage translation translation is very small and that's why hardware second stage page-table walk were made (let's forget about how much very small ). Further, you mentioned that my goal is very difficult thing to do; why is that in your opinion? what are the challenges that I will be facing?

    Please let me state briefly that my goal is to host two OSes with  pseudo-complete disengaging of the hypervisor. The scheduled OS is itself responsible for its own memory mgmt, interrupt handling and all other privileged operations. My bare-metal hypervisor does nothing by periodically schedule  one of the two OSes based on a timer interrupt. Any kernel access to this timer is trapped to the hyp etc..

    Martin idea on having flat having flat mapped addresses (i.e. IPA==PA) together with hyp translation is very interesting, could you please elaborate more on how to integrate it in my design to achieve my upper-mentioned design goal.

    Thank you so much.

Reply
  • Thanks daith and Martin,

    @daith: yes I agree that the overhead of second stage translation translation is very small and that's why hardware second stage page-table walk were made (let's forget about how much very small ). Further, you mentioned that my goal is very difficult thing to do; why is that in your opinion? what are the challenges that I will be facing?

    Please let me state briefly that my goal is to host two OSes with  pseudo-complete disengaging of the hypervisor. The scheduled OS is itself responsible for its own memory mgmt, interrupt handling and all other privileged operations. My bare-metal hypervisor does nothing by periodically schedule  one of the two OSes based on a timer interrupt. Any kernel access to this timer is trapped to the hyp etc..

    Martin idea on having flat having flat mapped addresses (i.e. IPA==PA) together with hyp translation is very interesting, could you please elaborate more on how to integrate it in my design to achieve my upper-mentioned design goal.

    Thank you so much.

Children