diff --git a/pkg/katautils/config.go b/pkg/katautils/config.go index 821381d94..a5145ec16 100644 --- a/pkg/katautils/config.go +++ b/pkg/katautils/config.go @@ -672,7 +672,7 @@ func updateRuntimeConfigShim(configPath string, tomlConf tomlConfig, config *oci // SetKernelParams adds the user-specified kernel parameters (from the // configuration file) to the defaults so that the former take priority. func SetKernelParams(runtimeConfig *oci.RuntimeConfig) error { - defaultKernelParams := GetKernelParamsFunc(needSystemd(runtimeConfig.HypervisorConfig)) + defaultKernelParams := GetKernelParamsFunc(needSystemd(runtimeConfig.HypervisorConfig), runtimeConfig.Trace) if runtimeConfig.HypervisorConfig.Debug { strParams := vc.SerializeParams(defaultKernelParams, "=") diff --git a/pkg/katautils/config_test.go b/pkg/katautils/config_test.go index 1a4f5f59e..545dd1162 100644 --- a/pkg/katautils/config_test.go +++ b/pkg/katautils/config_test.go @@ -1414,7 +1414,7 @@ func TestUpdateRuntimeConfigurationInvalidKernelParams(t *testing.T) { GetKernelParamsFunc = savedFunc }() - GetKernelParamsFunc = func(needSystemd bool) []vc.Param { + GetKernelParamsFunc = func(needSystemd, trace bool) []vc.Param { return []vc.Param{ { Key: "", diff --git a/pkg/katautils/create.go b/pkg/katautils/create.go index 3b37393fd..5283b3123 100644 --- a/pkg/katautils/create.go +++ b/pkg/katautils/create.go @@ -37,11 +37,72 @@ var systemdKernelParam = []vc.Param{ }, } -func getKernelParams(needSystemd bool) []vc.Param { +// kernel params to improve memory footprint +var noTraceKernelParam = []vc.Param{ + // No logs: agent has its own logging system + { + Key: "systemd.mask", + Value: "systemd-journald.service", + }, + { + Key: "systemd.mask", + Value: "systemd-journald.socket", + }, + { + Key: "systemd.mask", + Value: "systemd-journal-flush.service", + }, + // No udev events: agent implements udev events + { + Key: "systemd.mask", + Value: "systemd-udevd.service", + }, + { + Key: "systemd.mask", + Value: "systemd-udevd.socket", + }, + { + Key: "systemd.mask", + Value: "systemd-udev-trigger.service", + }, + // No timesync: kata is able to setup the time and this service consume network + { + Key: "systemd.mask", + Value: "systemd-timesyncd.service", + }, + // No update audit logs + { + Key: "systemd.mask", + Value: "systemd-update-utmp.service", + }, + // No temporal files + { + Key: "systemd.mask", + Value: "systemd-tmpfiles-setup.service", + }, + { + Key: "systemd.mask", + Value: "systemd-tmpfiles-cleanup.service", + }, + { + Key: "systemd.mask", + Value: "systemd-tmpfiles-cleanup.timer", + }, + // No mounts + { + Key: "systemd.mask", + Value: "tmp.mount", + }, +} + +func getKernelParams(needSystemd, trace bool) []vc.Param { p := []vc.Param{} if needSystemd { p = append(p, systemdKernelParam...) + if !trace { + p = append(p, noTraceKernelParam...) + } } return p