| 
1 | 1 | package intelrdt  | 
2 | 2 | 
 
  | 
3 | 3 | import (  | 
4 |  | -	"errors"  | 
5 |  | -	"io"  | 
6 | 4 | 	"os"  | 
7 | 5 | 	"path/filepath"  | 
8 | 6 | 	"strings"  | 
@@ -127,141 +125,3 @@ func TestApply(t *testing.T) {  | 
127 | 125 | 		t.Fatalf("unexpected tasks file, expected '1235', got %q", pids)  | 
128 | 126 | 	}  | 
129 | 127 | }  | 
130 |  | - | 
131 |  | -const (  | 
132 |  | -	mountinfoValid = `18 40 0:18 / /sys rw,nosuid,nodev,noexec,relatime shared:6 - sysfs sysfs rw  | 
133 |  | -19 40 0:3 / /proc rw,nosuid,nodev,noexec,relatime shared:5 - proc proc rw  | 
134 |  | -20 40 0:5 / /dev rw,nosuid shared:2 - devtmpfs devtmpfs rw,size=131927256k,nr_inodes=32981814,mode=755  | 
135 |  | -21 18 0:17 / /sys/kernel/security rw,nosuid,nodev,noexec,relatime shared:7 - securityfs securityfs rw  | 
136 |  | -22 20 0:19 / /dev/shm rw,nosuid,nodev shared:3 - tmpfs tmpfs rw  | 
137 |  | -23 20 0:12 / /dev/pts rw,nosuid,noexec,relatime shared:4 - devpts devpts rw,gid=5,mode=620,ptmxmode=000  | 
138 |  | -24 40 0:20 / /run rw,nosuid,nodev shared:22 - tmpfs tmpfs rw,mode=755  | 
139 |  | -25 18 0:21 / /sys/fs/cgroup ro,nosuid,nodev,noexec shared:8 - tmpfs tmpfs ro,mode=755  | 
140 |  | -26 25 0:22 / /sys/fs/cgroup/systemd rw,nosuid,nodev,noexec,relatime shared:9 - cgroup cgroup rw,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd  | 
141 |  | -27 18 0:23 / /sys/fs/pstore rw,nosuid,nodev,noexec,relatime shared:20 - pstore pstore rw  | 
142 |  | -28 25 0:24 / /sys/fs/cgroup/perf_event rw,nosuid,nodev,noexec,relatime shared:10 - cgroup cgroup rw,perf_event  | 
143 |  | -29 25 0:25 / /sys/fs/cgroup/cpu,cpuacct rw,nosuid,nodev,noexec,relatime shared:11 - cgroup cgroup rw,cpuacct,cpu  | 
144 |  | -30 25 0:26 / /sys/fs/cgroup/memory rw,nosuid,nodev,noexec,relatime shared:12 - cgroup cgroup rw,memory  | 
145 |  | -31 25 0:27 / /sys/fs/cgroup/devices rw,nosuid,nodev,noexec,relatime shared:13 - cgroup cgroup rw,devices  | 
146 |  | -32 25 0:28 / /sys/fs/cgroup/hugetlb rw,nosuid,nodev,noexec,relatime shared:14 - cgroup cgroup rw,hugetlb  | 
147 |  | -33 25 0:29 / /sys/fs/cgroup/blkio rw,nosuid,nodev,noexec,relatime shared:15 - cgroup cgroup rw,blkio  | 
148 |  | -34 25 0:30 / /sys/fs/cgroup/pids rw,nosuid,nodev,noexec,relatime shared:16 - cgroup cgroup rw,pids  | 
149 |  | -35 25 0:31 / /sys/fs/cgroup/cpuset rw,nosuid,nodev,noexec,relatime shared:17 - cgroup cgroup rw,cpuset  | 
150 |  | -36 25 0:32 / /sys/fs/cgroup/freezer rw,nosuid,nodev,noexec,relatime shared:18 - cgroup cgroup rw,freezer  | 
151 |  | -37 25 0:33 / /sys/fs/cgroup/net_cls,net_prio rw,nosuid,nodev,noexec,relatime shared:19 - cgroup cgroup rw,net_prio,net_cls  | 
152 |  | -38 18 0:34 / /sys/kernel/config rw,relatime shared:21 - configfs configfs rw  | 
153 |  | -40 0 253:0 / / rw,relatime shared:1 - ext4 /dev/mapper/vvrg-vvrg rw,data=ordered  | 
154 |  | -16 18 0:6 / /sys/kernel/debug rw,relatime shared:23 - debugfs debugfs rw  | 
155 |  | -41 18 0:16 / /sys/fs/resctrl rw,relatime shared:24 - resctrl resctrl rw  | 
156 |  | -42 20 0:36 / /dev/hugepages rw,relatime shared:25 - hugetlbfs hugetlbfs rw  | 
157 |  | -43 19 0:37 / /proc/sys/fs/binfmt_misc rw,relatime shared:26 - autofs systemd-1 rw,fd=32,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=35492  | 
158 |  | -44 20 0:15 / /dev/mqueue rw,relatime shared:27 - mqueue mqueue rw  | 
159 |  | -45 40 8:1 / /boot rw,relatime shared:28 - ext4 /dev/sda1 rw,stripe=4,data=ordered  | 
160 |  | -46 40 253:1 / /home rw,relatime shared:29 - ext4 /dev/mapper/vvhg-vvhg rw,data=ordered  | 
161 |  | -47 40 0:38 / /var/lib/nfs/rpc_pipefs rw,relatime shared:30 - rpc_pipefs sunrpc rw  | 
162 |  | -125 24 0:20 /mesos/containers /run/mesos/containers rw,nosuid shared:22 - tmpfs tmpfs rw,mode=755  | 
163 |  | -123 40 253:0 /var/lib/docker/containers /var/lib/docker/containers rw,relatime - ext4 /dev/mapper/vvrg-vvrg rw,data=ordered  | 
164 |  | -129 40 253:0 /var/lib/docker/overlay2 /var/lib/docker/overlay2 rw,relatime - ext4 /dev/mapper/vvrg-vvrg rw,data=ordered  | 
165 |  | -119 24 0:39 / /run/user/1009 rw,nosuid,nodev,relatime shared:100 - tmpfs tmpfs rw,size=26387788k,mode=700,uid=1009,gid=1009`  | 
166 |  | - | 
167 |  | -	mountinfoMbaSc = `18 40 0:18 / /sys rw,nosuid,nodev,noexec,relatime shared:6 - sysfs sysfs rw  | 
168 |  | -19 40 0:3 / /proc rw,nosuid,nodev,noexec,relatime shared:5 - proc proc rw  | 
169 |  | -20 40 0:5 / /dev rw,nosuid shared:2 - devtmpfs devtmpfs rw,size=131927256k,nr_inodes=32981814,mode=755  | 
170 |  | -21 18 0:17 / /sys/kernel/security rw,nosuid,nodev,noexec,relatime shared:7 - securityfs securityfs rw  | 
171 |  | -22 20 0:19 / /dev/shm rw,nosuid,nodev shared:3 - tmpfs tmpfs rw  | 
172 |  | -23 20 0:12 / /dev/pts rw,nosuid,noexec,relatime shared:4 - devpts devpts rw,gid=5,mode=620,ptmxmode=000  | 
173 |  | -24 40 0:20 / /run rw,nosuid,nodev shared:22 - tmpfs tmpfs rw,mode=755  | 
174 |  | -25 18 0:21 / /sys/fs/cgroup ro,nosuid,nodev,noexec shared:8 - tmpfs tmpfs ro,mode=755  | 
175 |  | -26 25 0:22 / /sys/fs/cgroup/systemd rw,nosuid,nodev,noexec,relatime shared:9 - cgroup cgroup rw,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd  | 
176 |  | -27 18 0:23 / /sys/fs/pstore rw,nosuid,nodev,noexec,relatime shared:20 - pstore pstore rw  | 
177 |  | -28 25 0:24 / /sys/fs/cgroup/perf_event rw,nosuid,nodev,noexec,relatime shared:10 - cgroup cgroup rw,perf_event  | 
178 |  | -29 25 0:25 / /sys/fs/cgroup/cpu,cpuacct rw,nosuid,nodev,noexec,relatime shared:11 - cgroup cgroup rw,cpuacct,cpu  | 
179 |  | -30 25 0:26 / /sys/fs/cgroup/memory rw,nosuid,nodev,noexec,relatime shared:12 - cgroup cgroup rw,memory  | 
180 |  | -31 25 0:27 / /sys/fs/cgroup/devices rw,nosuid,nodev,noexec,relatime shared:13 - cgroup cgroup rw,devices  | 
181 |  | -32 25 0:28 / /sys/fs/cgroup/hugetlb rw,nosuid,nodev,noexec,relatime shared:14 - cgroup cgroup rw,hugetlb  | 
182 |  | -33 25 0:29 / /sys/fs/cgroup/blkio rw,nosuid,nodev,noexec,relatime shared:15 - cgroup cgroup rw,blkio  | 
183 |  | -34 25 0:30 / /sys/fs/cgroup/pids rw,nosuid,nodev,noexec,relatime shared:16 - cgroup cgroup rw,pids  | 
184 |  | -35 25 0:31 / /sys/fs/cgroup/cpuset rw,nosuid,nodev,noexec,relatime shared:17 - cgroup cgroup rw,cpuset  | 
185 |  | -36 25 0:32 / /sys/fs/cgroup/freezer rw,nosuid,nodev,noexec,relatime shared:18 - cgroup cgroup rw,freezer  | 
186 |  | -37 25 0:33 / /sys/fs/cgroup/net_cls,net_prio rw,nosuid,nodev,noexec,relatime shared:19 - cgroup cgroup rw,net_prio,net_cls  | 
187 |  | -38 18 0:34 / /sys/kernel/config rw,relatime shared:21 - configfs configfs rw  | 
188 |  | -40 0 253:0 / / rw,relatime shared:1 - ext4 /dev/mapper/vvrg-vvrg rw,data=ordered  | 
189 |  | -16 18 0:6 / /sys/kernel/debug rw,relatime shared:23 - debugfs debugfs rw  | 
190 |  | -41 18 0:16 / /sys/fs/resctrl rw,relatime shared:24 - resctrl resctrl rw,mba_MBps  | 
191 |  | -42 20 0:36 / /dev/hugepages rw,relatime shared:25 - hugetlbfs hugetlbfs rw  | 
192 |  | -43 19 0:37 / /proc/sys/fs/binfmt_misc rw,relatime shared:26 - autofs systemd-1 rw,fd=32,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=35492  | 
193 |  | -44 20 0:15 / /dev/mqueue rw,relatime shared:27 - mqueue mqueue rw  | 
194 |  | -45 40 8:1 / /boot rw,relatime shared:28 - ext4 /dev/sda1 rw,stripe=4,data=ordered  | 
195 |  | -46 40 253:1 / /home rw,relatime shared:29 - ext4 /dev/mapper/vvhg-vvhg rw,data=ordered  | 
196 |  | -47 40 0:38 / /var/lib/nfs/rpc_pipefs rw,relatime shared:30 - rpc_pipefs sunrpc rw  | 
197 |  | -125 24 0:20 /mesos/containers /run/mesos/containers rw,nosuid shared:22 - tmpfs tmpfs rw,mode=755  | 
198 |  | -123 40 253:0 /var/lib/docker/containers /var/lib/docker/containers rw,relatime - ext4 /dev/mapper/vvrg-vvrg rw,data=ordered  | 
199 |  | -129 40 253:0 /var/lib/docker/overlay2 /var/lib/docker/overlay2 rw,relatime - ext4 /dev/mapper/vvrg-vvrg rw,data=ordered  | 
200 |  | -119 24 0:39 / /run/user/1009 rw,nosuid,nodev,relatime shared:100 - tmpfs tmpfs rw,size=26387788k,mode=700,uid=1009,gid=1009`  | 
201 |  | -)  | 
202 |  | - | 
203 |  | -func TestFindIntelRdtMountpointDir(t *testing.T) {  | 
204 |  | -	testCases := []struct {  | 
205 |  | -		name            string  | 
206 |  | -		input           io.Reader  | 
207 |  | -		isNotFoundError bool  | 
208 |  | -		isError         bool  | 
209 |  | -		mbaScEnabled    bool  | 
210 |  | -		mountpoint      string  | 
211 |  | -	}{  | 
212 |  | -		{  | 
213 |  | -			name:       "Valid mountinfo with MBA Software Controller disabled",  | 
214 |  | -			input:      strings.NewReader(mountinfoValid),  | 
215 |  | -			mountpoint: "/sys/fs/resctrl",  | 
216 |  | -		},  | 
217 |  | -		{  | 
218 |  | -			name:         "Valid mountinfo with MBA Software Controller enabled",  | 
219 |  | -			input:        strings.NewReader(mountinfoMbaSc),  | 
220 |  | -			mbaScEnabled: true,  | 
221 |  | -			mountpoint:   "/sys/fs/resctrl",  | 
222 |  | -		},  | 
223 |  | -		{  | 
224 |  | -			name:            "Empty mountinfo",  | 
225 |  | -			input:           strings.NewReader(""),  | 
226 |  | -			isNotFoundError: true,  | 
227 |  | -		},  | 
228 |  | -		{  | 
229 |  | -			name:    "Broken mountinfo",  | 
230 |  | -			input:   strings.NewReader("baa"),  | 
231 |  | -			isError: true,  | 
232 |  | -		},  | 
233 |  | -	}  | 
234 |  | - | 
235 |  | -	for _, tc := range testCases {  | 
236 |  | -		tc := tc  | 
237 |  | -		t.Run(tc.name, func(t *testing.T) {  | 
238 |  | -			mbaScEnabled = false  | 
239 |  | -			mp, err := findIntelRdtMountpointDir(tc.input)  | 
240 |  | -			if tc.isNotFoundError {  | 
241 |  | -				if !errors.Is(err, errNotFound) {  | 
242 |  | -					t.Errorf("expected errNotFound error, got %+v", err)  | 
243 |  | -				}  | 
244 |  | -				return  | 
245 |  | -			}  | 
246 |  | -			if tc.isError {  | 
247 |  | -				if err == nil {  | 
248 |  | -					t.Error("expected error, got nil")  | 
249 |  | -				}  | 
250 |  | -				return  | 
251 |  | -			}  | 
252 |  | -			if err != nil {  | 
253 |  | -				t.Errorf("expected nil, got %+v", err)  | 
254 |  | -				return  | 
255 |  | -			}  | 
256 |  | -			// no errors, check the results  | 
257 |  | -			if tc.mbaScEnabled != mbaScEnabled {  | 
258 |  | -				t.Errorf("expected mbaScEnabled=%v, got %v",  | 
259 |  | -					tc.mbaScEnabled, mbaScEnabled)  | 
260 |  | -			}  | 
261 |  | -			if tc.mountpoint != mp {  | 
262 |  | -				t.Errorf("expected mountpoint=%q, got %q",  | 
263 |  | -					tc.mountpoint, mp)  | 
264 |  | -			}  | 
265 |  | -		})  | 
266 |  | -	}  | 
267 |  | -}  | 
0 commit comments