mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-28 19:54:35 +00:00
runtime: clh: disable virtiofs DAX when FS cache size is 0
Guest consumes 120Mb more of memory when DAX is enabled and the default FS cache size (8G) is used. Disable dax when it is not required reducing guest's memory footprint. Without this patch: ``` 7fdea4000000-7fdee4000000 rw-s 18850589 /memfd:ch_ram (deleted) Size: 1048576 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 187876 kB ``` With this patch: ``` 7fa970000000-7fa9b0000000 rw-s 612001 /memfd:ch_ram (deleted) Size: 1048576 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 57308 kB Pss: 56722 kB ``` fixes #1100 Signed-off-by: Julio Montes <julio.montes@intel.com>
This commit is contained in:
parent
af04d71feb
commit
e1396f0402
@ -1197,22 +1197,23 @@ func (clh *cloudHypervisor) addVolume(volume types.Volume) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if clh.config.VirtioFSCache == virtioFsCacheAlways {
|
||||
clh.vmconfig.Fs = []chclient.FsConfig{
|
||||
{
|
||||
Tag: volume.MountTag,
|
||||
CacheSize: int64(clh.config.VirtioFSCacheSize << 20),
|
||||
Socket: vfsdSockPath,
|
||||
},
|
||||
}
|
||||
} else {
|
||||
clh.vmconfig.Fs = []chclient.FsConfig{
|
||||
{
|
||||
Tag: volume.MountTag,
|
||||
Socket: vfsdSockPath,
|
||||
},
|
||||
}
|
||||
// disable DAX if VirtioFSCacheSize is 0
|
||||
dax := clh.config.VirtioFSCacheSize != 0
|
||||
|
||||
// numQueues and queueSize are required, let's use the
|
||||
// default values defined by cloud-hypervisor
|
||||
numQueues := int32(1)
|
||||
queueSize := int32(1024)
|
||||
|
||||
clh.vmconfig.Fs = []chclient.FsConfig{
|
||||
{
|
||||
Tag: volume.MountTag,
|
||||
Socket: vfsdSockPath,
|
||||
Dax: dax,
|
||||
CacheSize: int64(clh.config.VirtioFSCacheSize << 20),
|
||||
NumQueues: numQueues,
|
||||
QueueSize: queueSize,
|
||||
},
|
||||
}
|
||||
|
||||
clh.Logger().Debug("Adding share volume to hypervisor: ", volume.MountTag)
|
||||
|
Loading…
Reference in New Issue
Block a user