@@ -419,18 +419,6 @@ func writeFile(dir, file, data string) error {
419419 return nil
420420}
421421
422- func getIntelRdtData (c * configs.Config , pid int ) (* intelRdtData , error ) {
423- rootPath , err := getIntelRdtRoot ()
424- if err != nil {
425- return nil , err
426- }
427- return & intelRdtData {
428- root : rootPath ,
429- config : c ,
430- pid : pid ,
431- }, nil
432- }
433-
434422// Get the read-only L3 cache information
435423func getL3CacheInfo () (* L3CacheInfo , error ) {
436424 l3CacheInfo := & L3CacheInfo {}
@@ -546,14 +534,13 @@ func IsMBAScEnabled() bool {
546534}
547535
548536// Get the 'container_id' path in Intel RDT "resource control" filesystem
549- func GetIntelRdtPath ( id string ) (string , error ) {
537+ func ( m * intelRdtManager ) getIntelRdtPath ( ) (string , error ) {
550538 rootPath , err := getIntelRdtRoot ()
551539 if err != nil {
552540 return "" , err
553541 }
554542
555- path := filepath .Join (rootPath , id )
556- return path , nil
543+ return filepath .Join (rootPath , m .id ), nil
557544}
558545
559546// Applies Intel RDT configuration to the process with the specified pid
@@ -562,16 +549,21 @@ func (m *intelRdtManager) Apply(pid int) (err error) {
562549 if m .config .IntelRdt == nil {
563550 return nil
564551 }
565- d , err := getIntelRdtData (m .config , pid )
566- if err != nil && ! IsNotFound (err ) {
552+
553+ path , err := m .getIntelRdtPath ()
554+ if err != nil {
567555 return err
568556 }
569557
570558 m .mu .Lock ()
571559 defer m .mu .Unlock ()
572- path , err := d .join (m .id )
573- if err != nil {
574- return err
560+
561+ if err := os .MkdirAll (path , 0o755 ); err != nil {
562+ return NewLastCmdError (err )
563+ }
564+
565+ if err := WriteIntelRdtTasks (path , pid ); err != nil {
566+ return NewLastCmdError (err )
575567 }
576568
577569 m .path = path
@@ -593,7 +585,7 @@ func (m *intelRdtManager) Destroy() error {
593585// restore the object later
594586func (m * intelRdtManager ) GetPath () string {
595587 if m .path == "" {
596- m .path , _ = GetIntelRdtPath ( m . id )
588+ m .path , _ = m . getIntelRdtPath ( )
597589 }
598590 return m .path
599591}
@@ -761,18 +753,6 @@ func (m *intelRdtManager) Set(container *configs.Config) error {
761753 return nil
762754}
763755
764- func (raw * intelRdtData ) join (id string ) (string , error ) {
765- path := filepath .Join (raw .root , id )
766- if err := os .MkdirAll (path , 0o755 ); err != nil {
767- return "" , NewLastCmdError (err )
768- }
769-
770- if err := WriteIntelRdtTasks (path , raw .pid ); err != nil {
771- return "" , NewLastCmdError (err )
772- }
773- return path , nil
774- }
775-
776756type NotFoundError struct {
777757 ResourceControl string
778758}
0 commit comments