70 lines
2.7 KiB
Diff
70 lines
2.7 KiB
Diff
From 804ff7873331cf745bc49aab5f5d2857ec1597c6 Mon Sep 17 00:00:00 2001
|
|
From: hanchao <hanchao63@huawei.com>
|
|
Date: Mon, 5 Jun 2023 13:56:01 +0800
|
|
Subject: [PATCH 2/7] rubik: fix weight for iocost does not take effect
|
|
|
|
reason: Fix weight for iocost does not take effect.
|
|
The iocost weight is at pod level, not container
|
|
level.
|
|
---
|
|
pkg/services/iocost/iocost.go | 7 +------
|
|
pkg/services/iocost/iocost_origin.go | 8 ++++----
|
|
pkg/services/iocost/iocost_test.go | 2 +-
|
|
3 files changed, 6 insertions(+), 11 deletions(-)
|
|
|
|
diff --git a/pkg/services/iocost/iocost.go b/pkg/services/iocost/iocost.go
|
|
index e5298b1..34f508a 100644
|
|
--- a/pkg/services/iocost/iocost.go
|
|
+++ b/pkg/services/iocost/iocost.go
|
|
@@ -239,10 +239,5 @@ func (b *IOCost) configPodIOCostWeight(podInfo *typedef.PodInfo) error {
|
|
if podInfo.Annotations[constant.PriorityAnnotationKey] == "false" {
|
|
weight = onlineWeight
|
|
}
|
|
- for _, container := range podInfo.IDContainersMap {
|
|
- if err := ConfigContainerIOCostWeight(container.Path, weight); err != nil {
|
|
- return err
|
|
- }
|
|
- }
|
|
- return nil
|
|
+ return ConfigPodIOCostWeight(podInfo.Path, weight)
|
|
}
|
|
diff --git a/pkg/services/iocost/iocost_origin.go b/pkg/services/iocost/iocost_origin.go
|
|
index d37109f..5e9948f 100644
|
|
--- a/pkg/services/iocost/iocost_origin.go
|
|
+++ b/pkg/services/iocost/iocost_origin.go
|
|
@@ -63,14 +63,14 @@ func ConfigIOCostModel(devno string, p interface{}) error {
|
|
return cgroup.WriteCgroupFile(paramStr, blkcgRootDir, iocostModelFile)
|
|
}
|
|
|
|
-// ConfigContainerIOCostWeight for config iocost weight
|
|
+// ConfigPodIOCostWeight for config iocost weight
|
|
// cgroup v1 iocost cannot be inherited. Therefore, only the container level can be configured.
|
|
-func ConfigContainerIOCostWeight(containerRelativePath string, weight uint64) error {
|
|
+func ConfigPodIOCostWeight(relativePath string, weight uint64) error {
|
|
if err := cgroup.WriteCgroupFile(strconv.FormatUint(weight, scale), blkcgRootDir,
|
|
- containerRelativePath, iocostWeightFile); err != nil {
|
|
+ relativePath, iocostWeightFile); err != nil {
|
|
return err
|
|
}
|
|
- if err := bindMemcgBlkcg(containerRelativePath); err != nil {
|
|
+ if err := bindMemcgBlkcg(relativePath); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
diff --git a/pkg/services/iocost/iocost_test.go b/pkg/services/iocost/iocost_test.go
|
|
index 95b6d97..3bdadad 100644
|
|
--- a/pkg/services/iocost/iocost_test.go
|
|
+++ b/pkg/services/iocost/iocost_test.go
|
|
@@ -334,7 +334,7 @@ func TestSetPodWeight(t *testing.T) {
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
- err := ConfigContainerIOCostWeight(tt.cgroupPath, uint64(tt.weight))
|
|
+ err := ConfigPodIOCostWeight(tt.cgroupPath, uint64(tt.weight))
|
|
if tt.wantErr {
|
|
assert.Contains(t, err.Error(), tt.errMsg)
|
|
return
|
|
--
|
|
2.32.1 (Apple Git-133)
|
|
|