<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="611px" preserveAspectRatio="none" style="width:726px;height:611px;background:#F0F0F0;" version="1.1" viewBox="0 0 726 611" width="726px" zoomAndPan="magnify"><defs><filter height="300%" id="f8fbiokax246m" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><ellipse cx="289.25" cy="20" fill="#000000" filter="url(#f8fbiokax246m)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><polygon fill="#FEFECE" filter="url(#f8fbiokax246m)" points="171.75,50,406.75,50,418.75,62,406.75,74,171.75,74,159.75,62,171.75,50" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="171.75" y="65.8081">cpuLoad > frequencyShiftUpperThreshold</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="139.75" y="59.4058">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="418.75" y="59.4058">no</text><rect fill="#FEFECE" filter="url(#f8fbiokax246m)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="194" x="10" y="84"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="170" x="24" y="105.1387">aboveThresholdCounter++</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="174" x="20" y="119.1074">belowThresholdCounter = 0</text><polygon fill="#FEFECE" filter="url(#f8fbiokax246m)" points="354,84,589,84,601,96,589,108,354,108,342,96,354,84" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="235" x="354" y="99.8081">cpuLoad < frequencyShiftLowerThreshold</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="322" y="93.4058">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="601" y="93.4058">no</text><rect fill="#FEFECE" filter="url(#f8fbiokax246m)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="234" y="118"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="168" x="248" y="139.1387">belowThresholdCounter++</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="244" y="153.1074">aboveThresholdCounter = 0</text><rect fill="#FEFECE" filter="url(#f8fbiokax246m)" height="47.9375" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="208" x="507" y="118"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="174" x="521" y="139.1387">belowThresholdCounter = 0</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="180" x="521" y="153.1074">aboveThresholdCounter = 0;</text><polygon fill="#FEFECE" filter="url(#f8fbiokax246m)" points="471.5,171.9375,483.5,183.9375,471.5,195.9375,459.5,183.9375,471.5,171.9375" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f8fbiokax246m)" points="289.25,201.9375,301.25,213.9375,289.25,225.9375,277.25,213.9375,289.25,201.9375" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f8fbiokax246m)" points="130.75,245.9375,447.75,245.9375,459.75,277.9492,447.75,309.9609,130.75,309.9609,118.75,277.9492,130.75,245.9375" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="0" x="133.75" y="256.1479"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="308" x="139.75" y="268.9526">aboveThresholdCounter >= maxAboveThresholdCount</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="12" x="139.75" y="281.7573">or</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="275" x="139.75" y="294.562">minFrequencyRequested > currentCpuFrequency</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="0" x="139.75" y="307.3667"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="98.75" y="275.355">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="14" x="459.75" y="275.355">no</text><rect fill="#FEFECE" filter="url(#f8fbiokax246m)" height="75.875" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="10.75" y="319.9609"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="153" x="24.75" y="341.0996">IncreaseCpuFrequency()</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="0" x="24.75" y="355.0684"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="174" x="20.75" y="369.0371">belowThresholdCounter = 0</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="20.75" y="383.0059">aboveThresholdCounter = 0</text><rect fill="#FEFECE" filter="url(#f8fbiokax246m)" height="75.875" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="196" x="371.75" y="408.3867"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="159" x="385.75" y="429.5254">DecreaseCpuFrequency()</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="0" x="385.75" y="443.4941"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="174" x="381.75" y="457.4629">belowThresholdCounter = 0</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="176" x="381.75" y="471.4316">aboveThresholdCounter = 0</text><polygon fill="#FEFECE" filter="url(#f8fbiokax246m)" points="311.75,319.9609,627.75,319.9609,639.75,351.9727,627.75,383.9844,311.75,383.9844,299.75,351.9727,311.75,319.9609" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="20" x="473.75" y="394.1948">yes</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="0" x="314.75" y="330.1714"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="307" x="320.75" y="342.9761">belowThresholdCounter >= maxBelowThresholdCount</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="21" x="320.75" y="355.7808">and</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="242" x="320.75" y="368.5854">currentCpuFreq > minFrequencyRequested</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="0" x="320.75" y="381.3901"/><polygon fill="#FEFECE" filter="url(#f8fbiokax246m)" points="469.75,504.2617,481.75,516.2617,469.75,528.2617,457.75,516.2617,469.75,504.2617" style="stroke: #A80036; stroke-width: 1.5;"/><polygon fill="#FEFECE" filter="url(#f8fbiokax246m)" points="289.25,534.2617,301.25,546.2617,289.25,558.2617,277.25,546.2617,289.25,534.2617" style="stroke: #A80036; stroke-width: 1.5;"/><ellipse cx="289.25" cy="589.2617" fill="#FFFFFF" filter="url(#f8fbiokax246m)" rx="11" ry="11" style="stroke: #000000; stroke-width: 1.0;"/><ellipse cx="289.25" cy="589.2617" fill="#000000" rx="6" ry="6" style="stroke: #7F7F7F; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="342" x2="332" y1="96" y2="96"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="332" x2="332" y1="96" y2="118"/><polygon fill="#A80036" points="328,108,332,118,336,108,332,112" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="601" x2="611" y1="96" y2="96"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="611" x2="611" y1="96" y2="118"/><polygon fill="#A80036" points="607,108,611,118,615,108,611,112" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="332" x2="332" y1="165.9375" y2="183.9375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="332" x2="459.5" y1="183.9375" y2="183.9375"/><polygon fill="#A80036" points="449.5,179.9375,459.5,183.9375,449.5,187.9375,453.5,183.9375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="611" x2="611" y1="165.9375" y2="183.9375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="611" x2="483.5" y1="183.9375" y2="183.9375"/><polygon fill="#A80036" points="493.5,179.9375,483.5,183.9375,493.5,187.9375,489.5,183.9375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="159.75" x2="107" y1="62" y2="62"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="107" x2="107" y1="62" y2="84"/><polygon fill="#A80036" points="103,74,107,84,111,74,107,78" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="418.75" x2="471.5" y1="62" y2="62"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="471.5" x2="471.5" y1="62" y2="84"/><polygon fill="#A80036" points="467.5,74,471.5,84,475.5,74,471.5,78" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="107" x2="107" y1="131.9375" y2="213.9375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="107" x2="277.25" y1="213.9375" y2="213.9375"/><polygon fill="#A80036" points="267.25,209.9375,277.25,213.9375,267.25,217.9375,271.25,213.9375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="471.5" x2="471.5" y1="195.9375" y2="213.9375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="471.5" x2="301.25" y1="213.9375" y2="213.9375"/><polygon fill="#A80036" points="311.25,209.9375,301.25,213.9375,311.25,217.9375,307.25,213.9375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="289.25" x2="289.25" y1="30" y2="50"/><polygon fill="#A80036" points="285.25,40,289.25,50,293.25,40,289.25,44" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="469.75" x2="469.75" y1="383.9844" y2="408.3867"/><polygon fill="#A80036" points="465.75,398.3867,469.75,408.3867,473.75,398.3867,469.75,402.3867" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="639.75" x2="651.75" y1="351.9727" y2="351.9727"/><polygon fill="#A80036" points="647.75,426.3184,651.75,436.3184,655.75,426.3184,651.75,430.3184" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="651.75" x2="651.75" y1="351.9727" y2="516.2617"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="651.75" x2="481.75" y1="516.2617" y2="516.2617"/><polygon fill="#A80036" points="491.75,512.2617,481.75,516.2617,491.75,520.2617,487.75,516.2617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="469.75" x2="469.75" y1="484.2617" y2="504.2617"/><polygon fill="#A80036" points="465.75,494.2617,469.75,504.2617,473.75,494.2617,469.75,498.2617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="118.75" x2="108.75" y1="277.9492" y2="277.9492"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="108.75" x2="108.75" y1="277.9492" y2="319.9609"/><polygon fill="#A80036" points="104.75,309.9609,108.75,319.9609,112.75,309.9609,108.75,313.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="459.75" x2="469.75" y1="277.9492" y2="277.9492"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="469.75" x2="469.75" y1="277.9492" y2="319.9609"/><polygon fill="#A80036" points="465.75,309.9609,469.75,319.9609,473.75,309.9609,469.75,313.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="108.75" x2="108.75" y1="395.8359" y2="546.2617"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="108.75" x2="277.25" y1="546.2617" y2="546.2617"/><polygon fill="#A80036" points="267.25,542.2617,277.25,546.2617,267.25,550.2617,271.25,546.2617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="469.75" x2="469.75" y1="528.2617" y2="546.2617"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="469.75" x2="301.25" y1="546.2617" y2="546.2617"/><polygon fill="#A80036" points="311.25,542.2617,301.25,546.2617,311.25,550.2617,307.25,546.2617" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="289.25" x2="289.25" y1="225.9375" y2="245.9375"/><polygon fill="#A80036" points="285.25,235.9375,289.25,245.9375,293.25,235.9375,289.25,239.9375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="289.25" x2="289.25" y1="558.2617" y2="578.2617"/><polygon fill="#A80036" points="285.25,568.2617,289.25,578.2617,293.25,568.2617,289.25,572.2617" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[f5e1e7fdded37c9369d3b73909c0243c]
@startuml
skinparam BackgroundColor F0F0F0
start
if (cpuLoad > frequencyShiftUpperThreshold) then (yes)
: aboveThresholdCounter++
belowThresholdCounter = 0;
else (no)
if (cpuLoad < frequencyShiftLowerThreshold) then (yes)
: belowThresholdCounter++
aboveThresholdCounter = 0;
else (no)
: belowThresholdCounter = 0
aboveThresholdCounter = 0;
endif
endif
if (
aboveThresholdCounter >= maxAboveThresholdCount
or
minFrequencyRequested > currentCpuFrequency
) then (yes)
: IncreaseCpuFrequency()
belowThresholdCounter = 0
aboveThresholdCounter = 0;
else (no)
if (
belowThresholdCounter >= maxBelowThresholdCount
and
currentCpuFreq > minFrequencyRequested
) then (yes)
: DecreaseCpuFrequency()
belowThresholdCounter = 0
aboveThresholdCounter = 0;
endif
endif
stop
@enduml
PlantUML version 1.2020.02(Sun Mar 01 05:22:07 EST 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.12+7-post-Debian-2
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>