@@ -482,43 +482,43 @@ func getHugePageSizeFromFilenames(fileNames []string) ([]string, error) {
482
482
func getStatPSIFromFile (path string ) * stats.PSIStats {
483
483
f , err := os .Open (path )
484
484
if err != nil {
485
- return & stats. PSIStats {}
485
+ return nil
486
486
}
487
487
defer f .Close ()
488
488
489
- var psistats stats.PSIStats
489
+ psistats := & stats.PSIStats {}
490
490
sc := bufio .NewScanner (f )
491
491
for sc .Scan () {
492
492
parts := strings .Fields (sc .Text ())
493
493
var pv * stats.PSIData
494
494
switch parts [0 ] {
495
495
case "some" :
496
- psistats .Some = pv
496
+ psistats .Some = & stats. PSIData {}
497
497
pv = psistats .Some
498
498
case "full" :
499
- psistats .Full = pv
499
+ psistats .Full = & stats. PSIData {}
500
500
pv = psistats .Full
501
501
}
502
502
if pv != nil {
503
- pv , err = parsePSIData (parts [1 :])
503
+ err = parsePSIData (parts [1 :], pv )
504
504
if err != nil {
505
505
logrus .Errorf ("unable to parse psi data: %v" , err )
506
- return & stats. PSIStats {}
506
+ return nil
507
507
}
508
508
}
509
509
}
510
+
510
511
if err := sc .Err (); err != nil {
511
- return & stats. PSIStats {}
512
+ return nil
512
513
}
513
- return & psistats
514
+ return psistats
514
515
}
515
516
516
- func parsePSIData (psi []string ) (* stats.PSIData , error ) {
517
- data := & stats.PSIData {}
517
+ func parsePSIData (psi []string , data * stats.PSIData ) error {
518
518
for _ , f := range psi {
519
519
kv := strings .SplitN (f , "=" , 2 )
520
520
if len (kv ) != 2 {
521
- return data , fmt .Errorf ("invalid psi data: %q" , f )
521
+ return fmt .Errorf ("invalid psi data: %q" , f )
522
522
}
523
523
var pv * float64
524
524
switch kv [0 ] {
@@ -531,19 +531,19 @@ func parsePSIData(psi []string) (*stats.PSIData, error) {
531
531
case "total" :
532
532
v , err := strconv .ParseUint (kv [1 ], 10 , 64 )
533
533
if err != nil {
534
- return data , fmt .Errorf ("invalid %s PSI value: %w" , kv [0 ], err )
534
+ return fmt .Errorf ("invalid %s PSI value: %w" , kv [0 ], err )
535
535
}
536
536
data .Total = v
537
537
}
538
538
if pv != nil {
539
539
v , err := strconv .ParseFloat (kv [1 ], 64 )
540
540
if err != nil {
541
- return data , fmt .Errorf ("invalid %s PSI value: %w" , kv [0 ], err )
541
+ return fmt .Errorf ("invalid %s PSI value: %w" , kv [0 ], err )
542
542
}
543
543
* pv = v
544
544
}
545
545
}
546
- return data , nil
546
+ return nil
547
547
}
548
548
549
549
func getSubreaper () (int , error ) {
0 commit comments