Skip to content

Commit d7834c6

Browse files
cpu process load
1 parent 8511220 commit d7834c6

File tree

2 files changed

+52
-31
lines changed

2 files changed

+52
-31
lines changed

src/jdk.management/aix/native/libmanagement_ext/UnixOperatingSystem.c

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,15 @@
2828
/* Implement and update https://bugs.openjdk.org/browse/JDK-8030957 */
2929

3030
#include <jni.h>
31+
#include <stdlib.h>
32+
#include <libperfstat.h>
3133
#include "com_sun_management_internal_OperatingSystemImpl.h"
34+
perfstat_process_t prev_stats = {0};
35+
static unsigned long long prev_timebase = 0;
36+
static int initialized = 0;
37+
38+
#define HTIC2SEC(x) (((double)(x) * XINTFRAC) / 1000000000.0)
39+
3240

3341
JNIEXPORT jdouble JNICALL
3442
Java_com_sun_management_internal_OperatingSystemImpl_getCpuLoad0
@@ -37,11 +45,50 @@ Java_com_sun_management_internal_OperatingSystemImpl_getCpuLoad0
3745
return -1.0;
3846
}
3947

48+
49+
4050
JNIEXPORT jdouble JNICALL
4151
Java_com_sun_management_internal_OperatingSystemImpl_getProcessCpuLoad0
4252
(JNIEnv *env, jobject dummy)
4353
{
44-
return -1.0;
54+
perfstat_process_t curr_stats;
55+
perfstat_id_t id;
56+
unsigned long long curr_timebase, timebase_diff;
57+
double user_diff, sys_diff, delta_time;
58+
59+
60+
if (perfstat_process(&id, &curr_stats, sizeof(perfstat_process_t), 1) == -1) {
61+
return -1.0; // Unable to get stats
62+
}
63+
if (!initialized) {
64+
// First call: just store and return -1.0
65+
prev_stats = curr_stats;
66+
prev_timebase = curr_stats.last_timebase;
67+
initialized = 1;
68+
return -1.0;
69+
}
70+
printf("initialised done");
71+
curr_timebase = curr_stats.last_timebase;
72+
timebase_diff = curr_timebase - prev_timebase;
73+
74+
if ((long long)timebase_diff <= 0 || XINTFRAC == 0) {
75+
return -1.0;
76+
}
77+
78+
delta_time = HTIC2SEC(timebase_diff);
79+
80+
user_diff = (double)(curr_stats.ucpu_time - prev_stats.ucpu_time);
81+
sys_diff = (double)(curr_stats.scpu_time - prev_stats.scpu_time);
82+
83+
prev_stats = curr_stats;
84+
prev_timebase = curr_timebase;
85+
86+
double cpu_load = (user_diff + sys_diff) / delta_time;
87+
88+
return (jdouble)cpu_load;
89+
90+
91+
4592
}
4693

4794
JNIEXPORT jdouble JNICALL

test/jdk/ProblemList.txt

Lines changed: 4 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ java/awt/Focus/TestDisabledAutoTransfer.java 8159871 macosx-all,windows-all
143143
java/awt/Focus/TestDisabledAutoTransferSwing.java 6962362 windows-all
144144
java/awt/Focus/ActivateOnProperAppContextTest.java 8136516 macosx-all
145145
java/awt/Focus/FocusPolicyTest.java 7160904 linux-all
146-
java/awt/Graphics/SmallPrimitives.java 8047070 macosx-all,linux-all
147146
java/awt/EventQueue/6980209/bug6980209.java 8198615 macosx-all
148147
java/awt/EventQueue/PushPopDeadlock/PushPopDeadlock.java 8024034 generic-all
149148
java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java 7080150 macosx-all
@@ -189,9 +188,6 @@ java/awt/Mouse/EnterExitEvents/DragWindowTest.java 8298823 macosx-all
189188
java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java 6829264 generic-all
190189
java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java 8080982 generic-all
191190
java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java 8079268 linux-all
192-
java/awt/datatransfer/ClipboardPerformanceTest.java 8029022 windows-all
193-
java/awt/datatransfer/HTMLTransferConsoleOutputTest.java 8237254 macosx-all
194-
java/awt/datatransfer/ImageTransferCrashTest.java 8237253 macosx-all
195191
java/awt/Toolkit/RealSync/Test.java 6849383 linux-all
196192
java/awt/LightweightComponent/LightweightEventTest/LightweightEventTest.java 8159252 windows-all
197193
java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java 8072110 macosx-all
@@ -260,14 +256,7 @@ java/awt/print/PrinterJob/GlyphPositions.java 7003378 generic-all
260256
java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java 6849371 macosx-all,linux-all
261257
java/awt/Component/GetScreenLocTest/GetScreenLocTest.java 4753654 generic-all
262258
java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java 8165863 macosx-all
263-
java/awt/Clipboard/PasteNullToTextComponentsTest.java 8234140 macosx-all,windows-all
264-
java/awt/Clipboard/NoOwnerNoTargetsTest.java 8234140 macosx-all
265-
java/awt/Clipboard/LostOwnershipChainTest/SystemClipboard2ProcTest.java 8234140 macosx-all
266259
java/awt/Clipboard/HTMLTransferTest/HTMLTransferTest.java 8017454 macosx-all
267-
java/awt/Clipboard/ClipboardSecurity.java 8054809 macosx-all
268-
java/awt/Clipboard/GetAltContentsTest/SystemClipboardTest.java 8234140 macosx-all
269-
java/awt/Clipboard/ImageTransferTest.java 8030710 generic-all
270-
java/awt/Clipboard/NoDataConversionFailureTest.java 8234140 macosx-all
271260
java/awt/Frame/MiscUndecorated/RepaintTest.java 8266244 macosx-aarch64
272261
java/awt/Modal/FileDialog/FileDialogAppModal1Test.java 7186009 macosx-all
273262
java/awt/Modal/FileDialog/FileDialogAppModal2Test.java 7186009 macosx-all
@@ -452,8 +441,6 @@ java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java 6848810 macosx-all
452441
java/awt/FileDialog/ModalFocus/FileDialogModalFocusTest.java 8194751 linux-all
453442
java/awt/image/VolatileImage/BitmaskVolatileImage.java 8133102 linux-all
454443
java/awt/SplashScreen/MultiResolutionSplash/unix/UnixMultiResolutionSplashTest.java 8203004 linux-all
455-
java/awt/ScrollPane/ScrollPositionTest.java 8040070 linux-all
456-
java/awt/ScrollPane/ScrollPaneEventType.java 8296516 macosx-all
457444
java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java 7107528 linux-all,macosx-all
458445
java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java 8080676 linux-all
459446
java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersInKeyEvent.java 8157147 linux-all,windows-all,macosx-all
@@ -474,7 +461,6 @@ java/awt/TrayIcon/RightClickWhenBalloonDisplayed/RightClickWhenBalloonDisplayed.
474461
java/awt/PopupMenu/PopupMenuLocation.java 8259913,8315878 windows-all,macosx-aarch64
475462
java/awt/GridLayout/ComponentPreferredSize/ComponentPreferredSize.java 8238720,8324782 windows-all,macosx-all
476463
java/awt/GridLayout/ChangeGridSize/ChangeGridSize.java 8238720,8324782 windows-all,macosx-all
477-
java/awt/GridBagLayout/ComponentShortage.java 8355280 windows-all,linux-all
478464
java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.java 8238720 windows-all
479465

480466
# Several tests which fail sometimes on macos11
@@ -485,14 +471,15 @@ java/awt/MenuBar/TestNoScreenMenuBar.java 8265987 macosx-all
485471

486472
java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java 8266283 generic-all
487473
java/awt/Graphics2D/DrawString/RotTransText.java 8316878 linux-all
488-
java/awt/Graphics2D/CopyAreaOOB.java 8343106 macosx-aarch64
489474
java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.java 8257529 windows-x64
490475
java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeForModalDialogTest/ConsumeForModalDialogTest.java 8302787 windows-all
491476
java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.java 8302787 windows-all
492477
java/awt/KeyboardFocusmanager/ConsumeNextMnemonicKeyTypedTest/ConsumeNextMnemonicKeyTypedTest.java 8321303 linux-all
493478

494479
java/awt/Window/GetScreenLocation/GetScreenLocationTest.java 8225787 linux-x64
495480
java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java 8266243 macosx-aarch64
481+
java/awt/Dialog/PrintToFileTest/PrintToFileRevoked.java 8029249 macosx-all
482+
java/awt/Dialog/PrintToFileTest/PrintToFileGranted.java 8029249 macosx-all
496483
java/awt/Dialog/ChoiceModalDialogTest.java 8161475 macosx-all
497484
java/awt/Dialog/FileDialogUserFilterTest.java 8001142 generic-all
498485

@@ -512,8 +499,6 @@ java/awt/image/multiresolution/MultiResolutionJOptionPaneIconTest.java 8274106 m
512499
# Wayland related
513500

514501
java/awt/FullScreen/SetFullScreenTest.java 8332155 linux-x64
515-
sun/java2d/ClassCastExceptionForInvalidSurface.java 8354097 linux-x64
516-
sun/java2d/GdiRendering/ClipShapeRendering.java 8354097 linux-x64
517502

518503
############################################################################
519504

@@ -551,8 +536,6 @@ java/io/IO/IO.java 8337935 linux-pp
551536

552537
# jdk_management
553538

554-
com/sun/management/OperatingSystemMXBean/GetProcessCpuLoad.java 8030957 aix-all
555-
com/sun/management/OperatingSystemMXBean/GetSystemCpuLoad.java 8030957 aix-all
556539

557540
java/lang/management/MemoryMXBean/Pending.java 8158837 generic-all
558541
java/lang/management/MemoryMXBean/PendingAllGC.sh 8158837 generic-all
@@ -691,7 +674,7 @@ javax/swing/JFileChooser/8194044/FileSystemRootTest.java 8327236 windows-all
691674
javax/swing/JPopupMenu/6800513/bug6800513.java 7184956 macosx-all
692675
javax/swing/JTabbedPane/4624207/bug4624207.java 8064922 macosx-all
693676
javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java 8160720 generic-all
694-
javax/swing/JFileChooser/bug6798062.java 8146446 windows-all
677+
javax/swing/JFileChooser/6798062/bug6798062.java 8146446 windows-all
695678
javax/swing/JPopupMenu/4870644/bug4870644.java 8194130 macosx-all,linux-all
696679
javax/swing/dnd/8139050/NativeErrorsInTableDnD.java 8202765 macosx-all,linux-all
697680
javax/swing/JEditorPane/6917744/bug6917744.java 8213124 macosx-all
@@ -784,15 +767,12 @@ jdk/jfr/jvm/TestWaste.java 8282427 generic-
784767

785768
# jdk_foreign
786769

787-
java/foreign/TestBufferStackStress.java 8350455 macosx-all
788-
789770
############################################################################
790771
# Client manual tests
791772

792773
javax/swing/JFileChooser/6698013/bug6698013.java 8024419 macosx-all
793774
javax/swing/JColorChooser/8065098/bug8065098.java 8065647 macosx-all
794-
javax/swing/JTabbedPane/bug4499556.java 8267500 macosx-all
795-
javax/swing/JTabbedPane/bug4666224.java 8144124 macosx-all
775+
javax/swing/JTabbedPane/4666224/bug4666224.java 8144124 macosx-all
796776
javax/swing/JTabbedPane/TestJTabbedPaneOpaqueColor.java 8345090 windows-all,linux-all
797777
javax/swing/SwingUtilities/TestTextPosInPrint.java 8227025 windows-all
798778
javax/swing/JInternalFrame/bug4134077.java 8184985 windows-all
@@ -808,14 +788,11 @@ java/awt/Modal/InvisibleParentTest/InvisibleParentTest.java 8172245 linux-all
808788
java/awt/Frame/FrameStateTest/FrameStateTest.java 8203920 macosx-all,linux-all
809789
java/awt/print/PrinterJob/ScaledText/ScaledText.java 8231226 macosx-all
810790
java/awt/print/PrinterJob/PrintTextTest.java 8148334 macosx-all
811-
java/awt/font/GlyphVector/TestGlyphVectorLayout.java 8354987 generic-all
812791
java/awt/font/TextLayout/TestJustification.java 8250791 macosx-all
813792
java/awt/TrayIcon/DragEventSource/DragEventSource.java 8252242 macosx-all
814793
java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java 7187728 macosx-all,linux-all
815794
java/awt/print/PageFormat/Orient.java 8016055 macosx-all
816795
java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.java 8024986 macosx-all,linux-all
817-
java/awt/TextComponent/CorrectTextComponentSelectionTest.java 8237220 macosx-all
818-
java/awt/TextComponent/SelectionAndCaretColor.java 7017622 linux-all
819796
java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java 8254841 macosx-all
820797
java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.java 8256289 windows-x64
821798
java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java 8258103 linux-all
@@ -825,10 +802,7 @@ java/awt/PopupMenu/PopupHangTest.java 8340022 windows-all
825802
java/awt/Focus/MinimizeNonfocusableWindowTest.java 8024487 windows-all
826803
java/awt/Focus/InactiveFocusRace.java 8023263 linux-all
827804
java/awt/List/HandlingKeyEventIfMousePressedTest.java 6848358 macosx-all,windows-all
828-
java/awt/List/ListScrollbarCursorTest.java 8066410 generic-all
829805
java/awt/Checkbox/CheckboxBoxSizeTest.java 8340870 windows-all
830806
java/awt/Checkbox/CheckboxIndicatorSizeTest.java 8340870 windows-all
831807
java/awt/Checkbox/CheckboxNullLabelTest.java 8340870 windows-all
832808
java/awt/dnd/WinMoveFileToShellTest.java 8341665 windows-all
833-
java/awt/Menu/MenuVisibilityTest.java 8161110 macosx-all
834-
java/awt/Modal/NativeDialogToFrontBackTest.java 7188049 windows-all,linux-all

0 commit comments

Comments
 (0)