-
Notifications
You must be signed in to change notification settings - Fork 55
/
Copy pathChangelog
7367 lines (5337 loc) · 297 KB
/
Changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
powerpc-utils-1.3.12
=====================================================================
commit 15cdce114295d5e7d8cdcab06b38095c474e521b
Author: Michal Suchanek <[email protected]>
Date: Mon Apr 8 16:05:39 2024 +0200
ppc64_cpu: Clean up sysfs smt/control error handling
When the kernel does not support the sysfs interface do not report an
error, fall back to the old method silently.
Suggested-by: Nathan Lynch<[email protected]>
Signed-off-by: Michal Suchanek <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit b0816b404e021e620843c9f0b6107a53f6fd64f6
Author: Laurent Dufour <[email protected]>
Date: Thu Aug 10 11:29:55 2023 +0200
ppc64_cpu: Support partial SMT level through SYS FS smt/control files
The next kernel release will support partial SMT level [1] though the SYS
FS file "devices/system/cpu/smt/control". This allows the SMT level to be
recorded in the kernel. With the current SMT level stored in the kernel,
when a new CPU is added, only the necessary threads are brought online.
The legacy way to active threads through the SYS FS files
'devices/system/cpu/cpu<n>/online', is still used in the case the new SYS
FS API is not available. This allows compatibility with the previous kernel
versions.
[1] https://lore.kernel.org/linuxppc-dev/[email protected]/
Signed-off-by: Laurent Dufour <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit bb766caa49f4aef036208023290f16ce7b1cf05d
Author: Haren Myneni <[email protected]>
Date: Tue Aug 13 14:40:26 2024 -0700
drmgr/SLOT: Add kernel interface support for device tree update
Use the following kernel interfaces for SLOT device type to update
the device tree if this feature is enabled in the kernel.
dt add index <DRC index> --> for IO add
dt remove index <DRC index> --> for IO remove
Signed-off-by: Haren Myneni <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit a2d1b70cbc90ba41f16281c48e973309469f5d02
Author: Haren Myneni <[email protected]>
Date: Tue Aug 13 14:40:25 2024 -0700
drmgr/pci: Add kernel interface support for device tree update
Use the following kernel interfaces for PCI device type to update
the device tree if this feature is enabled in the kernel.
dt add index <DRC index> --> for IO add
dt remove index <DRC index> --> for IO remove
Signed-off-by: Haren Myneni <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 9aaa1a625da9de1ca758c4eb8442589b46927acb
Author: Haren Myneni <[email protected]>
Date: Tue Aug 13 14:40:24 2024 -0700
drmgr/phb: Add kernel interface support for device tree update
Use the following kernel interfaces for PHB device type to update
the device tree if this feature is enabled in the kernel.
dt add index <DRC index> --> for IO add
dt remove index <DRC index> --> for IO remove
Signed-off-by: Haren Myneni <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 9ea191d15f4b279923a4c83a94b83436c79e3482
Author: Haren Myneni <[email protected]>
Date: Tue Aug 13 14:40:23 2024 -0700
drmgr/pci: Enable in-kernel functionality to update device tree
drmgr updates the device tree by writing to /proc/ppc64/ofdt. Also
invokes configure_connector RTAS call to retrieve new device nodes
for IO ADD. But this functionality need /dev/mem access which is
restricted under system lockdown.
The kernel updates provided a sysfs file (/sys/kernel/dlpar) that
will allow drmgr command invoke the following interfaces to update
the device tree.
dt add index <DRC index> ---> To add new device nodes to the device
tree which is used for IO ADD.
dt remove index <DRC index> ---> To remove device nodes for IO
REMOVE
This patch checks the kernel interface for the availability of
device tree update feature and adds do_dt_kernel_dlpar() to invoke
the above kernel interfaces.
Signed-off-by: Haren Myneni <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit dcaf1a2dea57738f197719452ee0c332998bf167
Author: Tyrel Datwyler <[email protected]>
Date: Wed Sep 18 16:11:01 2024 -0700
CI: update artifact actions to v4
GitHub has deprecated v1 and v2 of the artifact actions. As such update
the CI to the latest artifact version.
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 06c9922a774a6c096acbc69664646386c9e185b5
Author: Haren Myneni <[email protected]>
Date: Fri Aug 2 18:39:06 2024 -0700
drmgr/pci: Do not add partner device if exists in the device tree
For PCI hotplug interface, the partner device will be added or
removed if configured with the primary device add / remove.
Whereas for PHB interface, drmgr notifies the user to add / remove
partner device if configured with the primary device. So there is
a possibility of partner PCI node exists in the device tree when
PCI interface for ADD is executed. The current ADD code in
drslot_chrp_pci.c does not check whether the partner device node
is present and may add / enable partner device again which may give
EEH errors.
See the following sequence to get this scenario:
drmgr -r -c phb -s "PHB 1336" --> Remove primary PHB node
drmgr -r -c pci -s "U50EE.001.WZS000E-P3-C24-R2" --> Remove
partner PCI node
drmgr -a -c phb -s "PHB 1336" --> Add primary PHB node
drmgr -a -c pci -s "U50EE.001.WZS000E-P3-C24-R2" --> Add partner
PCI node and can try to add primary PCI node again. In this case
"U50EE.001.WZS000E-P3-C24-R1".
This patch fixes the issue by checking the device node in the
device tree and add the device if does not present and remove
only if the corresponding device node exists.
Fixes: 4e6670df0da2b92 ("drmgr/pci: Add multipath partner device support for hotplug add")
Signed-off-by: Haren Myneni <[email protected]>
[tyreld: fixed up white space and replace/remove phrasing]
Signed-off-by: Tyrel Datwyler <[email protected]>
commit a56028561ad9c01b5d3a767e50455c561e09191c
Author: Tyrel Datwyler <[email protected]>
Date: Fri Jul 26 16:17:47 2024 -0700
ofpathname: skip devices with no devspec when coorelating FC OF paths
When using ofpathname to find the logical device associated to a Fibre
Channel or Virtual Fibre Channel OF path an ERR_NO_SYSFS_DEVINFO error
can be returned if a device with no devspec attribute is in the list of
devices to cross reference.
If a device with no devspec is found simply skip it an continue the
for-loop device search.
Signed-off-by: Tyrel Datwyler <[email protected]>
commit a67eb56089ede9abc19ccc287bd4117967e76164
Author: Shrikanth Hegde <[email protected]>
Date: Mon Apr 15 23:21:36 2024 +0530
lparstat: Rename getter for processor type
Processor type in lparstat shows whether its in Dedicated Mode or in Shared
Mode. Getter function for the same has been defined as get_smt_state. That's
the wrong name for it. Rename it to get_processor_type().
No Function change.
Signed-off-by: Shrikanth Hegde <[email protected]>
[tyreld: reword commit message]
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 9572f8c2022fed9783f0f606cbe778ffe0d93fef
Author: Shrikanth Hegde <[email protected]>
Date: Tue May 14 20:46:44 2024 +0530
lparstat: Use CLOCK_BOOTTIME for get_time interface and Deprecate get_sys_upttime
"time" is used in lparstat.c to find the time elapsed either since boot
or between two intervals. But it is using gettimeofday which returns the
time elapsed since Epoch. This works for intervals calculations but it
doesn't work for since boot reports.
Instead use the CLOCK_BOOTTIME interface to get the elapsed time. This
fixes physc, utilization based on purr being wrong since boot.
Remove "uptime" interface since there are no users of it. One can get
the system uptime by calling "time" itself.
=============================== ::Test:: ==========================
reboot
stress-ng --cpu=$(nproc) -t 600
sleep 600
Results::
==================== Shared LPAR ==================================
System Configuration
type=Shared mode=Uncapped smt=8 lcpu=12 mem=15573440 kB cpus=37 ent=12.00
lparstat -E <-- Observe utilization values
====== 6.9-rc1 and lparstat 1.3.10 =============
---Actual--- -Normalized-
%busy %idle Frequency %busy %idle
------ ------ ------------- ------ ------
0.00 0.00 3.87GHz[106%] 0.00 0.00
==== With this patch and patch 2/3 =============
---Actual--- -Normalized-
%busy %idle Frequency %busy %idle
------ ------ ------------- ------ ------
38.72 0.11 3.87GHz[106%] 41.04 0.12
lparstat <-- Observe physc values
====== 6.9-rc1 and lparstat 1.3.10 ===================================
%user %sys %wait %idle physc %entc lbusy app vcsw phint
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
47.48 0.01 0.00 52.51 0.00 0.00 47.49 69099.72 541547 21
=== With this patch and this patch ================================ ===
%user %sys %wait %idle physc %entc lbusy app vcsw phint
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
47.48 0.01 0.00 52.51 5.73 47.75 47.49 31.21 541753 21
==================== Dedicated LPAR ==================================
System Configuration
type=Dedicated mode=Capped smt=8 lcpu=12 mem=15573248 kB cpus=0 ent=12.00
::lparstat -E:: <-- Observe utilization values.
======= 6.9-rc1 and lparstat 1.3.10 =============
---Actual--- -Normalized-
%busy %idle Frequency %busy %idle
------ ------ ------------- ------ ------
0.00 0.00 3.87GHz[106%] 0.00 0.00
=== With this patch and powerpc-utils patch to do the above equation ===
---Actual--- -Normalized-
%busy %idle Frequency %busy %idle
------ ------ ------------- ------ ------
48.87 51.51 3.87GHz[106%] 51.81 54.60
::lparstat:: <-- Observe physc values.
======= 6.9-rc1 and lparstat 1.3.10 =============
%user %sys %wait %idle physc %entc lbusy app vcsw phint
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
48.38 0.01 0.00 51.61 0.03 0.25 48.39 0.00 344661 8
=== With this patch and powerpc-utils patch to do the above equation ===
%user %sys %wait %idle physc %entc lbusy app vcsw phint
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
48.38 0.01 0.00 51.61 12.05 100.42 48.39 0.00 344877 8
=============================================================================
Interval based lparstat values are same. With this patch the physc and
busy purr/idle purr values show correctly for since boot reports.
Note: this patch doesn't fix the idle purr being incorrect. That is
currently being investigated.
Signed-off-by: Shrikanth Hegde <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 81c51b59aacaa66d90d571ee19a2deeda1d45271
Author: Shrikanth Hegde <[email protected]>
Date: Tue May 14 20:46:43 2024 +0530
lparstat: app: Use pic value at boot for accurate boot time reporting
When there are no options specified for lparstat, it is expected to
give reports since LPAR(Logical Partition) boot. APP(Available Physical
Processors) is an indicator for available cores in an Shared Processor
LPAR(SPLPAR). APP is derived using pool_idle_time which is obtained
using H_PIC call.
The interval based reports show correct APP value while since boot
report shows very high APP values. This happens because in that case APP
is obtained by dividing pool idle time by LPAR uptime. Since pool idle
time is reported by the PowerVM hypervisor since its boot, it need not
align with LPAR boot.
To fix that use the boot pool idle time added newly in the lparcfg as
below.
APP = (pool idle time - boot pool idle time) / (uptime * timebase)
*This depends on "powerpc/pseries: Add pool idle time at LPAR boot" be
merged into kernel*
Results: (Observe APP values)
========================================================================
lparstat
System Configuration
type=Shared mode=Uncapped smt=8 lcpu=12 mem=15573440 kB cpus=37 ent=12.00
reboot
stress-ng --cpu=$(nproc) -t 600
sleep 600
So in this case app is expected to close to 37-6=31.
====== 6.9-rc1 and lparstat 1.3.10 =============
%user %sys %wait %idle physc %entc lbusy app vcsw phint
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
47.48 0.01 0.00 52.51 0.00 0.00 47.49 69099.72 541547 21
=== With this patch and this patch to do the above equation ===
%user %sys %wait %idle physc %entc lbusy app vcsw phint
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
47.48 0.01 0.00 52.51 5.73 47.75 47.49 31.21 541753 21
Signed-off-by: Shrikanth Hegde <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 2af8c0b9a285e8a6104560d0f482819e56060443
Author: Saket Kumar Bhaskar <[email protected]>
Date: Thu Jul 18 00:39:24 2024 +0530
lparstat: Fix Idle and busy PURR/SPURR
lparstat -E gives %busy and %idle for actual(PURR based) and normalized
(SPURR based).Idle and busy PURR/SPURR values are not adding upto 100%
in case of dedicated-donate and shared partitions, with the present
formula. Because of this, users might get a false impression of resource
utilisation. This is expected because a core can be in either
idle or busy state out of total of 100(core's shared resource can
either be consumed or be left idle). When lpar is in dedicated-donate
or shared,the purr values are not being counted when the CPU is ceded.
The idle_purr is calculated by taking snapshots of purr values at
every idle entry and idle exit. So, when a CPU is ceded, the calculation
for idle_purr will be wrong as purr is not being counted.
Before Change:
|-----------------------------------------------------------------|
| Dedicated-donate (8 cores) : |
|----------------------|---------------------|--------------------|
| | Actual | Normalized |
| Stress-ng threads |---------------------|--------------------|
| | %busy | %idle | %busy | %idle |
|----------------------|----------|----------|---------|----------|
| 0 threads | 0.02 | 0.05 | 0.02 | 0.05 |
|----------------------|----------|----------|---------|----------|
| 8 threads | 32.64 | 17.37 | 35.25 | 18.77 |
|----------------------|----------|----------|---------|----------|
| 16 threads | 58.61 | 16.42 | 63.29 | 17.74 |
|----------------------|----------|----------|---------|----------|
| 24 threads | 78.14 | 21.86 | 84.39 | 23.61 |
|----------------------|----------|----------|---------|----------|
| 32 threads | 83.60 | 16.40 | 90.30 | 17.71 |
|----------------------|----------|----------|---------|----------|
| 40 threads | 91.90 | 6.94 | 98.31 | 7.46 |
|----------------------|----------|----------|---------|----------|
| 48 threads | 96.08 | 3.92 | 102.79 | 4.21 |
|----------------------|----------|----------|---------|----------|
| 56 threads | 98.42 | 1.57 | 105.31 | 1.69 |
|----------------------|----------|----------|---------|----------|
| 64 threads | 100.00 | 0.00 | 106.00 | 0.00 |
|----------------------|----------|----------|---------|----------|
|-----------------------------------------------------------------|
| Shared Capped (8 VP / 4 EC) : |
|----------------------|---------------------|--------------------|
| | Actual | Normalized |
| Stress-ng threads |---------------------|--------------------|
| | %busy | %idle | %busy | %idle |
|----------------------|----------|----------|---------|----------|
| 0 threads | 0.04 | 0.18 | 0.03 | 0.19 |
|----------------------|----------|----------|---------|----------|
| 8 threads | 35.90 | 14.09 | 38.77 | 15.21 |
|----------------------|----------|----------|---------|----------|
| 16 threads | 35.25 | 14.84 | 38.08 | 16.02 |
|----------------------|----------|----------|---------|----------|
| 24 threads | 40.13 | 9.73 | 42.93 | 10.43 |
|----------------------|----------|----------|---------|----------|
| 32 threads | 44.13 | 5.73 | 47.22 | 6.14 |
|----------------------|----------|----------|---------|----------|
| 40 threads | 46.47 | 3.42 | 50.18 | 3.69 |
|----------------------|----------|----------|---------|----------|
| 48 threads | 48.03 | 1.83 | 51.39 | 1.96 |
|----------------------|----------|----------|---------|----------|
| 56 threads | 49.04 | 0.86 | 52.47 | 0.93 |
|----------------------|----------|----------|---------|----------|
| 64 threads | 49.87 | 0.00 | 53.36 | 0.00 |
|----------------------|----------|----------|---------|----------|
This commit, rather than considering delta_idle_purr for calculation of
idle ticks, takes (delta_tb - delta_purr + delta_idle_purr) as total
ticks for which the CPUs were idle. Here, since delta_idle_purr will
also contain some idle ticks, thats why it is added to the formula.
Since, the output was correct for dedicated capped mode, changes has
been made only for shared and dedicated-donate mode.
Further, no changes has been made for calculation of %busy.
Similar changes has been done for SPURR.
After Change:
|-----------------------------------------------------------------|
| Dedicated-donate (8 cores) : |
|----------------------|---------------------|--------------------|
| | Actual | Normalized |
| Stress-ng threads |---------------------|--------------------|
| | %busy | %idle | %busy | %idle |
|----------------------|----------|----------|---------|----------|
| 0 threads | 0.02 | 99.98 | 0.02 | 100.04 |
|----------------------|----------|----------|---------|----------|
| 8 threads | 35.97 | 64.03 | 38.84 | 61.51 |
|----------------------|----------|----------|---------|----------|
| 16 threads | 58.60 | 41.40 | 63.28 | 37.08 |
|----------------------|----------|----------|---------|----------|
| 24 threads | 78.14 | 21.86 | 84.39 | 23.61 |
|----------------------|----------|----------|---------|----------|
| 32 threads | 83.60 | 16.41 | 90.29 | 17.71 |
|----------------------|----------|----------|---------|----------|
| 40 threads | 92.96 | 7.04 | 100.39 | 7.61 |
|----------------------|----------|----------|---------|----------|
| 48 threads | 96.08 | 3.92 | 103.77 | 4.24 |
|----------------------|----------|----------|---------|----------|
| 56 threads | 98.42 | 1.58 | 105.31 | 1.68 |
|----------------------|----------|----------|---------|----------|
| 64 threads | 100.00 | 0.00 | 107.00 | 0.00 |
|----------------------|----------|----------|---------|----------|
|-----------------------------------------------------------------|
| Shared Capped (8 VP / 4 EC) : |
|----------------------|---------------------|--------------------|
| | Actual | Normalized |
| Stress-ng threads |---------------------|--------------------|
| | %busy | %idle | %busy | %idle |
|----------------------|----------|----------|---------|----------|
| 0 threads | 0.03 | 99.97 | 0.19 | 99.44 |
|----------------------|----------|----------|---------|----------|
| 8 threads | 35.91 | 64.09 | 38.78 | 61.58 |
|----------------------|----------|----------|---------|----------|
| 16 threads | 36.83 | 63.17 | 39.78 | 60.55 |
|----------------------|----------|----------|---------|----------|
| 24 threads | 40.16 | 59.84 | 43.37 | 56.95 |
|----------------------|----------|----------|---------|----------|
| 32 threads | 44.47 | 55.53 | 48.02 | 52.38 |
|----------------------|----------|----------|---------|----------|
| 40 threads | 46.55 | 53.45 | 50.27 | 50.04 |
|----------------------|----------|----------|---------|----------|
| 48 threads | 48.13 | 51.87 | 52.48 | 47.82 |
|----------------------|----------|----------|---------|----------|
| 56 threads | 49.01 | 50.99 | 52.93 | 47.41 |
|----------------------|----------|----------|---------|----------|
| 64 threads | 49.90 | 50.10 | 53.40 | 46.19 |
|----------------------|----------|----------|---------|----------|
Before Change:
%idle = delta_idle_purr / delta_tb * 100
After Change:
%idle = (delta_tb - delta_purr + delta_idle_purr) / delta_tb * 100
Signed-off-by: Saket Kumar Bhaskar <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 5db2df531f9c242b13ef6520814c99685144c6d4
Author: Haren Myneni <[email protected]>
Date: Sat Jun 29 14:14:10 2024 -0700
drmgr: Free nodes returned from configure_connector
of_nodes returned from configure_connector should be freed after
updating the device tree and is missing in acquire_hp_resource()
and add_work(). This patch calls free_of_node() in these functions.
Signed-off-by: Haren Myneni <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit d4ff349fbfdffe2d82c618b40131954cd70de4a3
Author: Tyrel Datwyler <[email protected]>
Date: Fri Jul 26 15:19:32 2024 -0700
ci: update checkout@v3 action to checkout@v4
Node.js 16 actions are deprecated. Update checkout action to v4 which
uses Node.js 20. In response to the following warning:
The following actions uses Node.js version which is deprecated and will
be forced to run on node20: actions/checkout@v3. For more info:
https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Signed-off-by: Tyrel Datwyler <[email protected]>
commit f40a63b15c5639df93405b925a4dde740d9bfa23
Author: Haren Myneni <[email protected]>
Date: Fri Jun 21 15:45:58 2024 -0700
drmgr/pci: Add multipath partner device support for hotplug replace
If the PCI device has multipath partner device, its device node
contains "ibm,multipath-partner-drc" property which gives the DRC
index of the partner device.
So for the replace operation, the following steps will be executed:
- Find the device based on the partner DRC index of the requested
device
- Remove the requested device
- Remove the partner path
- Add the new device based on user input
- Find the device based on the partner DRC index of the new device
- Add the partner path of the new device
Since both paths will be using the same slot, LED indicators and
the slot identification will be done only for the primary device
in both removal and add operations.
Signed-off-by: Haren Myneni <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 4e6670df0da2b92a33dd880ce987823358f298bf
Author: Haren Myneni <[email protected]>
Date: Fri Jun 21 15:45:20 2024 -0700
drmgr/pci: Add multipath partner device support for hotplug add
If the PCI device has multipath partner device, the firmware
provides partner DRC index in "ibm,multipath-partner-drc"
property and this property is available in the PCI device node.
So when the PCI device add is initiated, both paths will be
added if the partner path is also configured and enabled with
the following steps:
- Identify slot and notify user to add the device
- Add the path and enable for the specified device
- Find the partner path DRC index from "ibm,multipath-partner-drc"
property for the specified device
- Add the partner path if it is also configured
- Notify user about adding partner path
Since both paths will be using the same slot, LED indicators and
the slot identification will be done only for the primary device.
Signed-off-by: Haren Myneni <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 1f8b5ef8092a8466bdcb29604939ae7193b79ba0
Author: Haren Myneni <[email protected]>
Date: Fri Jun 21 15:44:36 2024 -0700
drmgr/pci: Add multipath partner device support for hotplug remove
If the PCI device has multipath partner device, its device node
contains "ibm,multipath-partner-drc" property which gives the
DRC index of the partner device. For the hotplug removal, if
the partner path is also configured, both paths must be
removed before instructing the user to remove the device from
identified slot.
So the following steps will be executed for the removal:
- Find the partner path DRC index from "ibm,multipath-partner-drc"
property
- Remove the primary path
- Remove the partner path if it is configured.
- Notify user to remove PCI card from the specified slot.
Since both paths will be using the same slot, LED indicators and
the slot identification will be done only for the primary device.
Signed-off-by: Haren Myneni <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit fe0c826464620fde9124f903d97102bb4237afa7
Author: Haren Myneni <[email protected]>
Date: Fri Jun 21 15:43:24 2024 -0700
drmgr/phb: Add multipath partner device support for hotplug add
The PHB node can have "ibm,multipath-partner-drc" property
which means the device can be also configured with multipath
partner path. This property provides the DRC index of the
partner device. So for the hotplug add, both paths should be
added and the following steps will be executed for the PHB add:
- Add the specified PHB device
- Find the partner path DRC index from "ibm,multipath-partner-drc"
property for the specified device
- If the node has this property and the partner path is
already added, notify user about the partner device.
- If the node has this property and the partner path can be
configured, notify user to configure and add the partner
device.
Signed-off-by: Haren Myneni <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 8751abf3cf0eb2733162931a6b38db4431699ebd
Author: Haren Myneni <[email protected]>
Date: Fri Jun 21 15:42:45 2024 -0700
drmgr/phb: Add multipath partner device support for remove
The PHB node can have "ibm,multipath-partner-drc" property
which means the device can be also configured with multipath
partner path. This property provides the DRC index of the
partner device. For the hotplug removal, both paths should
be removed and the following steps will be executed:
- Find the partner path DRC index from "ibm,multipath-partner-drc"
property for the specified device
- If the partner path is configured, notify user about the
removal of partner path if available. Then the user should issue
issue separate drmgr command to remove the partner path.
- Remove the primary path
Signed-off-by: Haren Myneni <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit aa5feef7c7657fb764d732e831c9f7c7b9820498
Author: Haren Myneni <[email protected]>
Date: Fri Jun 21 15:41:46 2024 -0700
drmgr: Introduce get_my_partner_drc_index()
get_my_partner_drc_index() is called to retrieve DRC index from the
"ibm,multipath-partner-drc" property. This property is available
in the parent device node if the device has miltipath partner device.
"ibm,multipath-partner-drc" has the DRC index of the partner device.
Signed-off-by: Haren Myneni <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 3a7e77497d2dcf84b5d6525cdfb6e59dfea7ffbb
Author: Haren Myneni <[email protected]>
Date: Fri Jun 21 15:40:56 2024 -0700
drmgr: Retrieve dr_connector with the specified DRC index
search_drc_list() provides the search based on the key type such
as DRC_NAME, DRC_TYPE, DRC_INDEX or DRC_POWERDOMAIN. But the
current code has get_drc_by_index() which looks in to the DRC list
passed to this function instead of all DRC lists and is not used
right now.
This patch modifies get_drc_by_index() and the corresponding
changes such that it retrieves dr_connector with the specified DRC
index as does in the case of get_drc_by_name().
Signed-off-by: Haren Myneni <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 1dc1ecf7dce7825d352b045c98aa51711b58aaca
Author: Haren Myneni <[email protected]>
Date: Fri Jun 21 15:39:42 2024 -0700
drmgr: Return from get_node_by_name() if matched DRC index
get_node_by_name() should return dr_node if the DRC name or DRC
index is matched. But the current code returns only if the DRC
name is matched. This patch fixes this issue and returns dr_node
if the index is matched.
Signed-off-by: Haren Myneni <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
powerpc-utils-1.3.12
=====================================================================
commit 2f0bdb051fe70fbd6cb608ea1b63a75223dc44a4
Author: Tyrel Datwyler <[email protected]>
Date: Tue Feb 6 16:58:12 2024 -0800
lsslot: fix reporting of L3 caches with -b option
Currently if a L2 cache has an associated dependent L3 cache the lsslot
command for cpu connector types will fail to report the L3 cache when
using the -b option. This is due to a typo such that the check is made
between the the L2 caches l2-cache property value and its own
ibm,phandle property. The check should be against the L3 caches
ibm,phandle property as the l2-cache property contains the phandle of
the dependent cache.
Without patch:
./src/drmgr/lsslot -c cpu -b
drc-name OFDT-node drc_index thread id(s) l2-cache l3-cache
CPU 1 PowerPC,POWER8@0 10000000 0 1 2 3 4 5 6 7 l2-cache@200a N/A
With patch:
./src/drmgr/lsslot -c cpu -b
drc-name OFDT-node drc_index thread id(s) l2-cache l3-cache
CPU 1 PowerPC,POWER8@0 10000000 0 1 2 3 4 5 6 7 l2-cache@200a l3-cache@310a
Signed-off-by: Tyrel Datwyler <[email protected]>
commit a63f08289611e3c76814a3b9fbb7ef7c56d13ff5
Author: Tyrel Datwyler <[email protected]>
Date: Thu Feb 1 07:19:58 2024 +0530
lsslot: fix and unify formatting of cpu slots
When listing cpu slots with and without the -b option the formatting is
inconsistent and some column headers and associated data are not aligned.
Adjusted format strings accordingly.
Without patch:
localhost:~/powerpc-utils # ./src/drmgr/lsslot -c cpu
drc-name OFDT-node drc_index thread id(s)
CPU 41 PowerPC,POWER10@28 10000028 28 29 2a 2b 2c 2d 2e 2f
CPU 33 PowerPC,POWER10@20 10000020 20 21 22 23 24 25 26 27
CPU 25 PowerPC,POWER10@18 10000018 18 19 1a 1b 1c 1d 1e 1f
CPU 17 PowerPC,POWER10@10 10000010 10 11 12 13 14 15 16 17
CPU 9 PowerPC,POWER10@8 10000008 8 9 a b c d e f
CPU 1 PowerPC,POWER10@0 10000000 0 1 2 3 4 5 6 7
localhost:~/powerpc-utils # ./src/drmgr/lsslot -c cpu -b
drc-name OFDT-node drc_index thread id(s) l2-cache l3-cache
CPU 41 PowerPC,POWER10@28 10000028 28 29 2a 2b 2c 2d 2e 2f N/A N/A
CPU 33 PowerPC,POWER10@20 10000020 20 21 22 23 24 25 26 27 N/A N/A
CPU 25 PowerPC,POWER10@18 10000018 18 19 1a 1b 1c 1d 1e 1f N/A N/A
CPU 17 PowerPC,POWER10@10 10000010 10 11 12 13 14 15 16 17 N/A N/A
CPU 9 PowerPC,POWER10@8 10000008 8 9 a b c d e f N/A N/A
CPU 1 PowerPC,POWER10@0 10000000 0 1 2 3 4 5 6 7 N/A N/A
With patch:
localhost:~/powerpc-utils # ./src/drmgr/lsslot -c cpu
drc-name OFDT-node drc_index thread id(s)
CPU 41 PowerPC,POWER10@28 10000028 28 29 2a 2b 2c 2d 2e 2f
CPU 33 PowerPC,POWER10@20 10000020 20 21 22 23 24 25 26 27
CPU 25 PowerPC,POWER10@18 10000018 18 19 1a 1b 1c 1d 1e 1f
CPU 17 PowerPC,POWER10@10 10000010 10 11 12 13 14 15 16 17
CPU 9 PowerPC,POWER10@8 10000008 8 9 a b c d e f
CPU 1 PowerPC,POWER10@0 10000000 0 1 2 3 4 5 6 7
localhost:~/powerpc-utils # ./src/drmgr/lsslot -c cpu -b
drc-name OFDT-node drc_index thread id(s) l2-cache l3-cache
CPU 41 PowerPC,POWER10@28 10000028 28 29 2a 2b 2c 2d 2e 2f N/A N/A
CPU 33 PowerPC,POWER10@20 10000020 20 21 22 23 24 25 26 27 N/A N/A
CPU 25 PowerPC,POWER10@18 10000018 18 19 1a 1b 1c 1d 1e 1f N/A N/A
CPU 17 PowerPC,POWER10@10 10000010 10 11 12 13 14 15 16 17 N/A N/A
CPU 9 PowerPC,POWER10@8 10000008 8 9 a b c d e f N/A N/A
CPU 1 PowerPC,POWER10@0 10000000 0 1 2 3 4 5 6 7 N/A N/A
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 01bc16de40385467cd32440da43ff02b0f0e856c
Author: Tyrel Datwyler <[email protected]>
Date: Thu Feb 1 07:02:49 2024 +0530
lsslot: fix displaying cpu slots and caches with -b option
The format string for printing the drc-name, OFDT-node, and drc-index in
list_cpus_and_caches() contains a spurious '%' qualifier at the end of
the string. Historically, this was ignored by compilers and the string
populated anyways. However, we since observed lsslot built on SLES 15
SP6 where the string is not populated.
Removing the spurious '%' fixes the issue.
Without patch:
localhost:~ # lsslot -c cpu -b
drc-name OFDT-node drc_index thread id(s) l2-cache l3-cache
28 29 2a 2b 2c 2d 2e 2f N/A N/A
20 21 22 23 24 25 26 27 N/A N/A
18 19 1a 1b 1c 1d 1e 1f N/A N/A
10 11 12 13 14 15 16 17 N/A N/A
8 9 a b c d e f N/A N/A
0 1 2 3 4 5 6 7 N/A N/A
With patch:
localhost:~/powerpc-utils # ./src/drmgr/lsslot -c cpu -b
drc-name OFDT-node drc_index thread id(s) l2-cache l3-cache
CPU 41 PowerPC,POWER10@28 10000028 28 29 2a 2b 2c 2d 2e 2f N/A N/A
CPU 33 PowerPC,POWER10@20 10000020 20 21 22 23 24 25 26 27 N/A N/A
CPU 25 PowerPC,POWER10@18 10000018 18 19 1a 1b 1c 1d 1e 1f N/A N/A
CPU 17 PowerPC,POWER10@10 10000010 10 11 12 13 14 15 16 17 N/A N/A
CPU 9 PowerPC,POWER10@8 10000008 8 9 a b c d e f N/A N/A
CPU 1 PowerPC,POWER10@0 10000000 0 1 2 3 4 5 6 7 N/A N/A
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 5f825c75c6dfc2a95af1eebb6e364587d178deee
Author: Michal Suchanek <[email protected]>
Date: Thu Jul 21 12:38:16 2022 +0200
hcn-init: Split services per connection manager.
The universal service using network.service alias does not work
reliably.
Use one service per supported connection manager.
Signed-off-by: Michal Suchanek <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit f1a8ed892e18b83cb0483e8f8f8cbc512fa8510c
Author: Laurent Dufour <[email protected]>
Date: Thu Aug 10 11:47:07 2023 +0200
ppc64_cpu/info: fix bad report when non continuous CPU ids
When CPU ids are not continuous, let say that the kernel didn't reuse a set
of CPU ids already used on a different nodes, the output of ppc64_cpu
--info is not correct.
For instance, in the example below the CPU id 48 to 55 haven't been reused
by the kernel when a CPU has been added after a LPM operation.
Note that the system is running in SMT=4.
The numactl -H command is providing the correct set of CPU:
ltczep3-lp4:~ # numactl -H
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 64 65 66 67 68 69 70 71
node 0 size: 7177 MB
node 0 free: 4235 MB
node 1 cpus: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
node 1 size: 24508 MB
node 1 free: 23539 MB
node distances:
node 0 1
0: 10 40
1: 40 10
But ppc64_cpu --info is reporting the CPUs 48 to 55 offlined while not
reporting at all the CPU 65 to 71:
ltczep3-lp4:~ # ppc64_cpu --info
Core 0: 0* 1* 2* 3* 4* 5* 6* 7*
Core 1: 8* 9* 10* 11* 12* 13* 14* 15*
Core 2: 16* 17* 18* 19* 20* 21* 22* 23*
Core 3: 24* 25* 26* 27* 28* 29* 30* 31*
Core 4: 32* 33* 34* 35* 36* 37* 38* 39*
Core 5: 40* 41* 42* 43* 44* 45* 46* 47*
Core 6: 48 49 50 51 52 53 54 55
This is because it is considering that the CPU id are continuous which is
not the case here.
To prevent that, when looking for a core, it is now first checking that the
physical_id of the first thread in that core is defined (not -1). If that
the case this means that CPU/core is present.
With that patch applied, ppc64_cpu --info is reporting:
ltczep3-lp4:~ # pc64_cpu --info
Core 0: 0* 1* 2* 3* 4 5 6 7
Core 1: 8* 9* 10* 11* 12 13 14 15
Core 2: 16* 17* 18* 19* 20 21 22 23
Core 3: 24* 25* 26* 27* 28 29 30 31
Core 4: 32* 33* 34* 35* 36 37 38 39
Core 5: 40* 41* 42* 43* 44 45 46 47
Core 6: 64* 65* 66* 67* 68 69 70 71
Signed-off-by: Laurent Dufour <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit d604cc779741c29cbdc8da97cbfc1512fd21fc1b
Author: Likhitha Korrapati <[email protected]>
Date: Fri Aug 11 00:41:14 2023 -0500
nvram man page and --help output are not in sync
The nvram man page and the output from --help option are not in
sync and few of the options are missing in man page.
The options that are missing are ascii, dump, nvram-size, zero.
These options are added through the commit ids [1], [2].
This patch adds the above missing options to the nvram.
[1] https://github.com/ibm-power-utilities/powerpc-utils/commit/0e09f4e2898e7dea556479b018a7f4bf12108099
[2] https://github.com/ibm-power-utilities/powerpc-utils/commit/976dbe9bb7b01b135cac3e7bbd1dce0cdc88636a
Signed-off-by: Likhitha Korrapati <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 882335a30d04032d2684e165f70646b368a788b4
Author: Wen Xiong <[email protected]>
Date: Tue Jan 30 10:49:13 2024 -0600
bootlist: Support multiple dev paths for a nvme boot device
Multipath splitter drawer is going to support two physical paths for
each nvme device.
This patch adds the support for multiple device/of paths for a nvme boot
device.
For example,
#lsslot -c pci
U50EE.001.WZS000E-P3-C1-R1 U.2 PCI-E capable, Rev 4, 4x lanes with 2x
lanes connected 0581:10:00.0
U50EE.001.WZS000E-P3-C1-R2 U.2 PCI-E capable, Rev 4, 4x lanes with 2x
lanes connected 0521:10:00.0
#nvme list-subsys
nvme-subsys1 -
NQN=nqn.1994-11.com.samsung:nvme:PM1735a:2.5-inch:S6RUNE0R900042
hostnqn=nqn.2014-08.org.nvmexpress:uuid:3c6c1ace-e9b1-4a17-8ff0-6a84d3dd15f4
iopolicy=numa
\
+- nvme1 pcie 0523:20:00.0 live
+- nvme0 pcie 0583:20:00.0 live
# bootlist -m normal nvme1n1
# bootlist -m normal -o
nvme0
nvme1n1
#bootlist -m normal -r
/pci@800000020000583/pci1014,6bc@0/namespace@1
/pci@800000020000523/pci1014,6bc@0/namespace@1
Signed-off-by: Wen Xiong <[email protected]>
[tyreld: fixup whitespace errors]
Signed-off-by: Tyrel Datwyler <[email protected]>
commit a6d31caf4eaa453d3ec879f02163b3a515789b85
Author: Likhitha Korrapati <[email protected]>
Date: Mon Sep 11 05:23:37 2023 -0500
powerpc/nvram: Fix Segmentation fault issue in nvram-size.
nvram-size option results in segmentation fault when the user
specifies value larger than the default nvram size
Without the patch:
[root@xxx ~]# nvram --nvram-size 1048592
nvram: WARNING: expected 1048592 bytes, but only read 15360!
Segmentation fault (core dumped)
Segmentation fault is caused because the phead->length is becoming 0.
And because of this the p_start doesn't get updated which makes the
while loop run infinitely resulting in segmentation fault.
This patch adds a condition check for phead->length to avoid infinite
while loop.
With the patch:
[root@xxx src]# ./nvram --nvram-size 1048592
./nvram: WARNING: expected 1048592 bytes, but only read 15360!
[root@xxx src]# ./nvram --nvram-size 268435456
./nvram: WARNING: expected 268435456 bytes, but only read 15360!
[root@xxx src]#
Reported-by: Shirisha Ganta <[email protected]>
Signed-off-by: Likhitha Korrapati <[email protected]>
[tyreld: fixed up else block]
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 3f72b8326a2fc9a9dffb4b31d0ce3abf12e24751
Author: Likhitha Korrapati <[email protected]>
Date: Thu Jan 25 15:44:02 2024 +0530
powerpc/nvram: fix segmentation fault issue in print-config
print-config option in nvram results in segmentation fault when the
user provides a very large value.
without the patch:
[root@xxx powerpc-utils]# nvram --print-config=real-mode?
true
[root@xxx powerpc-utils]# nvram --print-config=$(perl -e 'p
rint "A"x1000000')
Segmentation fault (core dumped)
The Segmentation fault occurs because the code tries to access memory
beyond the bounds of the data at index varlen. varlen is the length of
the string provided by the user.
This patch adds a condition to check whether the length of the data is
greater than varlen to prevent accessing out of bounds.
with the patch:
[root@xxx powerpc-utils]# ./src/nvram --print-config=real-m
ode?
true
[root@xxx powerpc-utils]# ./src/nvram --print-config=$(perl
-e 'print "A"x1000000')
Reported-by: Shirisha Ganta <[email protected]>
Signed-off-by: Likhitha Korrapati <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 8a7aa61c5f520df03e53e6f7e1d63b7d5c432376
Author: Wen Xiong <[email protected]>
Date: Wed Nov 15 14:37:43 2023 -0600
powerpc-utils/scripts/ofpathname: handle nsid of nvme device as hex number
Installation fails if nsid of nvme device is greater than 10.
The patch fixes the issue and handle nsid of nvme ad a hex number.
Signed-off-by: Wen Xiong <[email protected]>
Signed-off-by: Tyrel Datwyler <[email protected]>
commit 9caa77e4477a73064a6deea253fd3faea32648fb
Author: Likhitha Korrapati <[email protected]>
Date: Fri Nov 17 01:42:29 2023 -0500
rtas_dbg: Fix the large negative values in rtas_dbg