mirror of
https://github.com/opencontainers/runc.git
synced 2026-04-24 16:39:52 +08:00
ba68a17ad1
Signed-off-by: Markus Lehtonen <markus.lehtonen@intel.com>
42 lines
759 B
Go
42 lines
759 B
Go
package validate
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/opencontainers/runc/libcontainer/intelrdt"
|
|
)
|
|
|
|
// Cache the result of intelrdt IsEnabled functions to avoid repeated sysfs
|
|
// access and enable mocking for unit tests.
|
|
type intelRdtStatus struct {
|
|
sync.Once
|
|
rdtEnabled bool
|
|
catEnabled bool
|
|
mbaEnabled bool
|
|
}
|
|
|
|
var intelRdt = &intelRdtStatus{}
|
|
|
|
func (i *intelRdtStatus) init() {
|
|
i.Do(func() {
|
|
i.rdtEnabled = intelrdt.IsEnabled()
|
|
i.catEnabled = intelrdt.IsCATEnabled()
|
|
i.mbaEnabled = intelrdt.IsMBAEnabled()
|
|
})
|
|
}
|
|
|
|
func (i *intelRdtStatus) isEnabled() bool {
|
|
i.init()
|
|
return i.rdtEnabled
|
|
}
|
|
|
|
func (i *intelRdtStatus) isCATEnabled() bool {
|
|
i.init()
|
|
return i.catEnabled
|
|
}
|
|
|
|
func (i *intelRdtStatus) isMBAEnabled() bool {
|
|
i.init()
|
|
return i.mbaEnabled
|
|
}
|