From 30a6a7de39b7f04336fe6ad5b0bf5f40d0e3c3c9 Mon Sep 17 00:00:00 2001 From: Penny Zheng Date: Tue, 8 Jan 2019 10:55:05 +0800 Subject: [PATCH] agent: acquire memory hotplug probe info via GetGuestDetails In order to support memory hotplug via probe interface in kata-runtime, firstly, we need to verify whether guest kernel is capable of that. Fixes: #1149 Signed-off-by: Penny Zheng --- virtcontainers/sandbox.go | 4 +++- virtcontainers/types/sandbox.go | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/virtcontainers/sandbox.go b/virtcontainers/sandbox.go index 0092737400..6a82d2d6e5 100644 --- a/virtcontainers/sandbox.go +++ b/virtcontainers/sandbox.go @@ -416,7 +416,8 @@ func createAssets(ctx context.Context, sandboxConfig *SandboxConfig) error { func (s *Sandbox) getAndStoreGuestDetails() error { guestDetailRes, err := s.agent.getGuestDetails(&grpc.GuestDetailsRequest{ - MemBlockSize: true, + MemBlockSize: true, + MemHotplugProbe: true, }) if err != nil { return err @@ -427,6 +428,7 @@ func (s *Sandbox) getAndStoreGuestDetails() error { if guestDetailRes.AgentDetails != nil { s.seccompSupported = guestDetailRes.AgentDetails.SupportsSeccomp } + s.state.GuestMemoryHotplugProbe = guestDetailRes.SupportMemHotplugProbe if err = s.store.Store(store.State, s.state); err != nil { return err diff --git a/virtcontainers/types/sandbox.go b/virtcontainers/types/sandbox.go index 84dc14f5ec..bd1d6b167f 100644 --- a/virtcontainers/types/sandbox.go +++ b/virtcontainers/types/sandbox.go @@ -45,6 +45,9 @@ type State struct { // GuestMemoryBlockSizeMB is the size of memory block of guestos GuestMemoryBlockSizeMB uint32 `json:"guestMemoryBlockSize"` + // GuestMemoryHotplugProbe determines whether guest kernel supports memory hotplug probe interface + GuestMemoryHotplugProbe bool `json:"guestMemoryHotplugProbe"` + // CgroupPath is the cgroup hierarchy where sandbox's processes // including the hypervisor are placed. CgroupPath string `json:"cgroupPath,omitempty"`