Page 1 of 1

Virtualization

Posted: 2018-01-24, 1:47:10
by JoeDuarte
Hi Agner – I didn't see any treatment of virtualization in the specification. Does an ISA need to implement some things to optimize virtualization? Would these be instructions or something at a higher level of implementation?

Intel and AMD tout lots of virtualization features, and instructions like VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF, and VMXON. Since virtualization is used pervasively on servers today, I wondered why Forwardcom didn't cover it.

(VMs are the most common way people use virtualization, but this may change – Intel has been working on hardware virtualized containers, which seem to be lighter in overhead, but still depend on hardware/ISA support: https://clearlinux.org/blogs/announcing ... tainers-30)

Joe

Re: Virtualization

Posted: 2018-01-24, 6:20:06
by agner
Virtualization requires complex micro-coded instructions. This is something I want to avoid in order to keep the hardware simple and efficient. These features can be added later if needed, but many applications will not need them.

Re: Virtualization

Posted: 2018-02-06, 9:45:27
by JoeDuarte
Hi Agner – I think virtualization support is de rigueur at this point. In many settings a server is practically defined as a computer that hosts multiple guest VMs.

Bare metal server setups certainly exist, but they tend to be wasteful if running one or two applications on a legacy OS like Linux, Windows Server, or BSD.

There is so much underutilized CPU, I/O, and networking when virtualization is not used. VMs are like the Uber of computing – they leverage previously idle resources and capacities.

Would the complexity of the microcode be affected by limiting FC's virtualization support to identical guest OSes? Meaning, on a given server, you could only run Fedora 27 guests, for example, or Alpine Linux 3.7 guests, etc.

Would the microcode be less complex if ForwardCom's ISA was designed in concert with a hypervisor tailored specifically for it? I also wonder if supporting unikernel guests only might simplify the microcode. I think unikernels are the future anyway: http://unikernel.org/

Re: Virtualization

Posted: 2018-02-06, 12:21:52
by agner
JoeDuarte wrote:
Would the complexity of the microcode be affected by limiting FC's virtualization support to identical guest OSes?
Yes. You wouldn't need any hardware support for that - just a subdivision of the memory space.