*: introduce wrapper pkgs for blockio and rdt
Before this patch, both the RdtEnabled and BlockIOEnabled are provided
by services/tasks pkg. Since the services/tasks can be pkg plugin which
can be initialized multiple times or concurrently. It will fire data-race
issue as there is no mutex to protect `enable`.
This patch is aimed to provide wrapper pkgs to use intel/{blockio,rdt}
safely.
Signed-off-by: Wei Fu <fuweid89@gmail.com>
This commit is contained in:
@@ -21,10 +21,9 @@ package sbserver
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/containerd/containerd/services/tasks"
|
||||
"github.com/intel/goresctrl/pkg/blockio"
|
||||
runtimespec "github.com/opencontainers/runtime-spec/specs-go"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/containerd/containerd/pkg/blockio"
|
||||
)
|
||||
|
||||
// blockIOClassFromAnnotations examines container and pod annotations of a
|
||||
@@ -35,7 +34,7 @@ func (c *criService) blockIOClassFromAnnotations(containerName string, container
|
||||
return "", err
|
||||
}
|
||||
|
||||
if cls != "" && !tasks.BlockIOEnabled() {
|
||||
if cls != "" && !blockio.IsEnabled() {
|
||||
if c.config.ContainerdConfig.IgnoreBlockIONotEnabledErrors {
|
||||
cls = ""
|
||||
logrus.Debugf("continuing create container %s, ignoring blockio not enabled (%v)", containerName, err)
|
||||
@@ -45,9 +44,3 @@ func (c *criService) blockIOClassFromAnnotations(containerName string, container
|
||||
}
|
||||
return cls, nil
|
||||
}
|
||||
|
||||
// blockIOToLinuxOci converts blockio class name into the LinuxBlockIO
|
||||
// structure in the OCI runtime spec.
|
||||
func blockIOToLinuxOci(className string) (*runtimespec.LinuxBlockIO, error) {
|
||||
return blockio.OciLinuxBlockIO(className)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user