qemu: tdx: Adapt to the TDX 1.5 stack

QEMU for TDX 1.5 makes use of private memory map/unmap.
Make changes to govmm to support this. Support for private backing fd
for memory is added as knob to the qemu config.

Userspace's map/unmap operations are done by fallocate() ioctl on the
backing store fd.
Reference:
https://lore.kernel.org/linux-mm/20220519153713.819591-1-chao.p.peng@linux.intel.com/

Fixes: #7770

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
This commit is contained in:
Archana Shinde
2023-08-24 01:41:47 -07:00
committed by Fabiano Fidêncio
parent 8115a0522d
commit 1e34220c41
4 changed files with 63 additions and 3 deletions

View File

@@ -71,6 +71,9 @@ type qemuArch interface {
// memoryTopology returns the memory topology using the given amount of memoryMb and hostMemoryMb
memoryTopology(memoryMb, hostMemoryMb uint64, slots uint8) govmmQemu.Memory
// protection returns platform protection
getProtection() guestProtection
// appendConsole appends a console to devices
appendConsole(ctx context.Context, devices []govmmQemu.Device, path string) ([]govmmQemu.Device, error)
@@ -280,6 +283,10 @@ func (q *qemuArchBase) machine() govmmQemu.Machine {
return q.qemuMachine
}
func (q *qemuArchBase) getProtection() guestProtection {
return q.protection
}
func (q *qemuArchBase) qemuPath() string {
return q.qemuExePath
}