[v1] doc: rework vm power manager user guide
diff mbox series

Message ID 20200107091343.22965-1-david.hunt@intel.com
State Superseded, archived
Delegated to: Thomas Monjalon
Headers show
Series
  • [v1] doc: rework vm power manager user guide
Related show

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/travis-robot success Travis build: passed
ci/checkpatch success coding style OK

Commit Message

David Hunt Jan. 7, 2020, 9:13 a.m. UTC
Review and re-work of vm_power_manager documentation. Hopefully this
is clearer, easier to follow.

Signed-off-by: David Hunt <david.hunt@intel.com>
---
 .../img/vm_power_mgr_highlevel.svg            | 2189 +++++++++++------
 .../img/vm_power_mgr_vm_request_seq.svg       | 1455 +++++------
 .../sample_app_ug/vm_power_management.rst     | 1194 +++++----
 3 files changed, 2775 insertions(+), 2063 deletions(-)

Comments

Thomas Monjalon Feb. 16, 2020, 11:13 a.m. UTC | #1
07/01/2020 10:13, David Hunt:
> Review and re-work of vm_power_manager documentation. Hopefully this
> is clearer, easier to follow.
> 
> Signed-off-by: David Hunt <david.hunt@intel.com>

checkpatch is reporting a typo done several times:
	s/virutal/virtual/

> ---
>  .../img/vm_power_mgr_highlevel.svg            | 2189 +++++++++++------

This high-level diagram is nice but I disagree about having text blocks.
I think images should be image-only and the text can be in .rst.
It will be easier to update.

Thanks

>  .../img/vm_power_mgr_vm_request_seq.svg       | 1455 +++++------
>  .../sample_app_ug/vm_power_management.rst     | 1194 +++++----
>  3 files changed, 2775 insertions(+), 2063 deletions(-)
David Hunt Feb. 17, 2020, 10:44 a.m. UTC | #2
Hi Thomas,

On 16/2/2020 11:13 AM, Thomas Monjalon wrote:
> 07/01/2020 10:13, David Hunt:
>> Review and re-work of vm_power_manager documentation. Hopefully this
>> is clearer, easier to follow.
>>
>> Signed-off-by: David Hunt <david.hunt@intel.com>
> checkpatch is reporting a typo done several times:
> 	s/virutal/virtual/


Initially, my checkpatch was clean, I even upgraded to using 5.5.4 
kernel, still no hits using checkpatch. It was only when I installed the 
codespell package that I finally saw the typos. New revision coming soon.


>> ---
>>   .../img/vm_power_mgr_highlevel.svg            | 2189 +++++++++++------
> This high-level diagram is nice but I disagree about having text blocks.
> I think images should be image-only and the text can be in .rst.
> It will be easier to update.
>

Good suggestion, I have the rework done, will post soon.


Thanks,

Dave.

Patch
diff mbox series

diff --git a/doc/guides/sample_app_ug/img/vm_power_mgr_highlevel.svg b/doc/guides/sample_app_ug/img/vm_power_mgr_highlevel.svg
index 92f882674..c251bcda6 100644
--- a/doc/guides/sample_app_ug/img/vm_power_mgr_highlevel.svg
+++ b/doc/guides/sample_app_ug/img/vm_power_mgr_highlevel.svg
@@ -1,710 +1,1491 @@ 
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by Microsoft Visio, SVG Export vm_power_mgr_highlevel.svg Page-1 -->
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
 
 <!-- SPDX-License-Identifier: BSD-3-Clause -->
 <!-- Copyright(c) 2014 Intel Corporation -->
 
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"
-		width="7.96928in" height="6.37479in" viewBox="0 0 573.788 458.985" xml:space="preserve" color-interpolation-filters="sRGB"
-		class="st28">
-	<style type="text/css">
-	<![CDATA[
-		.st1 {visibility:visible}
-		.st2 {fill:#464646;fill-opacity:0.5;stroke:#464646;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.5}
-		.st3 {fill:url(#grad0-6);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}
-		.st4 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-weight:bold}
-		.st5 {fill:#464646;fill-opacity:0.5}
-		.st6 {stroke:#464646;stroke-linecap:butt;stroke-opacity:0.5;stroke-width:0.25}
-		.st7 {fill:url(#grad0-15)}
-		.st8 {stroke:#1f497d;stroke-linecap:butt;stroke-width:0.25}
-		.st9 {fill:#464646;fill-opacity:0.5;stroke:#464646;stroke-linecap:butt;stroke-opacity:0.5;visibility:hidden}
-		.st10 {fill:url(#grad0-15);stroke:#1f497d;stroke-linecap:butt;stroke-width:0.25;visibility:hidden}
-		.st11 {fill:#000000;font-family:Arial;font-size:0.666664em;font-weight:bold}
-		.st12 {fill:url(#grad0-15);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}
-		.st13 {fill:#000000;font-family:Arial;font-size:0.666664em}
-		.st14 {font-size:1em}
-		.st15 {fill:url(#grad0-196);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}
-		.st16 {fill:url(#grad0-229);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}
-		.st17 {font-family:Symbol;font-size:1em;font-weight:normal}
-		.st18 {font-size:1em;font-weight:normal}
-		.st19 {fill:url(#grad0-282);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}
-		.st20 {fill:url(#grad0-344);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}
-		.st21 {fill:url(#grad0-357);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}
-		.st22 {fill:url(#grad0-418);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}
-		.st23 {fill:url(#grad0-431);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}
-		.st24 {marker-end:url(#mrkr5-440);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
-		.st25 {fill:#1f497d;fill-opacity:1;stroke:#1f497d;stroke-opacity:1;stroke-width:0.28409090909091}
-		.st26 {marker-end:url(#mrkr5-440);marker-start:url(#mrkr5-460);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
-		.st27 {fill:#ffffff;stroke:none;stroke-linecap:butt;stroke-width:7.2}
-		.st28 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
-	]]>
-	</style>
-
-	<defs id="Patterns_And_Gradients">
-		<linearGradient id="grad0-6" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(90 0.5 0.5)">
-			<stop offset="0" stop-color="#bdd194" stop-opacity="1"/>
-			<stop offset="1" stop-color="#a5c06b" stop-opacity="1"/>
-		</linearGradient>
-		<linearGradient id="grad0-15" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(90 0.5 0.5)">
-			<stop offset="0" stop-color="#b6c8de" stop-opacity="1"/>
-			<stop offset="1" stop-color="#9ab3d1" stop-opacity="1"/>
-		</linearGradient>
-		<linearGradient id="grad0-196" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(90 0.5 0.5)">
-			<stop offset="0" stop-color="#e9f4f8" stop-opacity="1"/>
-			<stop offset="1" stop-color="#e1f1f5" stop-opacity="1"/>
-		</linearGradient>
-		<linearGradient id="grad0-229" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(90 0.5 0.5)">
-			<stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
-			<stop offset="1" stop-color="#ffffff" stop-opacity="1"/>
-		</linearGradient>
-		<linearGradient id="grad0-282" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(90 0.5 0.5)">
-			<stop offset="0" stop-color="#dc9e9c" stop-opacity="1"/>
-			<stop offset="1" stop-color="#ce7977" stop-opacity="1"/>
-		</linearGradient>
-		<linearGradient id="grad0-344" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(90 0.5 0.5)">
-			<stop offset="0" stop-color="#b6cc88" stop-opacity="1"/>
-			<stop offset="1" stop-color="#a5c06b" stop-opacity="1"/>
-		</linearGradient>
-		<linearGradient id="grad0-357" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(90 0.5 0.5)">
-			<stop offset="0" stop-color="#fab781" stop-opacity="1"/>
-			<stop offset="1" stop-color="#f89c52" stop-opacity="1"/>
-		</linearGradient>
-		<linearGradient id="grad0-418" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(90 0.5 0.5)">
-			<stop offset="0" stop-color="#acc8ea" stop-opacity="1"/>
-			<stop offset="1" stop-color="#8db3e2" stop-opacity="1"/>
-		</linearGradient>
-		<linearGradient id="grad0-431" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(90 0.5 0.5)">
-			<stop offset="0" stop-color="#e2e2e2" stop-opacity="1"/>
-			<stop offset="1" stop-color="#d8d8d8" stop-opacity="1"/>
-		</linearGradient>
-		<linearGradient id="grad0-437" x1="0" y1="0" x2="1" y2="0" gradientTransform="rotate(90 0.5 0.5)">
-			<stop offset="0" stop-color="#c4d2e3" stop-opacity="1"/>
-			<stop offset="1" stop-color="#9ab3d1" stop-opacity="1"/>
-		</linearGradient>
-	</defs>
-	<defs id="Markers">
-		<g id="lend5">
-			<path d="M 2 1 L 0 0 L 1.98117 -0.993387 C 1.67173 -0.364515 1.67301 0.372641 1.98465 1.00043 " style="stroke:none"/>
-		</g>
-		<marker id="mrkr5-440" class="st25" refX="-6.16" orient="auto" markerUnits="strokeWidth" overflow="visible">
-			<use xlink:href="#lend5" transform="scale(-3.52,-3.52) "/>
-		</marker>
-		<marker id="mrkr5-460" class="st25" refX="5.8" orient="auto" markerUnits="strokeWidth" overflow="visible">
-			<use xlink:href="#lend5" transform="scale(3.52) "/>
-		</marker>
-	</defs>
-	<g>
-		<title>Page-1</title>
-		<g id="shape1-1" transform="translate(18.3,-19.74)">
-			<title>Box</title>
-			<desc>Host</desc>
-			<g id="shadow1-2" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="239.3" width="405.354" height="219.685" class="st2"/>
-			</g>
-			<rect x="0" y="239.3" width="405.354" height="219.685" class="st3"/>
-			<text x="191.19" y="451.39" class="st4">Host</text>		</g>
-		<g id="group59-8" transform="translate(585.399,54.9035) rotate(76.5904)">
-			<title>1-D single.59</title>
-			<g id="shape63-9">
-				<title>Sheet.63</title>
-				<g id="shadow63-10" transform="matrix(1,0,0,1,1.73469,-1.06679)" class="st1">
-					<path d="M0 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L0 450.48
-								 L0 456.15 Z" class="st5"/>
-					<path d="M0 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L0 450.48"
-							class="st6"/>
-				</g>
-				<path d="M0 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180 0 0
-							 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585 0.334585
-							 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L0 450.48 L0 456.15
-							 Z" class="st7"/>
-				<path d="M0 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180 0 0
-							 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585 0.334585
-							 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L0 450.48" class="st8"/>
-			</g>
-			<g id="shape64-17">
-				<title>Sheet.64</title>
-				<g id="shadow64-18" transform="matrix(1,0,0,1,1.73469,-1.06679)" class="st1">
-					<path d="M2.83 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L2.83 450.48
-								 A2.83465 2.83465 -180 0 0 0 453.32 L0 453.32 A2.83465 2.83465 -180 0 0 2.83 456.15" class="st6"/>
-				</g>
-				<path d="M2.83 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180
-							 0 0 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585
-							 0.334585 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L2.83 450.48
-							 A2.83465 2.83465 -180 0 0 0 453.32 L0 453.32 A2.83465 2.83465 -180 0 0 2.83 456.15" class="st8"/>
-			</g>
-			<g id="shape65-24" transform="translate(-2.82107,-2.88265)">
-				<title>Sheet.65</title>
-				<g id="shadow65-25" transform="matrix(1,0,0,1,1.73469,-1.06679)" class="st1">
-					<rect x="0" y="453.412" width="1.24186" height="5.57329" rx="0.620928" ry="0.620928" class="st9"/>
-				</g>
-				<rect x="0" y="453.412" width="1.24186" height="5.57329" rx="0.620928" ry="0.620928" class="st10"/>
-			</g>
-		</g>
-		<g id="group54-29" transform="translate(656.289,-75.8304) rotate(58.6472)">
-			<title>1-D single.54</title>
-			<g id="shape56-30">
-				<title>Sheet.56</title>
-				<g id="shadow56-31" transform="matrix(1,0,0,1,1.97897,-0.480491)" class="st1">
-					<path d="M0 456.15 L246.36 456.15 A1.41732 1.41732 0 0 1 247.78 457.57 L247.78 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L249.19 456.15 A6.33846 6.33846 -180 0 0 249.19 450.48 L248.41 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L247.78 449.06 A1.41732 1.41732 0 0 1 246.36 450.48 L0 450.48
-								 L0 456.15 Z" class="st5"/>
-					<path d="M0 456.15 L246.36 456.15 A1.41732 1.41732 0 0 1 247.78 457.57 L247.78 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L249.19 456.15 A6.33846 6.33846 -180 0 0 249.19 450.48 L248.41 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L247.78 449.06 A1.41732 1.41732 0 0 1 246.36 450.48 L0 450.48"
-							class="st6"/>
-				</g>
-				<path d="M0 456.15 L246.36 456.15 A1.41732 1.41732 0 0 1 247.78 457.57 L247.78 457.57 a0.334585 0.334585 -180 0 0
-							 0.633846 0.149631 L249.19 456.15 A6.33846 6.33846 -180 0 0 249.19 450.48 L248.41 448.91 a0.334585 0.334585
-							 -180 0 0 -0.633846 0.149631 L247.78 449.06 A1.41732 1.41732 0 0 1 246.36 450.48 L0 450.48 L0 456.15
-							 Z" class="st7"/>
-				<path d="M0 456.15 L246.36 456.15 A1.41732 1.41732 0 0 1 247.78 457.57 L247.78 457.57 a0.334585 0.334585 -180 0 0
-							 0.633846 0.149631 L249.19 456.15 A6.33846 6.33846 -180 0 0 249.19 450.48 L248.41 448.91 a0.334585 0.334585
-							 -180 0 0 -0.633846 0.149631 L247.78 449.06 A1.41732 1.41732 0 0 1 246.36 450.48 L0 450.48" class="st8"/>
-			</g>
-			<g id="shape57-37">
-				<title>Sheet.57</title>
-				<g id="shadow57-38" transform="matrix(1,0,0,1,1.97897,-0.480491)" class="st1">
-					<path d="M2.83 456.15 L246.36 456.15 A1.41732 1.41732 0 0 1 247.78 457.57 L247.78 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L249.19 456.15 A6.33846 6.33846 -180 0 0 249.19 450.48 L248.41 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L247.78 449.06 A1.41732 1.41732 0 0 1 246.36 450.48 L2.83 450.48
-								 A2.83465 2.83465 -180 0 0 0 453.32 L0 453.32 A2.83465 2.83465 -180 0 0 2.83 456.15" class="st6"/>
-				</g>
-				<path d="M2.83 456.15 L246.36 456.15 A1.41732 1.41732 0 0 1 247.78 457.57 L247.78 457.57 a0.334585 0.334585 -180
-							 0 0 0.633846 0.149631 L249.19 456.15 A6.33846 6.33846 -180 0 0 249.19 450.48 L248.41 448.91 a0.334585
-							 0.334585 -180 0 0 -0.633846 0.149631 L247.78 449.06 A1.41732 1.41732 0 0 1 246.36 450.48 L2.83 450.48
-							 A2.83465 2.83465 -180 0 0 0 453.32 L0 453.32 A2.83465 2.83465 -180 0 0 2.83 456.15" class="st8"/>
-			</g>
-			<g id="shape58-44" transform="translate(-3.21337,-2.88265)">
-				<title>Sheet.58</title>
-				<g id="shadow58-45" transform="matrix(1,0,0,1,1.97897,-0.480491)" class="st1">
-					<rect x="0" y="453.412" width="1.41455" height="5.57329" rx="0.707276" ry="0.707276" class="st9"/>
-				</g>
-				<rect x="0" y="453.412" width="1.41455" height="5.57329" rx="0.707276" ry="0.707276" class="st10"/>
-			</g>
-		</g>
-		<g id="shape10-49" transform="translate(18.3,-298.953)">
-			<title>Box.10</title>
-			<desc>VM 0</desc>
-			<g id="shadow10-50" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="317.253" width="201.26" height="141.732" class="st2"/>
-			</g>
-			<rect x="0" y="317.253" width="201.26" height="141.732" class="st3"/>
-			<text x="91.29" y="414.52" class="st11">VM 0</text>		</g>
-		<g id="shape2-55" transform="translate(18.3,-48.7951)">
-			<title>Box.2</title>
-			<desc>Core 0</desc>
-			<g id="shadow2-56" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="422.843" width="48.189" height="36.1417" class="st2"/>
-			</g>
-			<rect x="0" y="422.843" width="48.189" height="36.1417" class="st12"/>
-			<text x="12.09" y="443.31" class="st13">Core 0</text>		</g>
-		<g id="shape3-61" transform="translate(69.3236,-48.7951)">
-			<title>Box.3</title>
-			<desc>Core 1</desc>
-			<g id="shadow3-62" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="422.843" width="48.189" height="36.1417" class="st2"/>
-			</g>
-			<rect x="0" y="422.843" width="48.189" height="36.1417" class="st12"/>
-			<text x="12.09" y="443.31" class="st13">Core 1</text>		</g>
-		<g id="shape4-67" transform="translate(120.347,-48.7951)">
-			<title>Box.4</title>
-			<desc>Core 2</desc>
-			<g id="shadow4-68" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="422.843" width="48.189" height="36.1417" class="st2"/>
-			</g>
-			<rect x="0" y="422.843" width="48.189" height="36.1417" class="st12"/>
-			<text x="12.09" y="443.31" class="st13">Core 2</text>		</g>
-		<g id="shape5-73" transform="translate(171.371,-48.7951)">
-			<title>Box.5</title>
-			<desc>Core 3</desc>
-			<g id="shadow5-74" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="422.843" width="48.189" height="36.1417" class="st2"/>
-			</g>
-			<rect x="0" y="422.843" width="48.189" height="36.1417" class="st12"/>
-			<text x="12.09" y="443.31" class="st13">Core 3</text>		</g>
-		<g id="shape6-79" transform="translate(222.394,-48.7951)">
-			<title>Box.6</title>
-			<desc>Core 4</desc>
-			<g id="shadow6-80" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="422.843" width="48.189" height="36.1417" class="st2"/>
-			</g>
-			<rect x="0" y="422.843" width="48.189" height="36.1417" class="st12"/>
-			<text x="12.09" y="443.31" class="st13">Core 4</text>		</g>
-		<g id="shape7-85" transform="translate(273.418,-48.7951)">
-			<title>Box.7</title>
-			<desc>Core 5</desc>
-			<g id="shadow7-86" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="422.843" width="48.189" height="36.1417" class="st2"/>
-			</g>
-			<rect x="0" y="422.843" width="48.189" height="36.1417" class="st12"/>
-			<text x="12.09" y="443.31" class="st13">Core 5</text>		</g>
-		<g id="shape8-91" transform="translate(324.442,-48.7951)">
-			<title>Box.8</title>
-			<desc>Core 6</desc>
-			<g id="shadow8-92" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="422.843" width="48.189" height="36.1417" class="st2"/>
-			</g>
-			<rect x="0" y="422.843" width="48.189" height="36.1417" class="st12"/>
-			<text x="12.09" y="443.31" class="st13">Core 6</text>		</g>
-		<g id="shape9-97" transform="translate(375.465,-48.7951)">
-			<title>Box.9</title>
-			<desc>Core 7</desc>
-			<g id="shadow9-98" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="422.843" width="48.189" height="36.1417" class="st2"/>
-			</g>
-			<rect x="0" y="422.843" width="48.189" height="36.1417" class="st12"/>
-			<text x="12.09" y="443.31" class="st13">Core 7</text>		</g>
-		<g id="shape11-103" transform="translate(18.3,-298.953)">
-			<title>Box.11</title>
-			<desc>Virtual Core 0</desc>
-			<g id="shadow11-104" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="422.843" width="48.189" height="36.1417" class="st2"/>
-			</g>
-			<rect x="0" y="422.843" width="48.189" height="36.1417" class="st12"/>
-			<text x="12.76" y="438.51" class="st13">Virtual <tspan x="12.09" dy="1.2em" class="st14">Core </tspan>0</text>		</g>
-		<g id="shape12-110" transform="translate(69.3236,-298.953)">
-			<title>Box.12</title>
-			<desc>Virtual Core 1</desc>
-			<g id="shadow12-111" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="422.843" width="48.189" height="36.1417" class="st2"/>
-			</g>
-			<rect x="0" y="422.843" width="48.189" height="36.1417" class="st12"/>
-			<text x="12.76" y="438.51" class="st13">Virtual <tspan x="12.09" dy="1.2em" class="st14">Core </tspan>1</text>		</g>
-		<g id="shape13-117" transform="translate(120.347,-298.953)">
-			<title>Box.13</title>
-			<desc>Virtual Core 2</desc>
-			<g id="shadow13-118" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="422.843" width="48.189" height="36.1417" class="st2"/>
-			</g>
-			<rect x="0" y="422.843" width="48.189" height="36.1417" class="st12"/>
-			<text x="12.76" y="438.51" class="st13">Virtual <tspan x="12.09" dy="1.2em" class="st14">Core </tspan>2</text>		</g>
-		<g id="shape14-124" transform="translate(171.371,-298.953)">
-			<title>Box.14</title>
-			<desc>Virtual Core 3</desc>
-			<g id="shadow14-125" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="422.843" width="48.189" height="36.1417" class="st2"/>
-			</g>
-			<rect x="0" y="422.843" width="48.189" height="36.1417" class="st12"/>
-			<text x="12.76" y="438.51" class="st13">Virtual <tspan x="12.09" dy="1.2em" class="st14">Core </tspan>3</text>		</g>
-		<g id="group16-131" transform="translate(333.737,-187.264) rotate(39.9929)">
-			<title>1-D single</title>
-			<g id="shape17-132">
-				<title>Sheet.17</title>
-				<g id="shadow17-133" transform="matrix(1,0,0,1,2.0287,0.177741)" class="st1">
-					<path d="M0 456.15 L328.75 456.15 A1.41732 1.41732 0 0 1 330.16 457.57 L330.16 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L331.58 456.15 A6.33846 6.33846 -180 0 0 331.58 450.48 L330.8 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L330.16 449.06 A1.41732 1.41732 0 0 1 328.75 450.48 L0 450.48
-								 L0 456.15 Z" class="st5"/>
-					<path d="M0 456.15 L328.75 456.15 A1.41732 1.41732 0 0 1 330.16 457.57 L330.16 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L331.58 456.15 A6.33846 6.33846 -180 0 0 331.58 450.48 L330.8 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L330.16 449.06 A1.41732 1.41732 0 0 1 328.75 450.48 L0 450.48"
-							class="st6"/>
-				</g>
-				<path d="M0 456.15 L328.75 456.15 A1.41732 1.41732 0 0 1 330.16 457.57 L330.16 457.57 a0.334585 0.334585 -180 0 0
-							 0.633846 0.149631 L331.58 456.15 A6.33846 6.33846 -180 0 0 331.58 450.48 L330.8 448.91 a0.334585 0.334585
-							 -180 0 0 -0.633846 0.149631 L330.16 449.06 A1.41732 1.41732 0 0 1 328.75 450.48 L0 450.48 L0 456.15
-							 Z" class="st7"/>
-				<path d="M0 456.15 L328.75 456.15 A1.41732 1.41732 0 0 1 330.16 457.57 L330.16 457.57 a0.334585 0.334585 -180 0 0
-							 0.633846 0.149631 L331.58 456.15 A6.33846 6.33846 -180 0 0 331.58 450.48 L330.8 448.91 a0.334585 0.334585
-							 -180 0 0 -0.633846 0.149631 L330.16 449.06 A1.41732 1.41732 0 0 1 328.75 450.48 L0 450.48" class="st8"/>
-			</g>
-			<g id="shape18-139">
-				<title>Sheet.18</title>
-				<g id="shadow18-140" transform="matrix(1,0,0,1,2.0287,0.177741)" class="st1">
-					<path d="M2.83 456.15 L328.75 456.15 A1.41732 1.41732 0 0 1 330.16 457.57 L330.16 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L331.58 456.15 A6.33846 6.33846 -180 0 0 331.58 450.48 L330.8 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L330.16 449.06 A1.41732 1.41732 0 0 1 328.75 450.48 L2.83 450.48
-								 A2.83465 2.83465 -180 0 0 0 453.32 L0 453.32 A2.83465 2.83465 -180 0 0 2.83 456.15" class="st6"/>
-				</g>
-				<path d="M2.83 456.15 L328.75 456.15 A1.41732 1.41732 0 0 1 330.16 457.57 L330.16 457.57 a0.334585 0.334585 -180
-							 0 0 0.633846 0.149631 L331.58 456.15 A6.33846 6.33846 -180 0 0 331.58 450.48 L330.8 448.91 a0.334585
-							 0.334585 -180 0 0 -0.633846 0.149631 L330.16 449.06 A1.41732 1.41732 0 0 1 328.75 450.48 L2.83 450.48
-							 A2.83465 2.83465 -180 0 0 0 453.32 L0 453.32 A2.83465 2.83465 -180 0 0 2.83 456.15" class="st8"/>
-			</g>
-			<g id="shape19-146" transform="translate(-4.26978,-2.88265)">
-				<title>Sheet.19</title>
-				<g id="shadow19-147" transform="matrix(1,0,0,1,2.0287,0.177741)" class="st1">
-					<rect x="0" y="453.412" width="1.87959" height="5.57329" rx="0.939796" ry="0.939796" class="st9"/>
-				</g>
-				<rect x="0" y="453.412" width="1.87959" height="5.57329" rx="0.939796" ry="0.939796" class="st10"/>
-			</g>
-		</g>
-		<g id="group20-151" transform="translate(534.375,54.9035) rotate(76.5904)">
-			<title>1-D single.20</title>
-			<g id="shape21-152">
-				<title>Sheet.21</title>
-				<g id="shadow21-153" transform="matrix(1,0,0,1,1.73469,-1.06679)" class="st1">
-					<path d="M0 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L0 450.48
-								 L0 456.15 Z" class="st5"/>
-					<path d="M0 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L0 450.48"
-							class="st6"/>
-				</g>
-				<path d="M0 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180 0 0
-							 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585 0.334585
-							 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L0 450.48 L0 456.15
-							 Z" class="st7"/>
-				<path d="M0 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180 0 0
-							 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585 0.334585
-							 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L0 450.48" class="st8"/>
-			</g>
-			<g id="shape22-159">
-				<title>Sheet.22</title>
-				<g id="shadow22-160" transform="matrix(1,0,0,1,1.73469,-1.06679)" class="st1">
-					<path d="M2.83 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L2.83 450.48
-								 A2.83465 2.83465 -180 0 0 0 453.32 L0 453.32 A2.83465 2.83465 -180 0 0 2.83 456.15" class="st6"/>
-				</g>
-				<path d="M2.83 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180
-							 0 0 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585
-							 0.334585 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L2.83 450.48
-							 A2.83465 2.83465 -180 0 0 0 453.32 L0 453.32 A2.83465 2.83465 -180 0 0 2.83 456.15" class="st8"/>
-			</g>
-			<g id="shape23-166" transform="translate(-2.82107,-2.88265)">
-				<title>Sheet.23</title>
-				<g id="shadow23-167" transform="matrix(1,0,0,1,1.73469,-1.06679)" class="st1">
-					<rect x="0" y="453.412" width="1.24186" height="5.57329" rx="0.620928" ry="0.620928" class="st9"/>
-				</g>
-				<rect x="0" y="453.412" width="1.24186" height="5.57329" rx="0.620928" ry="0.620928" class="st10"/>
-			</g>
-		</g>
-		<g id="group28-171" transform="translate(636.422,54.9035) rotate(76.5904)">
-			<title>1-D single.28</title>
-			<g id="shape29-172">
-				<title>Sheet.29</title>
-				<g id="shadow29-173" transform="matrix(1,0,0,1,1.73469,-1.06679)" class="st1">
-					<path d="M0 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L0 450.48
-								 L0 456.15 Z" class="st5"/>
-					<path d="M0 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L0 450.48"
-							class="st6"/>
-				</g>
-				<path d="M0 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180 0 0
-							 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585 0.334585
-							 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L0 450.48 L0 456.15
-							 Z" class="st7"/>
-				<path d="M0 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180 0 0
-							 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585 0.334585
-							 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L0 450.48" class="st8"/>
-			</g>
-			<g id="shape30-179">
-				<title>Sheet.30</title>
-				<g id="shadow30-180" transform="matrix(1,0,0,1,1.73469,-1.06679)" class="st1">
-					<path d="M2.83 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L2.83 450.48
-								 A2.83465 2.83465 -180 0 0 0 453.32 L0 453.32 A2.83465 2.83465 -180 0 0 2.83 456.15" class="st6"/>
-				</g>
-				<path d="M2.83 456.15 L215.76 456.15 A1.41732 1.41732 0 0 1 217.18 457.57 L217.18 457.57 a0.334585 0.334585 -180
-							 0 0 0.633846 0.149631 L218.6 456.15 A6.33846 6.33846 -180 0 0 218.6 450.48 L217.81 448.91 a0.334585
-							 0.334585 -180 0 0 -0.633846 0.149631 L217.18 449.06 A1.41732 1.41732 0 0 1 215.76 450.48 L2.83 450.48
-							 A2.83465 2.83465 -180 0 0 0 453.32 L0 453.32 A2.83465 2.83465 -180 0 0 2.83 456.15" class="st8"/>
-			</g>
-			<g id="shape31-186" transform="translate(-2.82107,-2.88265)">
-				<title>Sheet.31</title>
-				<g id="shadow31-187" transform="matrix(1,0,0,1,1.73469,-1.06679)" class="st1">
-					<rect x="0" y="453.412" width="1.24186" height="5.57329" rx="0.620928" ry="0.620928" class="st9"/>
-				</g>
-				<rect x="0" y="453.412" width="1.24186" height="5.57329" rx="0.620928" ry="0.620928" class="st10"/>
-			</g>
-		</g>
-		<g id="shape32-191" transform="translate(18.3,-417.299)">
-			<title>Box.32</title>
-			<desc>DPDK Application</desc>
-			<g id="shadow32-192" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="435.599" width="201.26" height="23.3858" class="st2"/>
-			</g>
-			<rect x="0" y="435.599" width="201.26" height="23.3858" class="st15"/>
-			<text x="68.84" y="446.8" class="st13">DPDK Application</text>		</g>
-		<g id="shape33-198" transform="translate(245.072,-298.953)">
-			<title>Box.33</title>
-			<desc>VM 1</desc>
-			<g id="shadow33-199" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="317.253" width="99.2126" height="141.732" class="st2"/>
-			</g>
-			<rect x="0" y="317.253" width="99.2126" height="141.732" class="st3"/>
-			<text x="40.27" y="414.52" class="st11">VM 1</text>		</g>
-		<g id="shape34-204" transform="translate(245.072,-298.953)">
-			<title>Box.34</title>
-			<desc>Virtual Core 0</desc>
-			<g id="shadow34-205" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="422.843" width="48.189" height="36.1417" class="st2"/>
-			</g>
-			<rect x="0" y="422.843" width="48.189" height="36.1417" class="st12"/>
-			<text x="12.76" y="438.51" class="st13">Virtual <tspan x="12.09" dy="1.2em" class="st14">Core </tspan>0</text>		</g>
-		<g id="shape35-211" transform="translate(296.095,-298.953)">
-			<title>Box.35</title>
-			<desc>Virtual Core 1</desc>
-			<g id="shadow35-212" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="422.843" width="48.189" height="36.1417" class="st2"/>
-			</g>
-			<rect x="0" y="422.843" width="48.189" height="36.1417" class="st12"/>
-			<text x="12.76" y="438.51" class="st13">Virtual <tspan x="12.09" dy="1.2em" class="st14">Core </tspan>1</text>		</g>
-		<g id="shape36-218" transform="translate(245.072,-417.299)">
-			<title>Box.36</title>
-			<desc>DPDK Application</desc>
-			<g id="shadow36-219" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="435.599" width="99.2126" height="23.3858" class="st2"/>
-			</g>
-			<rect x="0" y="435.599" width="99.2126" height="23.3858" class="st15"/>
-			<text x="17.81" y="446.8" class="st13">DPDK Application</text>		</g>
-		<g id="shape49-224" transform="translate(372.631,-334.488)">
-			<title>Box.49</title>
-			<desc>DPDK VM Application Reuse librte_power interface, but provide...</desc>
-			<g id="shadow49-225" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="352.788" width="175.748" height="106.197" class="st2"/>
-			</g>
-			<rect x="0" y="352.788" width="175.748" height="106.197" class="st16"/>
-			<text x="4" y="363.99" class="st11">DPDK VM Application <tspan x="4" dy="1.212em" class="st17">·</tspan><tspan
-						class="st17"> </tspan><tspan class="st18">Reuse </tspan>librte_power<tspan class="st18"> </tspan><tspan
-						class="st18">interface</tspan><tspan class="st18">, </tspan><tspan class="st18">but </tspan><tspan x="22"
-						dy="1.204em" class="st18">provides a new implementation that </tspan><tspan x="22" dy="1.2em" class="st18">forwards frequency set requests to host </tspan><tspan
-						x="22" dy="1.2em" class="st18">via Virtio</tspan><tspan class="st18">-</tspan><tspan class="st18">Serial channel </tspan><tspan
-						x="4" dy="1.212em" class="st17">·</tspan><tspan class="st17"> </tspan><tspan class="st18">Each lcore has exclusive access to a </tspan><tspan
-						x="22" dy="1.204em" class="st18">single channel </tspan><tspan x="4" dy="1.212em" class="st17">·</tspan><tspan
-						class="st17"> </tspan><tspan class="st18">Sample application re</tspan><tspan class="st18">-</tspan><tspan
-						class="st18">uses </tspan>l3fwd_power <tspan x="4" dy="1.216em" class="st17">·</tspan><tspan class="st17"> </tspan><tspan
-						class="st18">A CLI for changing frequency from within </tspan><tspan x="22" dy="1.204em" class="st18">a VM is also included</tspan><tspan
-						class="st18">.</tspan></text>		</g>
-		<g id="group37-257" transform="translate(769.581,100.51) rotate(82.4551)">
-			<title>1-D single.37</title>
-			<g id="shape38-258">
-				<title>Sheet.38</title>
-				<g id="shadow38-259" transform="matrix(1,0,0,1,1.61661,-1.23846)" class="st1">
-					<path d="M0 456.15 L211.63 456.15 A1.41732 1.41732 0 0 1 213.05 457.57 L213.05 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L214.47 456.15 A6.33846 6.33846 -180 0 0 214.47 450.48 L213.68 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L213.05 449.06 A1.41732 1.41732 0 0 1 211.63 450.48 L0 450.48
-								 L0 456.15 Z" class="st5"/>
-					<path d="M0 456.15 L211.63 456.15 A1.41732 1.41732 0 0 1 213.05 457.57 L213.05 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L214.47 456.15 A6.33846 6.33846 -180 0 0 214.47 450.48 L213.68 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L213.05 449.06 A1.41732 1.41732 0 0 1 211.63 450.48 L0 450.48"
-							class="st6"/>
-				</g>
-				<path d="M0 456.15 L211.63 456.15 A1.41732 1.41732 0 0 1 213.05 457.57 L213.05 457.57 a0.334585 0.334585 -180 0 0
-							 0.633846 0.149631 L214.47 456.15 A6.33846 6.33846 -180 0 0 214.47 450.48 L213.68 448.91 a0.334585 0.334585
-							 -180 0 0 -0.633846 0.149631 L213.05 449.06 A1.41732 1.41732 0 0 1 211.63 450.48 L0 450.48 L0 456.15
-							 Z" class="st7"/>
-				<path d="M0 456.15 L211.63 456.15 A1.41732 1.41732 0 0 1 213.05 457.57 L213.05 457.57 a0.334585 0.334585 -180 0 0
-							 0.633846 0.149631 L214.47 456.15 A6.33846 6.33846 -180 0 0 214.47 450.48 L213.68 448.91 a0.334585 0.334585
-							 -180 0 0 -0.633846 0.149631 L213.05 449.06 A1.41732 1.41732 0 0 1 211.63 450.48 L0 450.48" class="st8"/>
-			</g>
-			<g id="shape39-265">
-				<title>Sheet.39</title>
-				<g id="shadow39-266" transform="matrix(1,0,0,1,1.61661,-1.23846)" class="st1">
-					<path d="M2.83 456.15 L211.63 456.15 A1.41732 1.41732 0 0 1 213.05 457.57 L213.05 457.57 a0.334585 0.334585 -180
-								 0 0 0.633846 0.149631 L214.47 456.15 A6.33846 6.33846 -180 0 0 214.47 450.48 L213.68 448.91 a0.334585
-								 0.334585 -180 0 0 -0.633846 0.149631 L213.05 449.06 A1.41732 1.41732 0 0 1 211.63 450.48 L2.83 450.48
-								 A2.83465 2.83465 -180 0 0 0 453.32 L0 453.32 A2.83465 2.83465 -180 0 0 2.83 456.15" class="st6"/>
-				</g>
-				<path d="M2.83 456.15 L211.63 456.15 A1.41732 1.41732 0 0 1 213.05 457.57 L213.05 457.57 a0.334585 0.334585 -180
-							 0 0 0.633846 0.149631 L214.47 456.15 A6.33846 6.33846 -180 0 0 214.47 450.48 L213.68 448.91 a0.334585
-							 0.334585 -180 0 0 -0.633846 0.149631 L213.05 449.06 A1.41732 1.41732 0 0 1 211.63 450.48 L2.83 450.48
-							 A2.83465 2.83465 -180 0 0 0 453.32 L0 453.32 A2.83465 2.83465 -180 0 0 2.83 456.15" class="st8"/>
-			</g>
-			<g id="shape40-272" transform="translate(-2.76812,-2.88265)">
-				<title>Sheet.40</title>
-				<g id="shadow40-273" transform="matrix(1,0,0,1,1.61661,-1.23846)" class="st1">
-					<rect x="0" y="453.412" width="1.21855" height="5.57329" rx="0.609275" ry="0.609275" class="st9"/>
-				</g>
-				<rect x="0" y="453.412" width="1.21855" height="5.57329" rx="0.609275" ry="0.609275" class="st10"/>
-			</g>
-		</g>
-		<g id="shape15-277" transform="translate(18.3,-99.8187)">
-			<title>Box.15</title>
-			<desc>OS/Hypervisor</desc>
-			<g id="shadow15-278" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="319.379" width="405.354" height="139.606" class="st2"/>
-			</g>
-			<rect x="0" y="319.379" width="405.354" height="139.606" class="st19"/>
-			<text x="174.89" y="452.58" class="st11">OS/Hypervisor</text>		</g>
-		<g id="shape55-284" transform="translate(237.985,-159.346)">
-			<title>Box.55</title>
-			<desc>Linux “userspace” power governor /sys/devices/system/cpu/cpuN...</desc>
-			<g id="shadow55-285" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="430.638" width="167.244" height="28.3465" class="st2"/>
-			</g>
-			<rect x="0" y="430.638" width="167.244" height="28.3465" class="st19"/>
-			<text x="16.72" y="441.84" class="st11">Linux “userspace” power governor <tspan x="8.93" dy="1.2em" class="st14">/</tspan>sys/devices/system/cpu/cpuN/cpufreq/</text>		</g>
-		<g id="shape45-291" transform="translate(429.324,-60.1337)">
-			<title>Box.45</title>
-			<desc>VM Power Monitor Accepts VM Commands over Virtio Serial endpo...</desc>
-			<g id="shadow45-292" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="254.89" width="130.519" height="204.094" class="st2"/>
-			</g>
-			<rect x="0" y="254.89" width="130.519" height="204.094" class="st16"/>
-			<text x="4" y="266.09" class="st11">VM Power Monitor <tspan x="4" dy="1.212em" class="st17">·</tspan><tspan
-						class="st17"> </tspan><tspan class="st18">Accepts VM Commands over </tspan><tspan x="22" dy="1.204em"
-						class="st18">Virtio Serial endpoints</tspan><tspan class="st18">, </tspan><tspan x="22" dy="1.2em"
-						class="st18">monitored via </tspan>epoll <tspan x="4" dy="1.212em" class="st17">·</tspan><tspan
-						class="st17"> </tspan><tspan class="st18">Commands include the </tspan><tspan x="22" dy="1.204em"
-						class="st18">virtual core to be modified</tspan><tspan class="st18">, </tspan><tspan x="22" dy="1.2em"
-						class="st18">using </tspan>libvirt <tspan class="st18">to get physical </tspan><tspan x="22" dy="1.2em"
-						class="st18">core mapping </tspan><tspan x="4" dy="1.212em" class="st17">·</tspan><tspan class="st17"> </tspan><tspan
-						class="st18">Uses librte</tspan><tspan class="st18">_</tspan><tspan class="st18">power to affect </tspan><tspan
-						x="22" dy="1.204em" class="st18">frequency changes via Linux </tspan><tspan x="22" dy="1.2em" class="st18">userspace power </tspan><tspan
-						x="22" dy="1.2em" class="st18">governor</tspan><tspan class="st18">(</tspan><tspan class="st18">APCI cpufreq</tspan><tspan
-						class="st18">) </tspan><tspan x="4" dy="1.212em" class="st17">·</tspan><tspan class="st17"> </tspan><tspan
-						class="st18">CLI</tspan><tspan class="st18">: </tspan><tspan class="st18">For adding VM channels </tspan><tspan
-						x="22" dy="1.204em" class="st18">to monitor</tspan><tspan class="st18">, </tspan><tspan class="st18">inspecting and </tspan><tspan
-						x="22" dy="1.2em" class="st18">changing channel state</tspan><tspan class="st18">, </tspan><tspan x="22"
-						dy="1.2em" class="st18">manually altering CPU </tspan><tspan x="22" dy="1.2em" class="st18">frequency</tspan><tspan
-						class="st18">. </tspan><tspan class="st18">Also allows for the </tspan><tspan x="22" dy="1.2em"
-						class="st18">changing of vCPU to pCPU </tspan><tspan x="22" dy="1.2em" class="st18">pinning</tspan><tspan
-						class="st18">.</tspan></text>		</g>
-		<g id="shape53-339" transform="translate(26.8039,-116.827)">
-			<title>Box.53</title>
-			<desc>VM Power Monitor Application</desc>
-			<g id="shadow53-340" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="342.41" width="150.236" height="116.575" class="st2"/>
-			</g>
-			<rect x="0" y="342.41" width="150.236" height="116.575" class="st20"/>
-			<text x="17.34" y="452.58" class="st11">VM Power Monitor Application</text>		</g>
-		<g id="shape61-346" transform="translate(18.3,-396.394)">
-			<title>Box.61</title>
-			<desc>librte_power(vm)</desc>
-			<g id="shadow61-347" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="438.079" width="201.26" height="20.9055" class="st2"/>
-			</g>
-			<rect x="0" y="438.079" width="201.26" height="20.9055" class="st20"/>
-			<text x="70.84" y="450.93" class="st13">librte_power(vm)</text>		</g>
-		<g id="shape48-352" transform="translate(18.3,-366.275)">
-			<title>Box.48</title>
-			<desc>lcore channel 0</desc>
-			<g id="shadow48-353" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="428.867" width="42.5197" height="30.1181" class="st2"/>
-			</g>
-			<rect x="0" y="428.867" width="42.5197" height="30.1181" class="st21"/>
-			<text x="11.7" y="436.73" class="st11">lcore <tspan x="6.14" dy="1.2em" class="st14">channel  </tspan><tspan x="19.04"
-						dy="1.2em" class="st14">0</tspan></text>		</g>
-		<g id="shape47-361" transform="translate(245.072,-396.394)">
-			<title>Box.47</title>
-			<desc>librte_power(vm)</desc>
-			<g id="shadow47-362" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="438.079" width="99.2126" height="20.9055" class="st2"/>
-			</g>
-			<rect x="0" y="438.079" width="99.2126" height="20.9055" class="st20"/>
-			<text x="19.82" y="450.93" class="st13">librte_power(vm)</text>		</g>
-		<g id="shape46-367" transform="translate(72.1583,-366.275)">
-			<title>Box.46</title>
-			<desc>lcore channel 1</desc>
-			<g id="shadow46-368" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="428.867" width="42.5197" height="30.1181" class="st2"/>
-			</g>
-			<rect x="0" y="428.867" width="42.5197" height="30.1181" class="st21"/>
-			<text x="11.7" y="436.73" class="st11">lcore <tspan x="6.14" dy="1.2em" class="st14">channel  </tspan><tspan x="19.04"
-						dy="1.2em" class="st14">1</tspan></text>		</g>
-		<g id="shape60-375" transform="translate(126.017,-366.275)">
-			<title>Box.60</title>
-			<desc>lcore channel 2</desc>
-			<g id="shadow60-376" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="428.867" width="42.5197" height="30.1181" class="st2"/>
-			</g>
-			<rect x="0" y="428.867" width="42.5197" height="30.1181" class="st21"/>
-			<text x="11.7" y="436.73" class="st11">lcore <tspan x="6.14" dy="1.2em" class="st14">channel  </tspan><tspan x="19.04"
-						dy="1.2em" class="st14">2</tspan></text>		</g>
-		<g id="shape62-383" transform="translate(177.04,-366.275)">
-			<title>Box.62</title>
-			<desc>lcore channel 3</desc>
-			<g id="shadow62-384" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="428.867" width="42.5197" height="30.1181" class="st2"/>
-			</g>
-			<rect x="0" y="428.867" width="42.5197" height="30.1181" class="st21"/>
-			<text x="11.7" y="436.73" class="st11">lcore <tspan x="6.14" dy="1.2em" class="st14">channel  </tspan><tspan x="19.04"
-						dy="1.2em" class="st14">3</tspan></text>		</g>
-		<g id="shape50-391" transform="translate(245.072,-366.275)">
-			<title>Box.50</title>
-			<desc>lcore channel 0</desc>
-			<g id="shadow50-392" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="428.867" width="42.5197" height="30.1181" class="st2"/>
-			</g>
-			<rect x="0" y="428.867" width="42.5197" height="30.1181" class="st21"/>
-			<text x="11.7" y="436.73" class="st11">lcore <tspan x="6.14" dy="1.2em" class="st14">channel  </tspan><tspan x="19.04"
-						dy="1.2em" class="st14">0</tspan></text>		</g>
-		<g id="shape52-399" transform="translate(301.765,-366.275)">
-			<title>Box.52</title>
-			<desc>lcore channel 1</desc>
-			<g id="shadow52-400" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="428.867" width="42.5197" height="30.1181" class="st2"/>
-			</g>
-			<rect x="0" y="428.867" width="42.5197" height="30.1181" class="st21"/>
-			<text x="11.7" y="436.73" class="st11">lcore <tspan x="6.14" dy="1.2em" class="st14">channel  </tspan><tspan x="19.04"
-						dy="1.2em" class="st14">1</tspan></text>		</g>
-		<g id="shape51-407" transform="translate(26.8039,-216.039)">
-			<title>Box.51</title>
-			<desc>Endpoint Monitor(lcore channels)</desc>
-			<g id="shadow51-408" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="441.623" width="141.732" height="17.3622" class="st2"/>
-			</g>
-			<rect x="0" y="441.623" width="141.732" height="17.3622" class="st21"/>
-			<text x="7.09" y="452.82" class="st11">Endpoint Monitor(lcore channels)</text>		</g>
-		<g id="shape25-413" transform="translate(26.8039,-198.854)">
-			<title>Box.25</title>
-			<desc>Channel Manager</desc>
-			<g id="shadow25-414" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="441.623" width="141.732" height="17.3622" class="st2"/>
-			</g>
-			<rect x="0" y="441.623" width="141.732" height="17.3622" class="st22"/>
-			<text x="37.53" y="452.82" class="st11">Channel Manager</text>		</g>
-		<g id="shape41-420" transform="translate(247.906,-215.862)">
-			<title>Box.41</title>
-			<desc>QEMU</desc>
-			<g id="shadow41-421" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="441.623" width="141.732" height="17.3622" class="st2"/>
-			</g>
-			<rect x="0" y="441.623" width="141.732" height="17.3622" class="st21"/>
-			<text x="58.87" y="452.82" class="st11">QEMU</text>		</g>
-		<g id="shape42-426" transform="translate(247.906,-198.854)">
-			<title>Box.42</title>
-			<desc>libvirt</desc>
-			<g id="shadow42-427" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="441.623" width="141.732" height="17.3622" class="st2"/>
-			</g>
-			<rect x="0" y="441.623" width="141.732" height="17.3622" class="st23"/>
-			<text x="59.98" y="452.82" class="st11">libvirt</text>		</g>
-		<g id="shape43-433" transform="translate(168.536,-231.718)">
-			<title>Dynamic connector.43</title>
-			<path d="M0 465.98 L10.63 465.98 L10.63 466.16 L73.21 466.16" class="st24"/>
-		</g>
-		<g id="shape69-441" transform="translate(168.536,-190.527)">
-			<title>Dynamic connector</title>
-			<path d="M0 458.98 L10.63 458.98 L10.63 475.99 L63.29 475.99" class="st24"/>
-		</g>
-		<g id="shape26-447" transform="translate(26.8039,-181.846)">
-			<title>Box.26</title>
-			<desc>librte_power(Host)</desc>
-			<g id="shadow26-448" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="441.623" width="141.732" height="17.3622" class="st2"/>
-			</g>
-			<rect x="0" y="441.623" width="141.732" height="17.3622" class="st19"/>
-			<text x="35.53" y="452.82" class="st11">librte_power(Host)</text>		</g>
-		<g id="shape68-453" transform="translate(168.536,-200.449)">
-			<title>Dynamic connector.68</title>
-			<desc>Map vCPU to pCPU</desc>
-			<path d="M5.8 451.9 L6.16 451.9 L73.21 451.9" class="st26"/>
-			<rect x="4.11883" y="447.099" width="71.1324" height="9.59985" class="st27"/>
-			<text x="4.12" y="454.3" class="st13">Map vCPU to pCPU</text>		</g>
-		<g id="shape27-464" transform="translate(26.8039,-164.838)">
-			<title>Box.27</title>
-			<desc>VM Power CLI</desc>
-			<g id="shadow27-465" transform="matrix(1,0,0,1,1.44,1.44)" class="st1">
-				<rect x="0" y="441.623" width="141.732" height="17.3622" class="st2"/>
-			</g>
-			<rect x="0" y="441.623" width="141.732" height="17.3622" class="st22"/>
-			<text x="44.2" y="452.82" class="st11">VM Power CLI</text>		</g>
-	</g>
+<svg
+   xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="180mm"
+   height="135mm"
+   viewBox="0 0 180 135"
+   version="1.1"
+   id="svg8"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   sodipodi:docname="PM_in_a_Virutal_Env.svg">
+  <defs
+     id="defs2">
+    <marker
+       inkscape:stockid="Arrow2Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5459"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(0.6)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker12961"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend">
+      <path
+         transform="scale(-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path12959"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker12763"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend">
+      <path
+         transform="scale(-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path12761"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker12573"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path12571"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker12395"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path12393"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <linearGradient
+       id="linearGradient12389"
+       osb:paint="solid">
+      <stop
+         style="stop-color:#d07f7d;stop-opacity:1;"
+         offset="0"
+         id="stop12387" />
+    </linearGradient>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6022"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path6020"
+         style="fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Send"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5468"
+         style="fill:#bdb6b6;fill-opacity:1;fill-rule:evenodd;stroke:#bdb6b6;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5462"
+         style="fill:#bdb6b6;fill-opacity:1;fill-rule:evenodd;stroke:#bdb6b6;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="DistanceStart"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="DistanceStart"
+       inkscape:isstock="true">
+      <g
+         id="g2300"
+         style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-opacity:1">
+        <path
+           style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.14999998;stroke-linecap:square;stroke-opacity:1"
+           d="M 0,0 H 2"
+           id="path2306"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-opacity:1"
+           d="M 0,0 13,4 9,0 13,-4 Z"
+           id="path2302"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1;stroke-linecap:square;stroke-opacity:1"
+           d="M 0,-4 V 40"
+           id="path2304"
+           inkscape:connector-curvature="0" />
+      </g>
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker5751"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5749"
+         style="fill:#bdb6b6;fill-opacity:1;fill-rule:evenodd;stroke:#bdb6b6;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5438"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#bdb6b6;fill-opacity:1;fill-rule:evenodd;stroke:#bdb6b6;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path5456"
+         style="fill:#bdb6b6;fill-opacity:1;fill-rule:evenodd;stroke:#bdb6b6;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="DistanceStart-2"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="DistanceStart"
+       inkscape:isstock="true">
+      <g
+         id="g2300-9"
+         style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-opacity:1">
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.14999998;stroke-linecap:square;stroke-opacity:1"
+           d="M 0,0 H 2"
+           id="path2306-7" />
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-opacity:1"
+           d="M 0,0 13,4 9,0 13,-4 Z"
+           id="path2302-1" />
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1;stroke-linecap:square;stroke-opacity:1"
+           d="M 0,-4 V 40"
+           id="path2304-4" />
+      </g>
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6022-2"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path6020-9"
+         style="fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="DistanceStart-8"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="DistanceStart"
+       inkscape:isstock="true">
+      <g
+         id="g2300-8"
+         style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-opacity:1">
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.14999998;stroke-linecap:square;stroke-opacity:1"
+           d="M 0,0 H 2"
+           id="path2306-1" />
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-opacity:1"
+           d="M 0,0 13,4 9,0 13,-4 Z"
+           id="path2302-6" />
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1;stroke-linecap:square;stroke-opacity:1"
+           d="M 0,-4 V 40"
+           id="path2304-7" />
+      </g>
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6022-8"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path6020-3"
+         style="fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="DistanceStart-9"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="DistanceStart"
+       inkscape:isstock="true">
+      <g
+         id="g2300-6"
+         style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-opacity:1">
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.14999998;stroke-linecap:square;stroke-opacity:1"
+           d="M 0,0 H 2"
+           id="path2306-12" />
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-opacity:1"
+           d="M 0,0 13,4 9,0 13,-4 Z"
+           id="path2302-9" />
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1;stroke-linecap:square;stroke-opacity:1"
+           d="M 0,-4 V 40"
+           id="path2304-2" />
+      </g>
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6022-0"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path6020-4"
+         style="fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="DistanceStart-80"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="DistanceStart"
+       inkscape:isstock="true">
+      <g
+         id="g2300-7"
+         style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-opacity:1">
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.14999998;stroke-linecap:square;stroke-opacity:1"
+           d="M 0,0 H 2"
+           id="path2306-8" />
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-opacity:1"
+           d="M 0,0 13,4 9,0 13,-4 Z"
+           id="path2302-0" />
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1;stroke-linecap:square;stroke-opacity:1"
+           d="M 0,-4 V 40"
+           id="path2304-75" />
+      </g>
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6022-3"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path6020-8"
+         style="fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="DistanceStart-89"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="DistanceStart"
+       inkscape:isstock="true">
+      <g
+         id="g2300-0"
+         style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-opacity:1">
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.14999998;stroke-linecap:square;stroke-opacity:1"
+           d="M 0,0 H 2"
+           id="path2306-9" />
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-opacity:1"
+           d="M 0,0 13,4 9,0 13,-4 Z"
+           id="path2302-2" />
+        <path
+           inkscape:connector-curvature="0"
+           style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1;stroke-linecap:square;stroke-opacity:1"
+           d="M 0,-4 V 40"
+           id="path2304-5" />
+      </g>
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker6022-38"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path6020-1"
+         style="fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.9899495"
+     inkscape:cx="546.09427"
+     inkscape:cy="348.57234"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer2"
+     showgrid="false"
+     inkscape:window-width="1920"
+     inkscape:window-height="1137"
+     inkscape:window-x="1912"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata5">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="Drawing"
+     transform="translate(0,-162)">
+    <rect
+       style="opacity:1;fill:#b3ca83;fill-opacity:1;stroke:#000000;stroke-width:0.37057942;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4791"
+       width="33.990398"
+       height="45.425076"
+       x="73.332619"
+       y="164.98018" />
+    <rect
+       style="opacity:1;fill:#b3ca83;fill-opacity:1;stroke:#000000;stroke-width:0.35639697;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4530"
+       width="65.05616"
+       height="45.42617"
+       x="2.9913402"
+       y="164.97824" />
+    <rect
+       style="opacity:0.97000002;fill:#a9c373;fill-opacity:1;stroke:#000000;stroke-width:0.22279529;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4530-7-8"
+       width="127.68393"
+       height="26.879263"
+       x="3.0420432"
+       y="267.96487" />
+    <rect
+       style="opacity:1;fill:#e6f3f7;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4532"
+       width="62.87516"
+       height="7.3101764"
+       x="4.0651102"
+       y="165.93866" />
+    <rect
+       style="opacity:1;fill:#a8c270;fill-opacity:1;stroke:#000000;stroke-width:0.32159171;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4532-2"
+       width="62.906345"
+       height="6.0718322"
+       x="4.0495176"
+       y="173.23325" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="22.865789"
+       y="170.33044"
+       id="text4551"><tspan
+         sodipodi:role="line"
+         id="tspan4549"
+         x="22.865789"
+         y="170.33044"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">DPDK Application</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="24.577578"
+       y="177.17308"
+       id="text4551-6"><tspan
+         sodipodi:role="line"
+         id="tspan4549-8"
+         x="24.577578"
+         y="177.17308"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">librte_power(vm)</tspan></text>
+    <rect
+       style="opacity:1;fill:#f9b278;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4571"
+       width="13.510916"
+       height="10.574122"
+       x="4.0557852"
+       y="179.31134" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="10.65457"
+       y="182.5378"
+       id="text4551-6-1"><tspan
+         sodipodi:role="line"
+         x="10.65457"
+         y="182.5378"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4605">lcore</tspan><tspan
+         sodipodi:role="line"
+         x="10.65457"
+         y="185.36002"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4609">channel</tspan><tspan
+         sodipodi:role="line"
+         x="10.65457"
+         y="188.18224"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593">0</tspan></text>
+    <flowRoot
+       xml:space="preserve"
+       id="flowRoot4595"
+       style="font-style:normal;font-weight:normal;font-size:10.66666698px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"><flowRegion
+         id="flowRegion4597"
+         style="font-size:10.66666698px"><rect
+           id="rect4599"
+           width="7.0710678"
+           height="66.670067"
+           x="116.67262"
+           y="238.13113"
+           style="font-size:10.66666698px" /></flowRegion><flowPara
+         id="flowPara4601" /></flowRoot>    <rect
+       style="opacity:1;fill:#f9b278;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4571-6"
+       width="13.510917"
+       height="10.574122"
+       x="20.706484"
+       y="179.3261" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="27.305269"
+       y="182.55255"
+       id="text4551-6-1-2"><tspan
+         sodipodi:role="line"
+         x="27.305269"
+         y="182.55255"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4605-8">lcore</tspan><tspan
+         sodipodi:role="line"
+         x="27.305269"
+         y="185.37477"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4609-3">channel</tspan><tspan
+         sodipodi:role="line"
+         x="27.305269"
+         y="188.19699"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-5">1</tspan></text>
+    <rect
+       style="opacity:1;fill:#f9b278;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4571-7"
+       width="13.510917"
+       height="10.574122"
+       x="37.544464"
+       y="179.3261" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="44.143246"
+       y="182.55257"
+       id="text4551-6-1-0"><tspan
+         sodipodi:role="line"
+         x="44.143246"
+         y="182.55257"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4605-7">lcore</tspan><tspan
+         sodipodi:role="line"
+         x="44.143246"
+         y="185.37479"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4609-9">channel</tspan><tspan
+         sodipodi:role="line"
+         x="44.143246"
+         y="188.19701"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-0">2</tspan></text>
+    <rect
+       style="opacity:1;fill:#f9b278;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4571-75"
+       width="13.510917"
+       height="10.574122"
+       x="53.444946"
+       y="179.30507" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="60.043732"
+       y="182.53154"
+       id="text4551-6-1-5"><tspan
+         sodipodi:role="line"
+         x="60.043732"
+         y="182.53154"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4605-2">lcore</tspan><tspan
+         sodipodi:role="line"
+         x="60.043732"
+         y="185.35376"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4609-6">channel</tspan><tspan
+         sodipodi:role="line"
+         x="60.043732"
+         y="188.17598"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-02">3</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="35.405739"
+       y="195.69669"
+       id="text4551-6-1-3-2"><tspan
+         sodipodi:role="line"
+         x="35.405739"
+         y="195.69669"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-6-6">VM 0</tspan></text>
+    <rect
+       style="opacity:1;fill:#e6f3f7;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4793"
+       width="31.844494"
+       height="7.3705354"
+       x="74.34877"
+       y="165.90273" />
+    <rect
+       style="opacity:1;fill:#a8c270;fill-opacity:1;stroke:#000000;stroke-width:0.32056567;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4793-5"
+       width="31.876707"
+       height="6.0798306"
+       x="74.332664"
+       y="173.25716" />
+    <rect
+       style="opacity:1;fill:#f9b278;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4571-75-0"
+       width="13.510918"
+       height="10.574122"
+       x="74.332664"
+       y="179.33699" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="80.93145"
+       y="182.56345"
+       id="text4551-6-1-5-9"><tspan
+         sodipodi:role="line"
+         x="80.93145"
+         y="182.56345"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4605-2-2">lcore</tspan><tspan
+         sodipodi:role="line"
+         x="80.93145"
+         y="185.38567"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4609-6-6">channel</tspan><tspan
+         sodipodi:role="line"
+         x="80.93145"
+         y="188.20789"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-02-9">0</tspan></text>
+    <rect
+       style="opacity:1;fill:#f9b278;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4571-75-40"
+       width="13.510918"
+       height="10.574122"
+       x="92.698448"
+       y="179.33699" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="99.297241"
+       y="182.56345"
+       id="text4551-6-1-5-98"><tspan
+         sodipodi:role="line"
+         x="99.297241"
+         y="182.56345"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4605-2-1">lcore</tspan><tspan
+         sodipodi:role="line"
+         x="99.297241"
+         y="185.38567"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4609-6-8">channel</tspan><tspan
+         sodipodi:role="line"
+         x="99.297241"
+         y="188.20789"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-02-4">1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="90.728218"
+       y="195.90175"
+       id="text4551-6-1-3-2-6"><tspan
+         sodipodi:role="line"
+         x="90.728218"
+         y="195.90175"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-6-6-6">VM 1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="79.098969"
+       y="177.21642"
+       id="text4551-6-6"><tspan
+         sodipodi:role="line"
+         id="tspan4549-8-7"
+         x="79.098969"
+         y="177.21642"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">librte_power(vm)</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="78.780937"
+       y="170.79013"
+       id="text4551-2"><tspan
+         sodipodi:role="line"
+         id="tspan4549-0"
+         x="78.780937"
+         y="170.79013"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">DPDK Application</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="115.35013"
+       y="169.63728"
+       id="text4551-2-6"><tspan
+         sodipodi:role="line"
+         id="tspan4549-0-7"
+         x="115.35013"
+         y="169.63728"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:'Arial Bold';stroke-width:0.26458332">DPDK VM Application</tspan><tspan
+         sodipodi:role="line"
+         x="115.35013"
+         y="173.19772"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4984"> • Reuse <tspan
+   style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold'"
+   id="tspan13541">librte_power</tspan> interface, but</tspan><tspan
+         sodipodi:role="line"
+         x="115.35013"
+         y="176.75818"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4986">   provides a new implementation that </tspan><tspan
+         sodipodi:role="line"
+         x="115.35013"
+         y="180.31862"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4988">   forwards frequency set requests to the</tspan><tspan
+         sodipodi:role="line"
+         x="115.35013"
+         y="183.87907"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4990">   host using a Virtio-Serial channel</tspan><tspan
+         sodipodi:role="line"
+         x="115.35013"
+         y="187.43951"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4992"> • Each lcore has exclusive access to a</tspan><tspan
+         sodipodi:role="line"
+         x="115.35013"
+         y="190.99997"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4994">   single channel </tspan><tspan
+         sodipodi:role="line"
+         x="115.35013"
+         y="194.56041"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4996"> • Sample application reuses <tspan
+   style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold'"
+   id="tspan13543">l3fwd_power</tspan></tspan><tspan
+         sodipodi:role="line"
+         x="115.35013"
+         y="198.12086"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4998"> • A CLI for changing frequency from within</tspan><tspan
+         sodipodi:role="line"
+         x="115.35013"
+         y="201.6813"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5000">   a VM is also included.</tspan><tspan
+         sodipodi:role="line"
+         x="115.35013"
+         y="205.24176"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4982" /></text>
+    <rect
+       style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.35572669;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5002"
+       width="56.211514"
+       height="37.133213"
+       x="114.32124"
+       y="165.99869" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="135.61612"
+       y="229.79572"
+       id="text4551-2-6-2"><tspan
+         sodipodi:role="line"
+         id="tspan4549-0-7-8"
+         x="135.61612"
+         y="229.79572"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:'Arial Bold';stroke-width:0.26458332">VM Power Monitor</tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="233.35616"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4990-0"> • Accepts VM commands over</tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="236.91661"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5061">   Virtio Serial endpoints, </tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="240.47705"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5063">   monitored using <tspan
+   style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold'"
+   id="tspan13545">epoll</tspan>.</tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="244.03751"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4992-3"> • Commands include the</tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="247.59795"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4994-5">   virutal core to be modified,</tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="251.1584"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5065">   using <tspan
+   style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold'"
+   id="tspan13547">libvirt</tspan> to get the physical</tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="254.71884"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5067">   core mapping. </tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="258.2793"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4996-5"> • Uses librte_power to affect</tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="261.83975"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5069">   frequency changes using </tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="265.40018"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5071">   Linux userspace power</tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="268.96063"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5073">   governor (APCI cpufreq).</tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="272.52109"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4998-6"> • CLI: For adding VM channels</tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="276.08154"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5000-7">   to monitor, inspecting and </tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="279.64197"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5075">   changing channel state,</tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="283.20242"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5077">   manually altering CPU</tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="286.76288"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5079">   frequency. Also allows for the</tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="290.32333"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5081">   changing of vCPU to pCPU </tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="293.88376"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5083">   pinning.</tspan><tspan
+         sodipodi:role="line"
+         x="135.61612"
+         y="297.44421"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan4982-3" /></text>
+    <rect
+       style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5002-1"
+       width="43.111595"
+       height="69.097458"
+       x="134.19011"
+       y="226.29218" />
+    <rect
+       style="opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5309"
+       width="14.835566"
+       height="11.339286"
+       x="3.8562157"
+       y="274.75986" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="6.5029726"
+       y="281.56589"
+       id="text5313"><tspan
+         sodipodi:role="line"
+         id="tspan5311"
+         x="6.5029726"
+         y="281.56589"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">Core 0</tspan></text>
+    <rect
+       style="opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5309-9"
+       width="14.835566"
+       height="11.339286"
+       x="19.750116"
+       y="274.75986" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="22.396875"
+       y="281.56589"
+       id="text5313-3"><tspan
+         sodipodi:role="line"
+         id="tspan5311-3"
+         x="22.396875"
+         y="281.56589"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">Core 1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="67.413933"
+       y="292.11707"
+       id="text4551-6-1-3-2-3"><tspan
+         sodipodi:role="line"
+         x="67.413933"
+         y="292.11707"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-6-6-9">Host</tspan></text>
+    <path
+       style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.76388884;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-mid:url(#DistanceStart);marker-end:url(#marker6022)"
+       d="m 26.945189,207.4991 16.220549,67.26077"
+       id="path5433"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <rect
+       style="opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5309-9-2"
+       width="14.835566"
+       height="11.339286"
+       x="35.644016"
+       y="274.75986" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="38.290771"
+       y="281.56589"
+       id="text5313-3-7"><tspan
+         sodipodi:role="line"
+         id="tspan5311-3-5"
+         x="38.290771"
+         y="281.56589"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">Core 2</tspan></text>
+    <path
+       style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.76388884;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-mid:url(#DistanceStart-2);marker-end:url(#marker6022-2)"
+       d="m 43.815139,209.27096 15.686009,65.38988"
+       id="path5433-9"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.76388884;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-mid:url(#DistanceStart-8);marker-end:url(#marker6022-8)"
+       d="m 60.162609,209.27096 15.68601,65.38988"
+       id="path5433-5"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.76388884;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-mid:url(#DistanceStart-9);marker-end:url(#marker6022-0)"
+       d="M 9.1777468,207.41628 90.684191,274.56635"
+       id="path5433-6"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.76388884;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-mid:url(#DistanceStart-80);marker-end:url(#marker6022-3)"
+       d="m 81.279275,208.7018 41.733935,66.15255"
+       id="path5433-7"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.76388884;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-mid:url(#DistanceStart-89);marker-end:url(#marker6022-38)"
+       d="m 99.427521,209.36997 7.087049,65.2954"
+       id="path5433-2"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <rect
+       style="opacity:0.9;fill:#d07f7d;fill-opacity:0.96396401;stroke:#000000;stroke-width:0.2724604;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4530-7"
+       width="127.62878"
+       height="40.216084"
+       x="3.0696197"
+       y="227.75278" />
+    <rect
+       style="opacity:0.97000002;fill:#aac475;fill-opacity:1;stroke:#000000;stroke-width:0.35901672;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5115"
+       width="50.111969"
+       height="36.47134"
+       x="4.3251848"
+       y="229.6501" />
+    <rect
+       style="opacity:0.97000002;fill:#f8a25f;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5117"
+       width="45.451633"
+       height="5.4806519"
+       x="6.442668"
+       y="231.02805" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="8.3580427"
+       y="234.81723"
+       id="text4551-6-8"><tspan
+         sodipodi:role="line"
+         id="tspan4549-8-0"
+         x="8.3580427"
+         y="234.81723"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">Endpoint Monitor (lcore channels)</tspan></text>
+    <rect
+       style="opacity:0.97000002;fill:#a4c3e8;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5117-9"
+       width="45.451633"
+       height="5.4806519"
+       x="6.4426622"
+       y="236.59908" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="16.824707"
+       y="240.16428"
+       id="text4551-6-8-8"><tspan
+         sodipodi:role="line"
+         id="tspan4549-8-0-2"
+         x="16.824707"
+         y="240.16428"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">Channel Manager</tspan></text>
+    <rect
+       style="opacity:0.97000002;fill:#d99896;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5117-1"
+       width="45.451633"
+       height="5.4806519"
+       x="6.4426546"
+       y="242.07971" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="16.295534"
+       y="245.64491"
+       id="text4551-6-8-1"><tspan
+         sodipodi:role="line"
+         id="tspan4549-8-0-1"
+         x="16.295534"
+         y="245.64491"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">librte_power (Host)</tspan></text>
+    <rect
+       style="opacity:0.97000002;fill:#a3c3e9;fill-opacity:0.98039216;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5117-4"
+       width="45.451633"
+       height="5.4806519"
+       x="6.4426584"
+       y="247.56038" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="18.412207"
+       y="251.12558"
+       id="text4551-6-8-13"><tspan
+         sodipodi:role="line"
+         id="tspan4549-8-0-9"
+         x="18.412207"
+         y="251.12558"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">VM Power CLI</tspan></text>
+    <rect
+       style="opacity:0.97000002;fill:#f9ae72;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5117-0"
+       width="45.451633"
+       height="5.4806519"
+       x="81.010612"
+       y="231.02805" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="98.801003"
+       y="234.59322"
+       id="text4551-6-8-4"><tspan
+         sodipodi:role="line"
+         id="tspan4549-8-0-97"
+         x="98.801003"
+         y="234.59322"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">QEMU</tspan></text>
+    <rect
+       style="opacity:0.97000002;fill:#dfdfdf;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5117-0-8"
+       width="45.451633"
+       height="5.4806519"
+       x="81.01062"
+       y="236.5087" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="99.859344"
+       y="240.07385"
+       id="text4551-6-8-4-0"><tspan
+         sodipodi:role="line"
+         id="tspan4549-8-0-97-5"
+         x="99.859344"
+         y="240.07385"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">libvirt</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="28.996965"
+       y="263.96405"
+       id="text4551-6-1-3-2-9"><tspan
+         sodipodi:role="line"
+         x="28.996965"
+         y="263.96405"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-6-6-0">VM Power Monitor Application</tspan></text>
+    <rect
+       style="opacity:1;fill:#d07f7d;fill-opacity:0.91372549;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5117-0-7"
+       width="53.336025"
+       height="9.3962946"
+       x="72.768929"
+       y="245.33264" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="74.799515"
+       y="249.10745"
+       id="text4551-6-8-4-4"><tspan
+         sodipodi:role="line"
+         id="tspan4549-8-0-97-0"
+         x="74.799515"
+         y="249.10745"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">Linux &quot;userspace&quot; power governor</tspan><tspan
+         sodipodi:role="line"
+         x="74.799515"
+         y="252.66789"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         id="tspan5289">/sys/devices/system/cpu/cpuN/cpufreq/</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="67.852898"
+       y="265.42874"
+       id="text4551-6-1-3-2-8"><tspan
+         sodipodi:role="line"
+         x="67.852898"
+         y="265.42874"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:'Arial Bold';text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-6-6-7">OS/Hypervisor</tspan></text>
+    <rect
+       style="opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4571-65"
+       width="13.510917"
+       height="10.574122"
+       x="4.0509348"
+       y="198.76773" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="10.649721"
+       y="203.05254"
+       id="text4551-6-1-3"><tspan
+         sodipodi:role="line"
+         x="10.649721"
+         y="203.05254"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4605-6">Virtual</tspan><tspan
+         sodipodi:role="line"
+         x="10.649721"
+         y="205.87476"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-6">Core 0</tspan></text>
+    <rect
+       style="opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4571-6-9"
+       width="13.510918"
+       height="10.574122"
+       x="20.701635"
+       y="198.78249" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="27.300417"
+       y="203.06729"
+       id="text4551-6-1-2-3"><tspan
+         sodipodi:role="line"
+         x="27.300417"
+         y="203.06729"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4605-8-0">Virtual</tspan><tspan
+         sodipodi:role="line"
+         x="27.300417"
+         y="205.88951"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-5-9">Core 1</tspan></text>
+    <rect
+       style="opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4571-7-1"
+       width="13.510918"
+       height="10.574122"
+       x="37.539612"
+       y="198.78249" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="44.138397"
+       y="203.06729"
+       id="text4551-6-1-0-8"><tspan
+         sodipodi:role="line"
+         x="44.138397"
+         y="203.06729"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4605-7-1">Virutal</tspan><tspan
+         sodipodi:role="line"
+         x="44.138397"
+         y="205.88951"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-0-7">Core 2</tspan></text>
+    <rect
+       style="opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4571-75-4"
+       width="13.510918"
+       height="10.574122"
+       x="53.440094"
+       y="198.76146" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="60.038879"
+       y="203.04626"
+       id="text4551-6-1-5-6"><tspan
+         sodipodi:role="line"
+         x="60.038879"
+         y="203.04626"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4605-2-8">Virutal</tspan><tspan
+         sodipodi:role="line"
+         x="60.038879"
+         y="205.86848"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-02-1">Core 3</tspan></text>
+    <rect
+       style="opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5309-9-7"
+       width="14.835566"
+       height="11.339286"
+       x="51.537918"
+       y="274.75986" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="54.184669"
+       y="281.56589"
+       id="text5313-3-0"><tspan
+         sodipodi:role="line"
+         id="tspan5311-3-55"
+         x="54.184669"
+         y="281.56589"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">Core 3</tspan></text>
+    <rect
+       style="opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5309-9-8"
+       width="14.835566"
+       height="11.339286"
+       x="67.431816"
+       y="274.75986" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="70.078575"
+       y="281.56589"
+       id="text5313-3-3"><tspan
+         sodipodi:role="line"
+         id="tspan5311-3-9"
+         x="70.078575"
+         y="281.56589"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">Core 4</tspan></text>
+    <rect
+       style="opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect5309-9-5"
+       width="14.835566"
+       height="11.339286"
+       x="83.325706"
+       y="274.75986" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="85.972481"
+       y="281.56589"
+       id="text5313-3-05"><tspan
+         sodipodi:role="line"
+         id="tspan5311-3-2"
+         x="85.972481"
+         y="281.56589"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332">Core 5</tspan></text>
+    <rect
+       y="274.75986"
+       x="99.219597"
+       height="11.339286"
+       width="14.835566"
+       id="rect5309-9-4"
+       style="opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       id="text5313-3-5"
+       y="281.56589"
+       x="101.86636"
+       style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         y="281.56589"
+         x="101.86636"
+         id="tspan5311-3-50"
+         sodipodi:role="line">Core 6</tspan></text>
+    <rect
+       y="274.75986"
+       x="115.11353"
+       height="11.339286"
+       width="14.835566"
+       id="rect5309-9-6"
+       style="opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       id="text5313-3-03"
+       y="281.56589"
+       x="117.7603"
+       style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       xml:space="preserve"><tspan
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;font-family:Arial;-inkscape-font-specification:Arial;stroke-width:0.26458332"
+         y="281.56589"
+         x="117.7603"
+         id="tspan5311-3-90"
+         sodipodi:role="line">Core 7</tspan></text>
+    <rect
+       style="opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4571-6-9-8"
+       width="13.510919"
+       height="10.574122"
+       x="92.681847"
+       y="198.77974" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="99.280617"
+       y="203.06454"
+       id="text4551-6-1-2-3-5"><tspan
+         sodipodi:role="line"
+         x="99.280617"
+         y="203.06454"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4605-8-0-6">Virtual</tspan><tspan
+         sodipodi:role="line"
+         x="99.280617"
+         y="205.88676"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-5-9-0">Core 1</tspan></text>
+    <rect
+       style="opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4571-65-0"
+       width="13.510918"
+       height="10.574122"
+       x="74.368103"
+       y="198.76498" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:2.82222223px;line-height:0;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="81.685051"
+       y="203.04979"
+       id="text4551-6-1-3-3"><tspan
+         sodipodi:role="line"
+         x="81.685051"
+         y="203.04979"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4605-6-1">Virtual</tspan><tspan
+         sodipodi:role="line"
+         x="81.685051"
+         y="205.87201"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.82222223px;line-height:1;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan4593-6-3">Core 0</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.28939158px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker12763)"
+       d="M 52.1562,233.6685 H 80.658056"
+       id="path12353"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.28786668;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow2Mstart);marker-end:url(#marker12573)"
+       d="M 52.423464,239.11128 H 80.658051"
+       id="path12353-4"
+       inkscape:connector-curvature="0" />
+    <rect
+       style="opacity:1;fill:#fffdfd;fill-opacity:1;stroke:none;stroke-width:0.30100071;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect12385"
+       width="21.548515"
+       height="3.6533842"
+       x="56.031593"
+       y="237.3535" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="56.522133"
+       y="239.80431"
+       id="text12372"><tspan
+         sodipodi:role="line"
+         id="tspan12370"
+         x="56.522133"
+         y="239.80431"
+         style="font-size:2.11666656px;stroke-width:0.26458332">Map vCPU to pCPU</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.21566178px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker12961)"
+       d="m 51.894295,244.63493 h 10.914044 v 5.05835 h 9.755338"
+       id="path12951"
+       inkscape:connector-curvature="0" />
+  </g>
 </svg>
diff --git a/doc/guides/sample_app_ug/img/vm_power_mgr_vm_request_seq.svg b/doc/guides/sample_app_ug/img/vm_power_mgr_vm_request_seq.svg
index 1487cda9a..0c6d49f0c 100644
--- a/doc/guides/sample_app_ug/img/vm_power_mgr_vm_request_seq.svg
+++ b/doc/guides/sample_app_ug/img/vm_power_mgr_vm_request_seq.svg
@@ -1,4 +1,5 @@ 
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
 
 <!-- SPDX-License-Identifier: BSD-3-Clause -->
 <!-- Copyright(c) 2014 Intel Corporation -->
@@ -12,884 +13,688 @@ 
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="190mm"
+   height="105mm"
+   viewBox="0 0 190 105"
    version="1.1"
-   width="912.44751"
-   height="664.9787"
-   id="svg5187"
-   inkscape:version="0.48.5 r10040"
-   sodipodi:docname="vm_power_mgr_vm_request_seq.svg">
-  <metadata
-     id="metadata5497">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
+   id="svg13567"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   sodipodi:docname="VM_Req_to_Scale_Freq.svg">
   <defs
-     id="defs5495" />
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1920"
-     inkscape:window-height="1005"
-     id="namedview5493"
-     showgrid="false"
-     fit-margin-top="0.1"
-     fit-margin-right="0.1"
-     fit-margin-bottom="0.1"
-     fit-margin-left="0.1"
-     inkscape:zoom="1.5857392"
-     inkscape:cx="533.1241"
-     inkscape:cy="478.97029"
-     inkscape:window-x="1920"
-     inkscape:window-y="36"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="Layer1000" />
-  <g
-     id="Layer1000"
-     transform="matrix(1.3033705,0,0,1.3931773,-22.056332,168.16686)">
-    <g
-       id="Layer1001"
-       transform="matrix(1.237886,0,0,1.2010974,-4.0390827,-71.427441)">
-      <defs
-         id="defs5191">
-        <filter
-           filterUnits="userSpaceOnUse"
-           id="shadow1"
-           color-interpolation-filters="sRGB">
-          <feOffset
-             in="SourceGraphic"
-             result="offset"
-             dx="1.4400"
-             dy="1.4400"
-             id="feOffset5194" />
-          <feColorMatrix
-             in="offset"
-             result="offset-color"
-             type="matrix"
-             values="0 0 0 0 0.2745 0 0 0 0 0.2745 0 0 0 0 0.2745 0 0 0 0.4980 0"
-             id="feColorMatrix5196" />
-          <feMerge
-             id="feMerge5198">
-            <feMergeNode
-               in="offset-color"
-               id="feMergeNode5200" />
-            <feMergeNode
-               in="SourceGraphic"
-               id="feMergeNode5202" />
-          </feMerge>
-        </filter>
-      </defs>
-      <defs
-         id="defs5204">
-        <linearGradient
-           id="grad1">
-          <stop
-             offset="0%"
-             stop-color="#ffffff"
-             stop-opacity="1.0000"
-             id="stop5207" />
-          <stop
-             offset="100%"
-             stop-color="#ffffff"
-             stop-opacity="1.0000"
-             id="stop5209" />
-        </linearGradient>
-        <linearGradient
-           xlink:href="#grad1"
-           id="grad2"
-           x1="164.37778"
-           y1="54.035988"
-           x2="164.37778"
-           y2="290.9747"
-           gradientTransform="scale(0.85432014,1.1705214)"
-           gradientUnits="userSpaceOnUse" />
-      </defs>
+     id="defs13561">
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker2723"
+       style="overflow:visible"
+       inkscape:isstock="true">
       <path
-         d="m 157.2997,317.4803 168.6846,0 0,-231.1182 -168.6846,0 0,231.1182 z"
-         style="fill:url(#grad2);fill-rule:evenodd;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;filter:url(#shadow1)"
-         id="path5212"
+         id="path2721"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6)"
          inkscape:connector-curvature="0" />
-      <defs
-         id="defs5214">
-        <filter
-           filterUnits="userSpaceOnUse"
-           id="shadow2"
-           color-interpolation-filters="sRGB">
-          <feOffset
-             in="SourceGraphic"
-             result="offset"
-             dx="1.4400"
-             dy="1.4400"
-             id="feOffset5217" />
-          <feColorMatrix
-             in="offset"
-             result="offset-color"
-             type="matrix"
-             values="0 0 0 0 0.2745 0 0 0 0 0.2745 0 0 0 0 0.2745 0 0 0 0.4980 0"
-             id="feColorMatrix5219" />
-          <feMerge
-             id="feMerge5221">
-            <feMergeNode
-               in="offset-color"
-               id="feMergeNode5223" />
-            <feMergeNode
-               in="SourceGraphic"
-               id="feMergeNode5225" />
-          </feMerge>
-        </filter>
-      </defs>
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
       <path
-         d="m 157.2997,317.4803 168.6846,0 0,-231.1182 -168.6846,0 0,231.1182 z"
-         style="fill:none;stroke:#1f497d;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;filter:url(#shadow2)"
-         id="path5227"
+         id="path899"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(0.6)"
          inkscape:connector-curvature="0" />
-    </g>
-    <text
-       x="192.70265"
-       y="32.792809"
-       id="text5229"
-       transform="scale(1.0151991,0.98502847)"
-       style="font-size:14.63223553px">
-      <tspan
-         font-size="8.0000"
-         id="tspan5231"
-         style="font-size:9.75482368px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">Loop: for each epoll event</tspan>
-    </text>
-  </g>
-  <g
-     id="Layer1002"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <path
-       d="m 52.7934,331.6535 0,-272.4094"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.88, 1.44, 2.88, 1.44"
-       id="path5234"
-       inkscape:connector-curvature="0" />
-    <text
-       x="-79.411301"
-       y="195.44881"
-       transform="matrix(0,-1,1,0,-142.6554,248.2422)"
-       id="text5236">
-      <tspan
-         font-size="12.0000"
-         id="tspan5238"
-         style="font-size:12px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial" />
-    </text>
-  </g>
-  <g
-     id="Layer1003"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <g
-       id="Layer1004">
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend"
+       style="overflow:visible"
+       inkscape:isstock="true">
       <path
-         d="m 17.2272,59.2441 71.1324,0 0,-25.2284 -71.1324,0 0,25.2284 z"
-         style="fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round"
-         id="path5242"
+         id="path902"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6)"
          inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
       <path
-         d="m 17.2272,59.2441 71.1324,0 0,-25.2284 -71.1324,0 0,25.2284 z"
-         style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
-         id="path5244"
+         id="path881"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(0.4,0,0,0.4,4,0)"
          inkscape:connector-curvature="0" />
-    </g>
-    <text
-       x="21.2272"
-       y="46.629902"
-       id="text5246">
-      <tspan
-         font-size="8.0000"
-         id="tspan5248"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">librte_power(VM)</tspan>
-    </text>
-  </g>
-  <text
-     x="334.86655"
-     y="44.000031"
-     id="text5250"
-     transform="scale(0.98193323,1.0183992)"
-     style="font-size:19.71731567px">
-    <tspan
-       font-weight="bold"
-       font-size="36.0000"
-       id="tspan5252"
-       style="font-size:59.15194702px;font-weight:bold;fill:#cdcdcd;fill-opacity:1;stroke-opacity:1;font-family:Calibri">Sequence</tspan>
-  </text>
-  <g
-     id="Layer1005"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <path
-       d="m 129.4472,331.6535 0,-272.4094"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.88, 1.44, 2.88, 1.44"
-       id="path5255"
-       inkscape:connector-curvature="0" />
-    <text
-       x="-2.7574999"
-       y="195.44881"
-       transform="matrix(0,-1,1,0,-66.0016,324.896)"
-       id="text5257">
-      <tspan
-         font-size="12.0000"
-         id="tspan5259"
-         style="font-size:12px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial" />
-    </text>
-  </g>
-  <g
-     id="Layer1006"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <g
-       id="Layer1007">
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker1748"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow1Mend">
       <path
-         d="m 89.6487,59.2441 79.5971,0 0,-25.2284 -79.5971,0 0,25.2284 z"
-         style="fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round"
-         id="path5263"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         id="path1746"
          inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend"
+       style="overflow:visible"
+       inkscape:isstock="true">
       <path
-         d="m 89.6487,59.2441 79.5971,0 0,-25.2284 -79.5971,0 0,25.2284 z"
-         style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
-         id="path5265"
+         id="path884"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
          inkscape:connector-curvature="0" />
-    </g>
-    <text
-       x="93.648697"
-       y="46.629902"
-       id="text5267">
-      <tspan
-         font-size="8.0000"
-         id="tspan5269"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">guest_channel(VM)</tspan>
-    </text>
-  </g>
-  <g
-     id="Layer1008"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <path
-       d="m 240.9449,354.9562 0,-293.7369"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.88, 1.44, 2.88, 1.44"
-       id="path5272"
-       inkscape:connector-curvature="0" />
-    <text
-       x="98.076401"
-       y="208.0878"
-       transform="matrix(0,-1,1,0,32.8571,449.0327)"
-       id="text5274">
-      <tspan
-         font-size="12.0000"
-         id="tspan5276"
-         style="font-size:12px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial" />
-    </text>
-  </g>
-  <g
-     id="Layer1009"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <g
-       id="Layer1010">
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible"
+       inkscape:isstock="true">
       <path
-         d="m 195.3689,61.2193 91.152,0 0,-27.2036 -91.152,0 0,27.2036 z"
-         style="fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round"
-         id="path5280"
+         id="path896"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
          inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="marker1565-4"
+       style="overflow:visible"
+       inkscape:isstock="true">
       <path
-         d="m 195.3689,61.2193 91.152,0 0,-27.2036 -91.152,0 0,27.2036 z"
-         style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
-         id="path5282"
-         inkscape:connector-curvature="0" />
-    </g>
-    <text
-       x="199.3689"
-       y="47.6175"
-       id="text5284">
-      <tspan
-         font-size="8.0000"
-         id="tspan5286"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">channel_monitor(Host)</tspan>
-      <tspan
-         font-size="8.0000"
-         id="tspan5288"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial" />
-    </text>
-  </g>
-  <g
-     id="Layer1011"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <path
-       d="m 361.5266,352.9811 0,-293.737"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.88, 1.44, 2.88, 1.44"
-       id="path5291"
-       inkscape:connector-curvature="0" />
-    <text
-       x="218.6581"
-       y="206.11259"
-       transform="matrix(0,-1,1,0,155.414,567.6392)"
-       id="text5293">
-      <tspan
-         font-size="12.0000"
-         id="tspan5295"
-         style="font-size:12px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial" />
-    </text>
-  </g>
-  <g
-     id="Layer1012"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <g
-       id="Layer1013">
+         inkscape:connector-curvature="0"
+         id="path1563-2"
+         d="M 0,0 5,-5 -12.5,0 5,5 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend-5"
+       style="overflow:visible"
+       inkscape:isstock="true">
       <path
-         d="m 313.5013,59.2441 96.0505,0 0,-27.2035 -96.0505,0 0,27.2035 z"
-         style="fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round"
-         id="path5299"
-         inkscape:connector-curvature="0" />
+         inkscape:connector-curvature="0"
+         id="path902-8"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mstart-0"
+       style="overflow:visible"
+       inkscape:isstock="true">
       <path
-         d="m 313.5013,59.2441 96.0505,0 0,-27.2035 -96.0505,0 0,27.2035 z"
-         style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
-         id="path5301"
-         inkscape:connector-curvature="0" />
-    </g>
-    <text
-       x="317.50131"
-       y="45.6423"
-       id="text5303">
-      <tspan
-         font-size="8.0000"
-         id="tspan5305"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">channel_manager(Host)</tspan>
-      <tspan
-         font-size="8.0000"
-         id="tspan5307"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial" />
-    </text>
-  </g>
-  <g
-     id="Layer1014"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <path
-       d="m 458.3741,331.6535 0,-272.4094"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.88, 1.44, 2.88, 1.44"
-       id="path5310"
-       inkscape:connector-curvature="0" />
-    <text
-       x="326.1694"
-       y="195.44881"
-       transform="matrix(0,-1,1,0,262.9253,653.8229)"
-       id="text5312">
-      <tspan
-         font-size="12.0000"
-         id="tspan5314"
-         style="font-size:12px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial" />
-    </text>
-  </g>
-  <g
-     id="Layer1015"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <g
-       id="Layer1016">
+         inkscape:connector-curvature="0"
+         id="path899-2"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend-5-8"
+       style="overflow:visible"
+       inkscape:isstock="true">
       <path
-         d="m 413.466,59.2441 89.8163,0 0,-25.2284 -89.8163,0 0,25.2284 z"
-         style="fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round"
-         id="path5318"
-         inkscape:connector-curvature="0" />
+         inkscape:connector-curvature="0"
+         id="path902-8-5"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mstart-0-0"
+       style="overflow:visible"
+       inkscape:isstock="true">
       <path
-         d="m 413.466,59.2441 89.8163,0 0,-25.2284 -89.8163,0 0,25.2284 z"
-         style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
-         id="path5320"
-         inkscape:connector-curvature="0" />
-    </g>
-    <text
-       x="417.466"
-       y="46.629902"
-       id="text5322">
-      <tspan
-         font-size="8.0000"
-         id="tspan5324"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">power_manager(Host)</tspan>
-    </text>
-  </g>
+         inkscape:connector-curvature="0"
+         id="path899-2-6"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mstart-3"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path899-9"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend-3"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path902-2"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.4"
+     inkscape:cx="422.48941"
+     inkscape:cy="233.91334"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer3"
+     showgrid="false"
+     inkscape:window-width="1920"
+     inkscape:window-height="1137"
+     inkscape:window-x="1912"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata13564">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
   <g
-     id="Layer1017"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="Drawing"
+     transform="translate(0,-192)">
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000010;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:0.35277779, 0.35277779;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect6314"
+       width="54.923889"
+       height="77.909065"
+       x="47.091534"
+       y="211.93466" />
+    <rect
+       style="opacity:0.50199998;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581"
+       width="23.118814"
+       height="8.4189901"
+       x="2.0566161"
+       y="194.62044" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.82222223px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="13.409275"
+       y="197.77512"
+       id="text13585"><tspan
+         sodipodi:role="line"
+         x="13.409275"
+         y="197.77512"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13587">librte_power</tspan><tspan
+         sodipodi:role="line"
+         x="13.409275"
+         y="201.30289"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591">(VM)</tspan></text>
+    <rect
+       style="opacity:0.50199998;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-3"
+       width="23.118814"
+       height="8.4189901"
+       x="26.728348"
+       y="194.62044" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.82222223px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="38.081005"
+       y="197.77512"
+       id="text13585-4"><tspan
+         sodipodi:role="line"
+         x="38.081005"
+         y="197.77512"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13587-4">guest_channel</tspan><tspan
+         sodipodi:role="line"
+         x="38.081005"
+         y="201.30289"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-7">(VM)</tspan></text>
+    <rect
+       style="opacity:0.50199998;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.36962408;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-3-9"
+       width="25.405504"
+       height="8.4103832"
+       x="61.705341"
+       y="194.62886" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.82222223px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="74.146271"
+       y="197.77512"
+       id="text13585-4-3"><tspan
+         sodipodi:role="line"
+         x="74.146271"
+         y="197.77512"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13587-4-5">channel_monitor</tspan><tspan
+         sodipodi:role="line"
+         x="74.146271"
+         y="201.30289"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-7-5">(Host)</tspan></text>
+    <rect
+       style="opacity:0.50199998;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.3830055;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-3-9-9"
+       width="27.293171"
+       height="8.4058018"
+       x="98.781654"
+       y="194.63556" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.82222223px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="112.44437"
+       y="197.77512"
+       id="text13585-4-3-8"><tspan
+         sodipodi:role="line"
+         x="112.44437"
+         y="197.77512"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13587-4-5-3">channel_manager</tspan><tspan
+         sodipodi:role="line"
+         x="112.44437"
+         y="201.30289"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-7-5-5">(Host)</tspan></text>
+    <rect
+       style="opacity:0.50199998;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.3830055;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-3-9-9-0"
+       width="27.293173"
+       height="8.4058018"
+       x="130.46378"
+       y="194.63556" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.82222223px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="144.1265"
+       y="197.186"
+       id="text13585-4-3-8-4"><tspan
+         sodipodi:role="line"
+         x="144.1265"
+         y="197.186"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13587-4-5-3-0">power_manager</tspan><tspan
+         sodipodi:role="line"
+         x="144.1265"
+         y="200.71378"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-7-5-5-2">(Host)</tspan></text>
+    <rect
+       style="opacity:0.50199998;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.3830055;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-3-9-9-0-6"
+       width="27.293173"
+       height="8.4058018"
+       x="160.53162"
+       y="194.63556" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.82222223px;line-height:1.25;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="174.19434"
+       y="197.77512"
+       id="text13585-4-3-8-4-7"><tspan
+         sodipodi:role="line"
+         x="174.19434"
+         y="197.77512"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13587-4-5-3-0-8">librte_power</tspan><tspan
+         sodipodi:role="line"
+         x="174.19434"
+         y="201.30289"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.17499995px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-7-5-5-2-7">(Host)</tspan></text>
     <path
-       d="m 249.6969,310.3937 0,-209.7638 -9,0 0,209.7638 9,0 z"
-       style="fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round"
-       id="path5327"
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.05833333, 1.05833333;stroke-dashoffset:0;stroke-opacity:1"
+       d="m 13.816475,203.11478 v 91.27254"
+       id="path968"
        inkscape:connector-curvature="0" />
     <path
-       d="m 249.6969,310.3937 0,-209.7638 -9,0 0,209.7638 9,0 z"
-       style="fill:none;stroke:#000000;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
-       id="path5329"
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.05833334, 1.05833334;stroke-dashoffset:0;stroke-opacity:1"
+       d="M 38.538907,203.44886 V 294.7214"
+       id="path968-7"
        inkscape:connector-curvature="0" />
-  </g>
-  <g
-     id="Layer1018"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <defs
-       id="defs5332">
-      <marker
-         id="endMarker1"
-         markerUnits="strokeWidth"
-         orient="auto"
-         markerWidth="8"
-         markerHeight="6"
-         viewBox="0 0 10 10"
-         refX="1"
-         refY="5">
-        <polyline
-           points="0,0 10,5 0,10 1,5"
-           fill="solid"
-           id="polyline5335" />
-      </marker>
-    </defs>
     <path
-       d="m 249.6969,154.6299 a 23.4,468 90 0 1 0,18"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;marker-end:url(#endMarker1)"
-       id="path5337"
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.05833335, 1.05833335;stroke-dashoffset:0;stroke-opacity:1"
+       d="m 74.219389,203.71614 v 91.27253"
+       id="path968-7-8"
        inkscape:connector-curvature="0" />
-    <text
-       x="289.6969"
-       y="163.6299"
-       id="text5339">
-      <tspan
-         font-size="8.0000"
-         id="tspan5341"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">process_request</tspan>
-    </text>
-  </g>
-  <g
-     id="Layer1019"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <defs
-       id="defs5344">
-      <marker
-         id="endMarker2"
-         markerUnits="strokeWidth"
-         orient="auto"
-         markerWidth="8"
-         markerHeight="6"
-         viewBox="0 0 10 10"
-         refX="1"
-         refY="5">
-        <polyline
-           points="0,0 10,5 0,10 1,5"
-           fill="solid"
-           id="polyline5347" />
-      </marker>
-    </defs>
     <path
-       d="m 249.6969,190.6299 108.6323,-0.7086"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;marker-end:url(#endMarker2)"
-       id="path5349"
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.05833335, 1.05833335;stroke-dashoffset:0;stroke-opacity:1"
+       d="m 113.37436,203.44887 v 91.27254"
+       id="path968-7-5"
        inkscape:connector-curvature="0" />
-    <text
-       x="271.9838"
-       y="179.6738"
-       id="text5351">
-      <tspan
-         font-size="8.0000"
-         id="tspan5353"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">get_pcpu_mask()</tspan>
-    </text>
-  </g>
-  <g
-     id="Layer1020"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
     <path
-       d="m 367.3292,225.9213 0,-36 -9,0 0,36 9,0 z"
-       style="fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round"
-       id="path5356"
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.05833335, 1.05833335;stroke-dashoffset:0;stroke-opacity:1"
+       d="m 144.6449,202.91433 v 91.27253"
+       id="path968-7-0"
        inkscape:connector-curvature="0" />
     <path
-       d="m 367.3292,225.9213 0,-36 -9,0 0,36 9,0 z"
-       style="fill:none;stroke:#000000;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
-       id="path5358"
-       inkscape:connector-curvature="0" />
-  </g>
-  <g
-     id="Layer1021"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <defs
-       id="defs5361">
-      <marker
-         id="startMarker1"
-         markerUnits="strokeWidth"
-         orient="auto"
-         markerWidth="8"
-         markerHeight="6"
-         viewBox="0 0 10 10"
-         refX="9"
-         refY="5">
-        <polyline
-           points="10,0 0,5 10,10 9,5"
-           fill="solid"
-           id="polyline5364" />
-      </marker>
-    </defs>
-    <path
-       d="m 249.6969,226.6299 108.6323,-0.7086"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.88, 1.44, 2.88, 1.44;marker-start:url(#startMarker1)"
-       id="path5366"
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.05833335, 1.05833335;stroke-dashoffset:0;stroke-opacity:1"
+       d="M 172.17366,203.44887 V 294.7214"
+       id="path968-7-6"
        inkscape:connector-curvature="0" />
+    <rect
+       style="opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.17638889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-8-5"
+       width="2.9174259"
+       height="6.2582946"
+       x="36.94656"
+       y="228.71709" />
+    <rect
+       style="opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.17638889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-8"
+       width="2.9174256"
+       height="6.2582946"
+       x="12.285574"
+       y="228.71709" />
+    <rect
+       style="opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.17638889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-8-5-0"
+       width="2.545445"
+       height="69.763725"
+       x="72.813026"
+       y="217.14323" />
+    <rect
+       style="opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.17638889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-8-5-3"
+       width="2.849076"
+       height="12.337144"
+       x="112.08347"
+       y="247.05385" />
+    <rect
+       style="opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.17638889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-8-5-3-0"
+       width="2.849076"
+       height="12.337144"
+       x="143.354"
+       y="270.57895" />
+    <rect
+       style="opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.17638889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-8-5-9"
+       width="2.9174259"
+       height="6.2582946"
+       x="170.84859"
+       y="276.69199" />
     <text
-       x="282.43311"
-       y="215.6738"
-       id="text5368">
-      <tspan
-         font-size="8.0000"
-         id="tspan5370"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">pcpu_mask</tspan>
-    </text>
-  </g>
-  <g
-     id="Layer1022"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <path
-       d="m 544.3667,331.6535 0,-272.4094"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.88, 1.44, 2.88, 1.44"
-       id="path5373"
-       inkscape:connector-curvature="0" />
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.41111112px;line-height:1.5;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="25.989178"
+       y="226.47469"
+       id="text13585-3"><tspan
+         sodipodi:role="line"
+         x="25.989178"
+         y="226.47469"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-3">rte_power_freq_up()</tspan></text>
     <text
-       x="412.1619"
-       y="195.44881"
-       transform="matrix(0,-1,1,0,348.9179,739.8155)"
-       id="text5375">
-      <tspan
-         font-size="12.0000"
-         id="tspan5377"
-         style="font-size:12px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial" />
-    </text>
-  </g>
-  <g
-     id="Layer1023"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <g
-       id="Layer1024">
-      <path
-         d="m 506.5757,59.2441 75.5819,0 0,-25.2284 -75.5819,0 0,25.2284 z"
-         style="fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round"
-         id="path5381"
-         inkscape:connector-curvature="0" />
-      <path
-         d="m 506.5757,59.2441 75.5819,0 0,-25.2284 -75.5819,0 0,25.2284 z"
-         style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
-         id="path5383"
-         inkscape:connector-curvature="0" />
-    </g>
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.41111112px;line-height:1.5;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="24.740162"
+       y="233.53178"
+       id="text13585-3-3"><tspan
+         sodipodi:role="line"
+         x="24.740162"
+         y="233.53178"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-3-0">status</tspan></text>
     <text
-       x="510.57571"
-       y="46.629902"
-       id="text5385">
-      <tspan
-         font-size="8.0000"
-         id="tspan5387"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">librte_power(Host)</tspan>
-    </text>
-  </g>
-  <g
-     id="Layer1025"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <defs
-       id="defs5390">
-      <marker
-         id="endMarker3"
-         markerUnits="strokeWidth"
-         orient="auto"
-         markerWidth="8"
-         markerHeight="6"
-         viewBox="0 0 10 10"
-         refX="1"
-         refY="5">
-        <polyline
-           points="0,0 10,5 0,10 1,5"
-           fill="solid"
-           id="polyline5393" />
-      </marker>
-    </defs>
-    <path
-       d="m 249.6969,262.6299 205.4799,-0.7086"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;marker-end:url(#endMarker3)"
-       id="path5395"
-       inkscape:connector-curvature="0" />
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.41111112px;line-height:2;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="56.144329"
+       y="214.84552"
+       id="text13585-3-1"><tspan
+         sodipodi:role="line"
+         x="56.486771"
+         y="214.84552"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-3-7">Loop: for each </tspan><tspan
+         sodipodi:role="line"
+         x="56.144329"
+         y="217.66774"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan1137">epoll event</tspan></text>
     <text
-       x="303.06931"
-       y="251.6738"
-       id="text5397">
-      <tspan
-         font-size="8.0000"
-         id="tspan5399"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">scale_freq_up(pcpu_mask)</tspan>
-    </text>
-  </g>
-  <g
-     id="Layer1026"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <path
-       d="m 464.1768,297.9213 0,-36 -9,0 0,36 9,0 z"
-       style="fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round"
-       id="path5402"
-       inkscape:connector-curvature="0" />
-    <path
-       d="m 464.1768,297.9213 0,-36 -9,0 0,36 9,0 z"
-       style="fill:none;stroke:#000000;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
-       id="path5404"
-       inkscape:connector-curvature="0" />
-  </g>
-  <g
-     id="Layer1027"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <defs
-       id="defs5407">
-      <marker
-         id="endMarker4"
-         markerUnits="strokeWidth"
-         orient="auto"
-         markerWidth="8"
-         markerHeight="6"
-         viewBox="0 0 10 10"
-         refX="1"
-         refY="5">
-        <polyline
-           points="0,0 10,5 0,10 1,5"
-           fill="solid"
-           id="polyline5410" />
-      </marker>
-    </defs>
-    <path
-       d="m 464.1768,279.9213 76.9925,0"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;marker-end:url(#endMarker4)"
-       id="path5412"
-       inkscape:connector-curvature="0" />
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.41111112px;line-height:1.5;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="91.464294"
+       y="233.68802"
+       id="text13585-3-4-9"><tspan
+         sodipodi:role="line"
+         x="91.464294"
+         y="233.68802"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-3-6-1">process_request</tspan></text>
     <text
-       x="465.31769"
-       y="269.31949"
-       id="text5414">
-      <tspan
-         font-size="8.0000"
-         id="tspan5416"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">rte_power_freq_up()</tspan>
-    </text>
-  </g>
-  <g
-     id="Layer1028"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.41111112px;line-height:1.5;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="91.556564"
+       y="245.283"
+       id="text13585-3-4-9-4"><tspan
+         sodipodi:role="line"
+         x="91.556564"
+         y="245.283"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-3-6-1-0">get_pcpu_mask()</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.41111112px;line-height:1.5;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="90.904503"
+       y="257.57739"
+       id="text13585-3-4-9-2"><tspan
+         sodipodi:role="line"
+         x="90.904503"
+         y="257.57739"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-3-6-1-05">pcpu_mask</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.41111112px;line-height:1.5;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="158.28529"
+       y="281.20514"
+       id="text13585-3-3-2-1"><tspan
+         sodipodi:role="line"
+         x="158.28529"
+         y="281.20514"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-3-0-1-8">status</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.41111112px;line-height:1.5;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="159.21713"
+       y="274.58026"
+       id="text13585-3-4-9-4-5"><tspan
+         sodipodi:role="line"
+         x="159.21713"
+         y="274.58026"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-3-6-1-0-5">rte_power_freq_up()</tspan></text>
     <path
-       d="m 550.1693,297.9213 0,-18 -9,0 0,18 9,0 z"
-       style="fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round"
-       id="path5419"
-       inkscape:connector-curvature="0" />
+       style="fill:none;stroke:#000000;stroke-width:0.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+       d="m 75.021197,234.51894 c 6.293309,0.0388 13.971298,0.23602 14.165285,3.60814 0.04205,3.38442 -8.987218,3.32283 -13.497112,3.47451"
+       id="path873"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
     <path
-       d="m 550.1693,297.9213 0,-18 -9,0 0,18 9,0 z"
-       style="fill:none;stroke:#000000;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
-       id="path5421"
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
+       d="M 15.203,228.85074 H 36.946558"
+       id="path1561"
        inkscape:connector-curvature="0" />
-  </g>
-  <g
-     id="Layer1029"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
     <path
-       d="m 132.0591,154.4882 0,-18 -9,0 0,18 9,0 z"
-       style="fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round"
-       id="path5424"
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.70555558, 0.70555558;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow2Mstart)"
+       d="M 15.203001,234.9754 H 36.946559"
+       id="path1561-3"
        inkscape:connector-curvature="0" />
     <path
-       d="m 132.0591,154.4882 0,-18 -9,0 0,18 9,0 z"
-       style="fill:none;stroke:#000000;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
-       id="path5426"
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2723)"
+       d="M 39.724979,234.9754 H 72.577131"
+       id="path1561-0"
        inkscape:connector-curvature="0" />
-  </g>
-  <g
-     id="Layer1030"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <defs
-       id="defs5429">
-      <marker
-         id="endMarker5"
-         markerUnits="strokeWidth"
-         orient="auto"
-         markerWidth="8"
-         markerHeight="6"
-         viewBox="0 0 10 10"
-         refX="1"
-         refY="5">
-        <polyline
-           points="0,0 10,5 0,10 1,5"
-           fill="solid"
-           id="polyline5432" />
-      </marker>
-    </defs>
     <path
-       d="m 132.0591,154.4882 108.6378,0.1417"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;marker-end:url(#endMarker5)"
-       id="path5434"
-       inkscape:connector-curvature="0" />
-    <text
-       x="135.90199"
-       y="143.95731"
-       id="text5436">
-      <tspan
-         font-size="8.0000"
-         id="tspan5438"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">guest_channel_send_msg()</tspan>
-    </text>
-  </g>
-  <g
-     id="Layer1031"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <defs
-       id="defs5441">
-      <marker
-         id="startMarker2"
-         markerUnits="strokeWidth"
-         orient="auto"
-         markerWidth="8"
-         markerHeight="6"
-         viewBox="0 0 10 10"
-         refX="9"
-         refY="5">
-        <polyline
-           points="10,0 0,5 10,10 9,5"
-           fill="solid"
-           id="polyline5444" />
-      </marker>
-    </defs>
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend-5)"
+       d="m 75.241702,246.95037 36.841758,0.10349"
+       id="path1561-5"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
     <path
-       d="m 464.1768,297.9213 76.9925,0"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.88, 1.44, 2.88, 1.44;marker-start:url(#startMarker2)"
-       id="path5446"
-       inkscape:connector-curvature="0" />
-    <text
-       x="486.673"
-       y="287.31949"
-       id="text5448">
-      <tspan
-         font-size="8.0000"
-         id="tspan5450"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">status</tspan>
-    </text>
-  </g>
-  <g
-     id="Layer1032"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <defs
-       id="defs5453">
-      <marker
-         id="startMarker3"
-         markerUnits="strokeWidth"
-         orient="auto"
-         markerWidth="8"
-         markerHeight="6"
-         viewBox="0 0 10 10"
-         refX="9"
-         refY="5">
-        <polyline
-           points="10,0 0,5 10,10 9,5"
-           fill="solid"
-           id="polyline5456" />
-      </marker>
-    </defs>
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.70555559, 0.70555559;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow2Mstart-0)"
+       d="M 75.372816,259.391 H 112.08346"
+       id="path1561-3-9"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
     <path
-       d="m 249.6969,298.6299 205.4799,-0.7086"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.88, 1.44, 2.88, 1.44;marker-start:url(#startMarker3)"
-       id="path5458"
-       inkscape:connector-curvature="0" />
-    <text
-       x="336.4306"
-       y="287.6738"
-       id="text5460">
-      <tspan
-         font-size="8.0000"
-         id="tspan5462"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">status</tspan>
-    </text>
-  </g>
-  <g
-     id="Layer1033"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend-5-8)"
+       d="M 75.241704,270.47547 143.354,270.57896"
+       id="path1561-5-8"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
     <path
-       d="m 55.4053,154.4882 0,-18 -9,0 0,18 9,0 z"
-       style="fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round"
-       id="path5465"
-       inkscape:connector-curvature="0" />
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.7055556, 0.7055556;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow2Mstart-0-0)"
+       d="M 75.372824,282.9161 H 143.354"
+       id="path1561-3-9-8"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
     <path
-       d="m 55.4053,154.4882 0,-18 -9,0 0,18 9,0 z"
-       style="fill:none;stroke:#000000;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
-       id="path5467"
-       inkscape:connector-curvature="0" />
-  </g>
-  <g
-     id="Layer1034"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <defs
-       id="defs5470">
-      <marker
-         id="endMarker6"
-         markerUnits="strokeWidth"
-         orient="auto"
-         markerWidth="8"
-         markerHeight="6"
-         viewBox="0 0 10 10"
-         refX="1"
-         refY="5">
-        <polyline
-           points="0,0 10,5 0,10 1,5"
-           fill="solid"
-           id="polyline5473" />
-      </marker>
-    </defs>
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend-3)"
+       d="m 146.29869,276.69198 h 24.54989"
+       id="path1561-4"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
     <path
-       d="m 55.4053,136.4882 67.6538,0"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;marker-end:url(#endMarker6)"
-       id="path5475"
-       inkscape:connector-curvature="0" />
+       style="fill:none;stroke:#000000;stroke-width:0.35277778;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.70555559, 0.70555559;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow2Mstart-3)"
+       d="m 146.43232,282.81664 h 24.41626"
+       id="path1561-3-7"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.12931521;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-8-5-4"
+       width="2.9174259"
+       height="3.3636653"
+       x="111.91566"
+       y="265.54959" />
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.12931521;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-8-5-4-8"
+       width="2.9174259"
+       height="3.3636653"
+       x="45.63282"
+       y="230.29805" />
     <text
-       x="51.876801"
-       y="125.8864"
-       id="text5477">
-      <tspan
-         font-size="8.0000"
-         id="tspan5479"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">rte_power_freq_up()</tspan>
-    </text>
-  </g>
-  <g
-     id="Layer1035"
-     transform="matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)">
-    <defs
-       id="defs5482">
-      <marker
-         id="startMarker4"
-         markerUnits="strokeWidth"
-         orient="auto"
-         markerWidth="8"
-         markerHeight="6"
-         viewBox="0 0 10 10"
-         refX="9"
-         refY="5">
-        <polyline
-           points="10,0 0,5 10,10 9,5"
-           fill="solid"
-           id="polyline5485" />
-      </marker>
-    </defs>
-    <path
-       d="m 55.4053,154.4882 72.1538,0"
-       style="fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.88, 1.44, 2.88, 1.44;marker-start:url(#startMarker4)"
-       id="path5487"
-       inkscape:connector-curvature="0" />
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.41111112px;line-height:1.5;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="56.678867"
+       y="232.61894"
+       id="text13585-3-4"><tspan
+         sodipodi:role="line"
+         x="56.678867"
+         y="232.61894"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-3-6">guest_channel_send_msg()</tspan></text>
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.12931521;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-8-5-4-9"
+       width="2.9174259"
+       height="3.3636653"
+       x="100.28944"
+       y="265.70587" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.41111112px;line-height:1.5;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="110.37933"
+       y="268.28806"
+       id="text13585-3-4-9-2-6"><tspan
+         sodipodi:role="line"
+         x="110.37933"
+         y="268.28806"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-3-6-1-05-4">scale_freq_up(pcpu_mask)</tspan></text>
+    <rect
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.12931521;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect13581-8-5-4-99"
+       width="2.9174259"
+       height="3.3636653"
+       x="111.78201"
+       y="278.54019" />
     <text
-       x="75.482201"
-       y="143.8864"
-       id="text5489">
-      <tspan
-         font-size="8.0000"
-         id="tspan5491"
-         style="font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial">status</tspan>
-    </text>
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:1.41111112px;line-height:1.5;font-family:Arial;-inkscape-font-specification:'Arial Bold';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332"
+       x="113.21278"
+       y="280.93787"
+       id="text13585-3-3-2"><tspan
+         sodipodi:role="line"
+         x="113.21278"
+         y="280.93787"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.46944451px;line-height:0px;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;text-anchor:middle;stroke-width:0.26458332"
+         id="tspan13591-3-0-1">status</tspan></text>
   </g>
 </svg>
diff --git a/doc/guides/sample_app_ug/vm_power_management.rst b/doc/guides/sample_app_ug/vm_power_management.rst
index bb2aa4faf..d43ba9cbe 100644
--- a/doc/guides/sample_app_ug/vm_power_management.rst
+++ b/doc/guides/sample_app_ug/vm_power_management.rst
@@ -1,119 +1,128 @@ 
 ..  SPDX-License-Identifier: BSD-3-Clause
     Copyright(c) 2010-2014 Intel Corporation.
 
-VM Power Management Application
-===============================
-
-Introduction
-------------
-
-Applications running in Virtual Environments have an abstract view of
-the underlying hardware on the Host, in particular applications cannot see
-the binding of virtual to physical hardware.
-When looking at CPU resourcing, the pinning of Virtual CPUs(vCPUs) to
-Host Physical CPUs(pCPUS) is not apparent to an application
-and this pinning may change over time.
-Furthermore, Operating Systems on virtual machines do not have the ability
-to govern their own power policy; the Machine Specific Registers (MSRs)
-for enabling P-State transitions are not exposed to Operating Systems
-running on Virtual Machines(VMs).
-
-The Virtual Machine Power Management solution shows an example of
-how a DPDK application can indicate its processing requirements using VM local
-only information(vCPU/lcore, etc.) to a Host based Monitor which is responsible
-for accepting requests for frequency changes for a vCPU, translating the vCPU
-to a pCPU via libvirt and affecting the change in frequency.
-
-The solution is comprised of two high-level components:
-
-#. Example Host Application
-
-   Using a Command Line Interface(CLI) for VM->Host communication channel management
-   allows adding channels to the Monitor, setting and querying the vCPU to pCPU pinning,
-   inspecting and manually changing the frequency for each CPU.
-   The CLI runs on a single lcore while the thread responsible for managing
-   VM requests runs on a second lcore.
-
-   VM requests arriving on a channel for frequency changes are passed
-   to the librte_power ACPI cpufreq sysfs based library.
-   The Host Application relies on both qemu-kvm and libvirt to function.
-
-   This monitoring application is responsible for:
-
-   - Accepting requests from client applications: Client applications can
-     request frequency changes for a vCPU, translating
-     the vCPU to a pCPU via libvirt and affecting the change in frequency.
-
-   - Accepting policies from client applications: Client application can
-     send a policy to the host application. The
-     host application will then apply the rules of the policy independent
-     of the application. For example, the policy can contain time-of-day
-     information for busy/quiet periods, and the host application can scale
-     up/down the relevant cores when required. See the details of the guest
-     application below for more information on setting the policy values.
-
-   - Out-of-band monitoring of workloads via cores hardware event counters:
-     The host application can manage power for an application in a virtualised
-     OR non-virtualised environment by looking at the event counters of the
-     cores and taking action based on the branch hit/miss ratio. See the host
-     application '--core-list' command line parameter below.
-
-#. librte_power for Virtual Machines
-
-   Using an alternate implementation for the librte_power API, requests for
-   frequency changes are forwarded to the host monitor rather than
-   the APCI cpufreq sysfs interface used on the host.
-
-   The l3fwd-power application will use this implementation when deployed on a VM
-   (see :doc:`l3_forward_power_man`).
+Virtual Machine Power Management Application
+============================================
+
+Applications running in virtual environments have an abstract view of
+the underlying hardware on the host. Specifically, applications cannot
+see the binding of virtual components to physical hardware. When looking
+at CPU resourcing, the pinning of Virtual CPUs (vCPUs) to Physical CPUs
+(pCPUs) on the host is not apparent to an application and this pinning
+may change over time. In addition, operating systems on Virtual Machines
+(VMs) do not have the ability to govern their own power policy. The
+Machine Specific Registers (MSRs) for enabling P-state transitions are
+not exposed to the operating systems running on the VMs.
+
+The solution demonstrated in this sample application shows an example of
+how a DPDK application can indicate its processing requirements using
+VM-local only information (vCPU/lcore, and so on) to a host resident VM
+Power Manager. The VM Power Manager is responsible for:
+
+- **Accepting requests for frequency changes for a vCPU**
+- **Translating the vCPU to a pCPU using libvirt**
+- **Performing the change in frequency**
+
+This application demonstrates the following features:
+
+- **The handling of VM application requests to change frequency.**
+  VM applications can request frequency changes for a vCPU. The VM
+  Power Management Application uses libvirt to translate that
+  virtual CPU (vCPU) request to a physical CPU (pCPU) request and
+  performs the frequency change.
+
+- **The acceptance of power management policies from VM applications.**
+  A VM application can send a policy to the host application. The
+  policy contains rules that define the power management behaviour
+  of the VM. The host application then applies the rules of the
+  policy independent of the VM application. For example, the
+  policy can contain time-of-day information for busy/quiet
+  periods, and the host application can scale up/down the relevant
+  cores when required. See :ref:`sending_policy` for information on
+  setting policy values.
+
+- **Out-of-band monitoring of workloads using core hardware event counters.**
+  The host application can manage power for an application by looking
+  at the event counters of the cores and taking action based on the
+  branch miss/hit ratio. See :ref:`enabling_out_of_band`.
+
+  **Note**: This functionality also applies in non-virtualised environments.
+
+In addition to the ``librte_power`` library used on the host, the
+application uses a special version of ``librte_power`` on each VM, which
+directs frequency changes and policies to the host monitor rather than
+the APCI ``cpufreq`` ``sysfs`` interface used on the host in non-virtualised
+environments.
 
 .. _figure_vm_power_mgr_highlevel:
 
 .. figure:: img/vm_power_mgr_highlevel.*
 
-   Highlevel Solution
+Sample Application Architecture Overview
+----------------------------------------
+
+The VM power management solution employs ``qemu-kvm`` to provide
+communications channels between the host and VMs in the form of a
+``virtio-serial`` connection that appears as a para-virtualised serial
+device on a VM and can be configured to use various backends on the
+host. For this example, the configuration of each ``virtio-serial`` endpoint
+on the host as an ``AF_UNIX`` file socket, supporting poll/select and
+``epoll`` for event notification. In this example, each channel endpoint on
+the host is monitored for ``EPOLLIN`` events using ``epoll``. Each channel
+is specified as ``qemu-kvm`` arguments or as ``libvirt`` XML for each VM,
+where each VM can have several channels up to a maximum of 64 per VM. In this
+example, each DPDK lcore on a VM has exclusive access to a channel.
+
+To enable frequency changes from within a VM, the VM forwards a
+``librte_power`` request over the ``virtio-serial`` channel to the host. Each
+request contains the vCPU and power command (scale up/down/min/max). The
+API for the host ``librte_power`` and guest ``librte_power`` is consistent
+across environments, with the selection of VM or host implementation
+determined automatically at runtime based on the environment. On
+receiving a request, the host translates the vCPU to a pCPU using the
+libvirt API before forwarding it to the host ``librte_power``.
 
 
-Overview
---------
-
-VM Power Management employs qemu-kvm to provide communications channels
-between the host and VMs in the form of Virtio-Serial which appears as
-a paravirtualized serial device on a VM and can be configured to use
-various backends on the host. For this example each Virtio-Serial endpoint
-on the host is configured as AF_UNIX file socket, supporting poll/select
-and epoll for event notification.
-In this example each channel endpoint on the host is monitored via
-epoll for EPOLLIN events.
-Each channel is specified as qemu-kvm arguments or as libvirt XML for each VM,
-where each VM can have a number of channels up to a maximum of 64 per VM,
-in this example each DPDK lcore on a VM has exclusive access to a channel.
-
-To enable frequency changes from within a VM, a request via the librte_power interface
-is forwarded via Virtio-Serial to the host, each request contains the vCPU
-and power command(scale up/down/min/max).
-The API for host and guest librte_power is consistent across environments,
-with the selection of VM or Host Implementation determined at automatically
-at runtime based on the environment.
-
-Upon receiving a request, the host translates the vCPU to a pCPU via
-the libvirt API before forwarding to the host librte_power.
-
 .. _figure_vm_power_mgr_vm_request_seq:
 
 .. figure:: img/vm_power_mgr_vm_request_seq.*
 
-   VM request to scale frequency
-
+In addition to the ability to send power management requests to the
+host, a VM can send a power management policy to the host. In some
+cases, using a power management policy is a preferred option because it
+can eliminate possible latency issues that can occur when sending power
+management requests. Once the VM sends the policy to the host, the VM no
+longer needs to worry about power management, because the host now
+manages the power for the VM based on the policy. The policy can specify
+power behavior that is based on incoming traffic rates or time-of-day
+power adjustment (busy/quiet hour power adjustment for example). See
+:ref:`sending_policy` for more information.
+
+One method of power management is to sense how busy a core is when
+processing packets and adjusting power accordingly. One technique for
+doing this is to monitor the ratio of the branch miss to branch hits
+counters and scale the core power accordingly. This technique is based
+on the premise that when a core is not processing packets, the ratio of
+branch misses to branch hits is very low, but when the core is
+processing packets, it is measurably higher. The implementation of this
+capability is as a policy of type ``BRANCH_RATIO``.
+See :ref:`sending_policy` for more information on using the
+BRANCH_RATIO policy option.
+
+A JSON interface enables the specification of power management requests
+and policies in JSON format. The JSON interfaces provide a more
+convenient and more easily interpreted interface for the specification
+of requests and policies. See :ref:`power_man_requests` for more information.
 
 Performance Considerations
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-While Haswell Microarchitecture allows for independent power control for each core,
-earlier Microarchtectures do not offer such fine grained control.
-When deployed on pre-Haswell platforms greater care must be taken in selecting
-which cores are assigned to a VM, for instance a core will not scale down
-until its sibling is similarly scaled.
+While the Haswell microarchitecture allows for independent power control
+for each core, earlier microarchitectures do not offer such fine-grained
+control. When deploying on pre-Haswell platforms, greater care must be
+taken when selecting which cores are assigned to a VM, for example, a
+core does not scale down in frequency until all of its siblings are
+similarly scaled down.
 
 Configuration
 -------------
@@ -121,636 +130,541 @@  Configuration
 BIOS
 ~~~~
 
-Enhanced Intel SpeedStep® Technology must be enabled in the platform BIOS
-if the power management feature of DPDK is to be used.
-Otherwise, the sys file folder /sys/devices/system/cpu/cpu0/cpufreq will not exist,
-and the CPU frequency-based power management cannot be used.
-Consult the relevant BIOS documentation to determine how these settings
-can be accessed.
+To use the power management features of the DPDK, you must enable
+Enhanced Intel SpeedStep® Technology in the platform BIOS. Otherwise,
+the ``sys`` file folder ``/sys/devices/system/cpu/cpu0/cpufreq`` does not
+exist, and you cannot use CPU frequency-based power management. Refer to the
+relevant BIOS documentation to determine how to access these settings.
 
 Host Operating System
 ~~~~~~~~~~~~~~~~~~~~~
 
-The DPDK Power Library can use either the *acpi_cpufreq* or *intel_pstate*
-kernel driver for the management of core frequencies. In many cases
-the *intel_pstate* driver is the default Power Management environment.
+The DPDK Power Management library can use either the ``acpi_cpufreq`` or
+the ``intel_pstate`` kernel driver for the management of core frequencies. In
+many cases, the ``intel_pstate`` driver is the default power management
+environment.
 
-Should the *acpi-cpufreq* driver be required, the *intel_pstate* module must
-be disabled, and *apci_cpufreq* module loaded in its place.
+Should the ``acpi-cpufreq driver`` be required, the ``intel_pstate``
+module must be disabled, and the ``acpi-cpufreq`` module loaded in its place.
 
-To disable *intel_pstate* driver, add the following to the grub Linux
-command line:
+To disable the ``intel_pstate`` driver, add the following to the ``grub``
+Linux command line:
 
-.. code-block:: console
+   ``intel_pstate=disable``
 
-  intel_pstate=disable
+On reboot, load the ``acpi_cpufreq`` module:
 
-Upon rebooting, load the *acpi_cpufreq* module:
-
-.. code-block:: console
-
-  modprobe acpi_cpufreq
+   ``modprobe acpi_cpufreq``
 
 Hypervisor Channel Configuration
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-Virtio-Serial channels are configured via libvirt XML:
-
+Configure ``virtio-serial`` channels using ``libvirt`` XML.
+The XML structure is as follows: 
 
-.. code-block:: xml
+.. code-block:: XML
 
-  <name>{vm_name}</name>
-  <controller type='virtio-serial' index='0'>
-    <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
-  </controller>
-  <channel type='unix'>
-    <source mode='bind' path='/tmp/powermonitor/{vm_name}.{channel_num}'/>
-    <target type='virtio' name='virtio.serial.port.poweragent.{vm_channel_num}'/>
-    <address type='virtio-serial' controller='0' bus='0' port='{N}'/>
-  </channel>
+   <name>{vm_name}</name>
+   <controller type='virtio-serial' index='0'>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
+   </controller>
+   <channel type='unix'>
+      <source mode='bind' path='/tmp/powermonitor/{vm_name}.{channel_num}'/>
+      <target type='virtio' name='virtio.serial.port.poweragent.{vm_channel_num}'/>
+      <address type='virtio-serial' controller='0' bus='0' port='{N}'/>
+   </channel>
 
+Where a single controller of type ``virtio-serial`` is created, up to 32
+channels can be associated with a single controller, and multiple
+controllers can be specified. The convention is to use the name of the
+VM in the host path ``{vm_name}`` and to increment ``{channel_num}`` for each
+channel. Likewise, the port value ``{N}`` must be incremented for each
+channel.
 
-Where a single controller of type *virtio-serial* is created and up to 32 channels
-can be associated with a single controller and multiple controllers can be specified.
-The convention is to use the name of the VM in the host path *{vm_name}* and
-to increment *{channel_num}* for each channel, likewise the port value *{N}*
-must be incremented for each channel.
-
-Each channel on the host will appear in *path*, the directory */tmp/powermonitor/*
-must first be created and given qemu permissions
+On the host, for each channel to appear in the path, ensure the creation
+of the ``/tmp/powermonitor/`` directory and the assignment of ``qemu``
+permissions:
 
 .. code-block:: console
 
-  mkdir /tmp/powermonitor/
-  chown qemu:qemu /tmp/powermonitor
+   mkdir /tmp/powermonitor/
+   chown qemu:qemu /tmp/powermonitor
+
+Note that files and directories in ``/tmp`` are generally removed when
+rebooting the host and you may need to perform the previous steps after
+each reboot.
 
-Note that files and directories within /tmp are generally removed upon
-rebooting the host and the above steps may need to be carried out after each reboot.
+The serial device as it appears on a VM is configured with the target
+element attribute name and must be in the form:
+``virtio.serial.port.poweragent.{vm_channel_num}``, where
+``vm_channel_num`` is typically the lcore channel to be used in
+DPDK VM applications.
 
-The serial device as it appears on a VM is configured with the *target* element attribute *name*
-and must be in the form of *virtio.serial.port.poweragent.{vm_channel_num}*,
-where *vm_channel_num* is typically the lcore channel to be used in DPDK VM applications.
+Each channel on a VM is present at:
 
-Each channel on a VM will be present at */dev/virtio-ports/virtio.serial.port.poweragent.{vm_channel_num}*
+``/dev/virtio-ports/virtio.serial.port.poweragent.{vm_channel_num}``
 
 Compiling and Running the Host Application
 ------------------------------------------
 
-Compiling
-~~~~~~~~~
+Compiling the Host Application
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-For information on compiling DPDK and the sample applications
+For information on compiling the DPDK and sample applications, see
 see :doc:`compiling`.
 
-The application is located in the ``vm_power_manager`` sub-directory.
+The application is located in the ``vm_power_manager`` subdirectory.
 
 To build just the ``vm_power_manager`` application using ``make``:
 
 .. code-block:: console
 
-  export RTE_SDK=/path/to/rte_sdk
-  export RTE_TARGET=build
-  cd ${RTE_SDK}/examples/vm_power_manager/
-  make
+   export RTE_SDK=/path/to/rte_sdk
+   export RTE_TARGET=build
+   cd ${RTE_SDK}/examples/vm_power_manager/
+   make
 
-The resulting binary will be ${RTE_SDK}/build/examples/vm_power_manager
+The resulting binary is ``${RTE_SDK}/build/examples/vm_power_manager``.
 
-To build just the ``vm_power_manager`` application using ``meson/ninja``:
+To build just the ``vm_power_manager`` application using ``meson``/``ninja``:
 
 .. code-block:: console
 
-  export RTE_SDK=/path/to/rte_sdk
-  cd ${RTE_SDK}
-  meson build
-  cd build
-  ninja
-  meson configure -Dexamples=vm_power_manager
-  ninja
+   export RTE_SDK=/path/to/rte_sdk
+   cd ${RTE_SDK}
+   meson build
+   cd build
+   ninja
+   meson configure -Dexamples=vm_power_manager
+   ninja
 
-The resulting binary will be ${RTE_SDK}/build/examples/dpdk-vm_power_manager
+The resulting binary is ``${RTE_SDK}/build/examples/dpdk-vm_power_manager``.
 
-Running
-~~~~~~~
+Running the Host Application
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-The application does not have any specific command line options other than *EAL*:
+The application does not have any specific command line options other
+than the EAL options:
 
 .. code-block:: console
 
- ./build/vm_power_mgr [EAL options]
+   ./build/vm_power_mgr [EAL options]
 
-The application requires exactly two cores to run, one core is dedicated to the CLI,
-while the other is dedicated to the channel endpoint monitor, for example to run
-on cores 0 & 1 on a system with 4 memory channels:
+The application requires exactly two cores to run. One core for the CLI
+and the other for the channel endpoint monitor. For example, to run on
+cores 0 and 1 on a system with four memory channels, issue the command:
 
 .. code-block:: console
 
- ./build/vm_power_mgr -l 0-1 -n 4
+   ./build/vm_power_mgr -l 0-1 -n 4
 
-After successful initialization the user is presented with VM Power Manager CLI:
+After successful initialization, the VM Power Manager CLI prompt appears:
 
 .. code-block:: console
 
-  vm_power>
+   vm_power>
 
-Virtual Machines can now be added to the VM Power Manager:
+Now, it is possible to add virtual machines to the VM Power Manager:
 
 .. code-block:: console
 
-  vm_power> add_vm {vm_name}
-
-When a {vm_name} is specified with the *add_vm* command a lookup is performed
-with libvirt to ensure that the VM exists, {vm_name} is used as an unique identifier
-to associate channels with a particular VM and for executing operations on a VM within the CLI.
-VMs do not have to be running in order to add them.
+   vm_power> add_vm {vm_name}
 
-A number of commands can be issued via the CLI in relation to VMs:
+When a ``{vm_name}`` is specified with the ``add_vm`` command, a lookup is
+performed with ``libvirt`` to ensure that the VM exists. ``{vm_name}`` is a
+unique identifier to associate channels with a particular VM and for
+executing operations on a VM within the CLI. VMs do not have to be
+running to add them.
 
-  Remove a Virtual Machine identified by {vm_name} from the VM Power Manager.
+It is possible to issue several commands from the CLI to manage VMs.
 
-  .. code-block:: console
-
-    rm_vm {vm_name}
-
-  Add communication channels for the specified VM, the virtio channels must be enabled
-  in the VM configuration(qemu/libvirt) and the associated VM must be active.
-  {list} is a comma-separated list of channel numbers to add, using the keyword 'all'
-  will attempt to add all channels for the VM:
-
-  .. code-block:: console
-
-    add_channels {vm_name} {list}|all
-
-  Enable or disable the communication channels in {list}(comma-separated)
-  for the specified VM, alternatively list can be replaced with keyword 'all'.
-  Disabled channels will still receive packets on the host, however the commands
-  they specify will be ignored. Set status to 'enabled' to begin processing requests again:
-
-  .. code-block:: console
-
-    set_channel_status {vm_name} {list}|all enabled|disabled
-
-  Print to the CLI the information on the specified VM, the information
-  lists the number of vCPUS, the pinning to pCPU(s) as a bit mask, along with
-  any communication channels associated with each VM, along with the status of each channel:
-
-  .. code-block:: console
+Remove the virtual machine identified by ``{vm_name}`` from the VM Power
+Manager using the command:
 
-    show_vm {vm_name}
-
-  Set the binding of Virtual CPU on VM with name {vm_name}  to the Physical CPU mask:
-
-  .. code-block:: console
+.. code-block:: console
 
-    set_pcpu_mask {vm_name} {vcpu} {pcpu}
+   rm_vm {vm_name}
 
-  Set the binding of Virtual CPU on VM to the Physical CPU:
+Add communication channels for the specified VM using the following
+command. The ``virtio`` channels must be enabled in the VM configuration
+(``qemu/libvirt``) and the associated VM must be active. ``{list}`` is a
+comma-separated list of channel numbers to add. Specifying the keyword
+``all`` attempts to add all channels for the VM:
 
-  .. code-block:: console
+.. code-block:: console
 
-    set_pcpu {vm_name} {vcpu} {pcpu}
+   set_pcpu {vm_name} {vcpu} {pcpu}
 
   Enable query of physical core information from a VM:
 
-  .. code-block:: console
+.. code-block:: console
 
-    set_query {vm_name} enable|disable
+   set_query {vm_name} enable|disable
 
 Manual control and inspection can also be carried in relation CPU frequency scaling:
 
   Get the current frequency for each core specified in the mask:
 
-  .. code-block:: console
+.. code-block:: console
 
-    show_cpu_freq_mask {mask}
+   show_cpu_freq_mask {mask}
 
   Set the current frequency for the cores specified in {core_mask} by scaling each up/down/min/max:
 
-  .. code-block:: console
+.. code-block:: console
 
-    set_cpu_freq {core_mask} up|down|min|max
+   add_channels {vm_name} {list}|all
 
-  Get the current frequency for the specified core:
+Enable or disable the communication channels in ``{list}`` (comma-separated)
+for the specified VM. Alternatively, replace ``list`` with the keyword
+``all``. Disabled channels receive packets on the host. However, the commands
+they specify are ignored. Set the status to enabled to begin processing
+requests again:
 
-  .. code-block:: console
-
-    show_cpu_freq {core_num}
+.. code-block:: console
 
-  Set the current frequency for the specified core by scaling up/down/min/max:
+   set_channel_status {vm_name} {list}|all enabled|disabled
 
-  .. code-block:: console
+Print to the CLI information on the specified VM. The information lists
+the number of vCPUs, the pinning to pCPU(s) as a bit mask, along with
+any communication channels associated with each VM, and the status of
+each channel:
 
-    set_cpu_freq {core_num} up|down|min|max
+.. code-block:: console
 
-There are also some command line parameters for enabling the out-of-band
-monitoring of branch ratio on cores doing busy polling via PMDs.
+   show_vm {vm_name}
 
-  .. code-block:: console
+Set the binding of a virtual CPU on a VM with name ``{vm_name}`` to the
+physical CPU mask:
 
-    --core-list {list of cores}
+.. code-block:: console
 
-  When this parameter is used, the list of cores specified will monitor the ratio
-  between branch hits and branch misses. A tightly polling PMD thread will have a
-  very low branch ratio, so the core frequency will be scaled down to the minimum
-  allowed value. When packets are received, the code path will alter, causing the
-  branch ratio to increase. When the ratio goes above the ratio threshold, the
-  core frequency will be scaled up to the maximum allowed value.
+   set_pcpu_mask {vm_name} {vcpu} {pcpu}
 
+Set the binding of the virtual CPU on the VM to the physical CPU:

   .. code-block:: console
 
-    --branch-ratio {ratio}
-
-  The branch ratio is a floating point number that specifies the threshold at which
-  to scale up or down for the given workload. The default branch ratio is 0.01,
-  and will need to be adjusted for different workloads.
-
-
-
-JSON API
-~~~~~~~~
-
-In addition to the command line interface for host command and a virtio-serial
-interface for VM power policies, there is also a JSON interface through which
-power commands and policies can be sent. This functionality adds a dependency
-on the Jansson library, and the Jansson development package must be installed
-on the system before the JSON parsing functionality is included in the app.
-This is achieved by:
-
-  .. code-block:: javascript
+   set_pcpu {vm_name} {vcpu} {pcpu}
 
-    apt-get install libjansson-dev
+It is also possible to perform manual control and inspection in relation
+to CPU frequency scaling.
 
-The command and package name may be different depending on your operating
-system. It's worth noting that the app will successfully build without this
-package present, but a warning is shown during compilation, and the JSON
-parsing functionality will not be present in the app.
+Get the current frequency for each core specified in the mask:
 
-Sending a command or policy to the power manager application is achieved by
-simply opening a fifo file, writing a JSON string to that fifo, and closing
-the file. In actual implementation every core has own dedicated fifo[0..n],
-where n is number of the last available core.
-Having a dedicated fifo file per core allows using standard filesystem permissions
-to ensure a given container can only write JSON commands into fifos it is allowed
-to use.
-
-The fifo is at /tmp/powermonitor/fifo[0..n]
-
-For example all cmds put to the /tmp/powermonitor/fifo7, will have
-effect only on CPU[7].
-
-The JSON string can be a policy or instruction, and takes the following
-format:
-
-  .. code-block:: javascript
-
-    {"packet_type": {
-      "pair_1": value,
-      "pair_2": value
-    }}
-
-The 'packet_type' header can contain one of two values, depending on
-whether a policy or power command is being sent. The two possible values are
-"policy" and "instruction", and the expected name-value pairs is different
-depending on which type is being sent.
-
-The pairs are the format of standard JSON name-value pairs. The value type
-varies between the different name/value pairs, and may be integers, strings,
-arrays, etc. Examples of policies follow later in this document. The allowed
-names and value types are as follows:
-
-
-:Pair Name: "command"
-:Description: The type of packet we're sending to the power manager. We can be
-  creating or destroying a policy, or sending a direct command to adjust
-  the frequency of a core, similar to the command line interface.
-:Type: string
-:Values:
-
-  :CREATE: used when creating a new policy,
-  :DESTROY: used when removing a policy,
-  :POWER: used when sending an immediate command, max, min, etc.
-:Required: yes
-:Example:
+.. code-block:: console
 
-    .. code-block:: javascript
+   show_cpu_freq_mask {mask}
 
-      "command", "CREATE"
+Set the current frequency for the cores specified in ``{core_mask}`` by
+scaling each up/down/min/max:
 
+.. code-block:: console
 
-:Pair Name: "policy_type"
-:Description: Type of policy to apply. Please see vm_power_manager documentation
-  for more information on the types of policies that may be used.
-:Type: string
-:Values:
+   set_cpu_freq {core_mask} up|down|min|max
 
-  :TIME: Time-of-day policy. Frequencies of the relevant cores are
-    scaled up/down depending on busy and quiet hours.
-  :TRAFFIC: This policy takes statistics from the NIC and scales up
-    and down accordingly.
-  :WORKLOAD: This policy looks at how heavily loaded the cores are,
-    and scales up and down accordingly.
-  :BRANCH_RATIO: This out-of-band policy can look at the ratio between
-    branch hits and misses on a core, and is useful for detecting
-    how much packet processing a core is doing.
-:Required: only for CREATE/DESTROY command
-:Example:
+Get the current frequency for the specified core:
 
-  .. code-block:: javascript
+.. code-block:: console
 
-    "policy_type", "TIME"
+   show_cpu_freq {core_num}
 
-:Pair Name: "busy_hours"
-:Description: The hours of the day in which we scale up the cores for busy
-  times.
-:Type: array of integers
-:Values: array with list of hour numbers, (0-23)
-:Required: only for TIME policy
-:Example:
-
-  .. code-block:: javascript
-
-    "busy_hours":[ 17, 18, 19, 20, 21, 22, 23 ]
-
-:Pair Name: "quiet_hours"
-:Description: The hours of the day in which we scale down the cores for quiet
-  times.
-:Type: array of integers
-:Values: array with list of hour numbers, (0-23)
-:Required: only for TIME policy
-:Example:
+Set the current frequency for the specified core by scaling up/down/min/max:
 
-  .. code-block:: javascript
+.. code-block:: console
 
-    "quiet_hours":[ 2, 3, 4, 5, 6 ]
+   set_cpu_freq {core_num} up|down|min|max
 
-:Pair Name: "avg_packet_thresh"
-:Description: Threshold below which the frequency will be set to min for
-  the TRAFFIC policy. If the traffic rate is above this and below max, the
-  frequency will be set to medium.
-:Type: integer
-:Values: The number of packets below which the TRAFFIC policy applies the
-  minimum frequency, or medium frequency if between avg and max thresholds.
-:Required: only for TRAFFIC policy
-:Example:
+.. _enabling_out_of_band:
 
-  .. code-block:: javascript
+Command Line Options for Enabling Out-of-band Branch Ratio Monitoring
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    "avg_packet_thresh": 100000
+There are a couple of command line parameters for enabling the out-of-band
+monitoring of branch ratios on cores doing busy polling using PMDs as
+described in the following table.
 
-:Pair Name: "max_packet_thresh"
-:Description: Threshold above which the frequency will be set to max for
-  the TRAFFIC policy
-:Type: integer
-:Values: The number of packets per interval above which the TRAFFIC policy
-  applies the maximum frequency
-:Required: only for TRAFFIC policy
-:Example:
+Table 1 – Command Line Options for Enabling Out-of-band Monitoring of
+Branch Ratios
 
-  .. code-block:: javascript
+=============================== ==============================================
+**Command Line Option**         **Description**
+=============================== ==============================================
+``--core-list {list of cores}`` | Specify the list of cores to monitor the ratio of branch misses
+                                | to branch hits.  A tightly-polling PMD thread has a very low
+                                | branch ratio, therefore the core frequency scales down to the
+                                | minimum allowed value. On receiving packets, the code path changes,
+                                | causing the branch ratio to increase. When the ratio goes above
+                                | the ratio threshold, the core frequency scales up to the maximum
+                                | allowed value.
+``--branch-ratio {ratio}``      | Specify a floating-point number that identifies the threshold at which
+                                | to scale up or down for the given workload. The default branch ratio
+                                | is 0.01 and needs adjustment for different workloads.
+=============================== ==============================================
 
-    "max_packet_thresh": 500000
 
-:Pair Name: "workload"
-:Description: When our policy is of type WORKLOAD, we need to specify how
-  heavy our workload is.
-:Type: string
-:Values:
 
-  :HIGH: For cores running workloads that require high frequencies
-  :MEDIUM: For cores running workloads that require medium frequencies
-  :LOW: For cores running workloads that require low frequencies
-:Required: only for WORKLOAD policy types
-:Example:
+Compiling and Running the Guest Applications
+--------------------------------------------
 
-  .. code-block:: javascript
+It is possible to use the ``l3fwd-power`` application (for example) with the
+``vm_power_manager``.
 
-    "workload", "MEDIUM"
+The distribution also provides a guest CLI for validating the setup.
 
-:Pair Name: "mac_list"
-:Description: When our policy is of type TRAFFIC, we need to specify the
-  MAC addresses that the host needs to monitor
-:Type: string
-:Values: array with a list of mac address strings.
-:Required: only for TRAFFIC policy types
-:Example:
+For both ``l3fwd-power`` and the guest CLI, the host application must use
+the ``add_channels`` command to monitor the channels for the VM. To do this,
+issue the following commands in the host application:
 
-  .. code-block:: javascript
+.. code-block:: console
 
-    "mac_list":[ "de:ad:be:ef:01:01", "de:ad:be:ef:01:02" ]
+   vm_power> add_vm vmname
+   vm_power> add_channels vmname all
+   vm_power> set_channel_status vmname all enabled
+   vm_power> show_vm vmname
 
-:Pair Name: "unit"
-:Description: the type of power operation to apply in the command
-:Type: string
-:Values:
+Compiling the Guest Application
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-  :SCALE_MAX: Scale frequency of this core to maximum
-  :SCALE_MIN: Scale frequency of this core to minimum
-  :SCALE_UP: Scale up frequency of this core
-  :SCALE_DOWN: Scale down frequency of this core
-  :ENABLE_TURBO: Enable Turbo Boost for this core
-  :DISABLE_TURBO: Disable Turbo Boost for this core
-:Required: only for POWER instruction
-:Example:
+For information on compiling DPDK and the sample applications in general,
+see :doc:`compiling`.
 
-  .. code-block:: javascript
+For compiling and running the ``l3fwd-power`` sample application, see
+:doc:`l3_forward_power_man`.
 
-    "unit", "SCALE_MAX"
+The application is in the ``guest_cli`` subdirectory under ``vm_power_manager``.
 
-JSON API Examples
-~~~~~~~~~~~~~~~~~
+To build just the ``guest_vm_power_manager`` application using ``make``, issue
+the following commands:
 
-Profile create example:
+.. code-block:: console
 
-  .. code-block:: javascript
+   export RTE_SDK=/path/to/rte_sdk
+   export RTE_TARGET=build
+   cd ${RTE_SDK}/examples/vm_power_manager/guest_cli/
+   make
 
-    {"policy": {
-      "command": "create",
-      "policy_type": "TIME",
-      "busy_hours":[ 17, 18, 19, 20, 21, 22, 23 ],
-      "quiet_hours":[ 2, 3, 4, 5, 6 ]
-    }}
+The resulting binary is ``${RTE_SDK}/build/examples/guest_cli``.
 
-Profile destroy example:
+**Note**: This sample application conditionally links in the Jansson JSON
+library. Consequently, if you are using a multilib or cross-compile
+environment, you may need to set the ``PKG_CONFIG_LIBDIR`` environmental
+variable to point to the relevant ``pkgconfig`` folder so that the correct
+library is linked in.
 
-  .. code-block:: javascript
+For example, if you are building for a 32-bit target, you could find the
+correct directory using the following find command:
 
-    {"policy": {
-      "command": "destroy"
-    }}
+.. code-block:: console
 
-Power command example:
+   # find /usr -type d -name pkgconfig
+   /usr/lib/i386-linux-gnu/pkgconfig
+   /usr/lib/x86_64-linux-gnu/pkgconfig
 
-  .. code-block:: javascript
+Then use:
 
-    {"instruction": {
-      "command": "power",
-      "unit": "SCALE_MAX"
-    }}
+.. code-block:: console
 
-To send a JSON string to the Power Manager application, simply paste the
-example JSON string into a text file and cat it into the proper fifo:
+   export PKG_CONFIG_LIBDIR=/usr/lib/i386-linux-gnu/pkgconfig
 
-  .. code-block:: console
+You then use the ``make`` command as normal, which should find the 32-bit
+version of the library, if it installed. If not, the application builds
+without the JSON interface functionality.
 
-    cat file.json >/tmp/powermonitor/fifo[0..n]
+To build just the ``vm_power_manager`` application using ``meson``/``ninja``:
 
-The console of the Power Manager application should indicate the command that
-was just received via the fifo.
+.. code-block:: console
 
-Compiling and Running the Guest Applications
---------------------------------------------
+   export RTE_SDK=/path/to/rte_sdk
+   cd ${RTE_SDK}
+   meson build
+   cd build
+   ninja
+   meson configure -Dexamples=vm_power_manager/guest_cli
+   ninja
 
-l3fwd-power is one sample application that can be used with vm_power_manager.
+The resulting binary is ``${RTE_SDK}/build/examples/guest_cli``.
 
-A guest CLI is also provided for validating the setup.
+Running the Guest Application
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-For both l3fwd-power and guest CLI, the channels for the VM must be monitored by the
-host application using the *add_channels* command on the host. This typically uses
-the following commands in the host application:
+The standard EAL command line parameters are necessary:
 
 .. code-block:: console
 
-  vm_power> add_vm vmname
-  vm_power> add_channels vmname all
-  vm_power> set_channel_status vmname all enabled
-  vm_power> show_vm vmname
-
+   ./build/vm_power_mgr [EAL options] -- [guest options]
 
-Compiling
-~~~~~~~~~
+The guest example uses a channel for each lcore enabled. For example, to
+run on cores 0, 1, 2 and 3:
 
-For information on compiling DPDK and the sample applications
-see :doc:`compiling`.
+.. code-block:: console
 
-For compiling and running l3fwd-power, see :doc:`l3_forward_power_man`.
+   ./build/guest_vm_power_mgr -l 0-3
 
-The application is located in the ``guest_cli`` sub-directory under ``vm_power_manager``.
+.. _sending_policy:
 
-To build just the ``guest_vm_power_manager`` application using ``make``:
+Command Line Options Available When Sending a Policy to the Host
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-.. code-block:: console
+Optionally, there are several command line options for a user who needs
+to send a power policy to the host application. The following table
+describes these options.
 
-  export RTE_SDK=/path/to/rte_sdk
-  export RTE_TARGET=build
-  cd ${RTE_SDK}/examples/vm_power_manager/guest_cli/
-  make
+Table 1 – Command Line Options Available When Sending a Policy to the Host
 
-The resulting binary will be ${RTE_SDK}/build/examples/guest_cli
+======================================= ======================================
+**Command Line Option**                 **Description**
+======================================= ======================================
+``--vm-name {name of guest vm}``        | Allows the user to change the virtual machine name passed
+                                        | down to the host application using the power policy. The
+                                        | default is ubuntu2.
+``--vcpu-list {list vm cores}``         | A comma-separated list of cores in the VM that the user
+                                        | wants the host application to monitor. The list of cores
+                                        | in any vm starts at zero, and the host application maps
+                                        | these to the physical cores once the policy passes down
+                                        | to the host. Valid syntax includes individual cores
+                                        | 2,3,4, a range of cores 2-4, or a combination of both
+                                        | 1,3,5-7.
+``--busy-hours {list of busy hours}``   | A comma-separated list of hours in which to set the core
+                                        | frequency to the maximum. Valid syntax includes
+                                        | individual hours 2,3,4, a range of hours 2-4, or a
+                                        | combination of both 1,3,5-7. Valid hour values are 0 to 23.
+``--quiet-hours {list of quiet hours}`` | A comma-separated list of hours in which to set the core
+                                        | frequency to minimum. Valid syntax includes individual
+                                        | hours 2,3,4, a range of hours 2-4, or a combination of
+                                        | both 1,3,5-7. Valid hour values are 0 to 23.
+``--policy {policy type}``              | The type of policy. This can be one of the following values:
 
-.. Note::
-  This sample application conditionally links in the Jansson JSON
-  library, so if you are using a multilib or cross compile environment you
-  may need to set the ``PKG_CONFIG_LIBDIR`` environmental variable to point to
-  the relevant pkgconfig folder so that the correct library is linked in.
+                                        - | TRAFFIC Based on incoming traffic rates on the NIC.
 
-  For example, if you are building for a 32-bit target, you could find the
-  correct directory using the following ``find`` command:
+                                        - | TIME - Uses a busy/quiet hours policy.
 
-  .. code-block:: console
+                                        - | BRANCH_RATIO - Uses branch ratio counters to determine
+                                          | core busyness.
 
-      # find /usr -type d -name pkgconfig
-      /usr/lib/i386-linux-gnu/pkgconfig
-      /usr/lib/x86_64-linux-gnu/pkgconfig
+                                        - | WORKLOAD - Sets the frequency to low, medium or high
+                                          | based on the received policy setting.
 
-  Then use:
+                                        | **Note**: Not all policy types need all parameters. For
+                                        |           example, BRANCH_RATIO only needs the vcpu-list
+                                        |           parameter.
+======================================= ======================================
 
-  .. code-block:: console
+After successful initialization, the VM Power Manager Guest CLI prompt
+appears:
 
-      export PKG_CONFIG_LIBDIR=/usr/lib/i386-linux-gnu/pkgconfig
+.. code-block:: console
 
-  You then use the make command as normal, which should find the 32-bit
-  version of the library, if it installed. If not, the application will
-  be built without the JSON interface functionality.
+   vm_power(guest)>
 
-To build just the ``vm_power_manager`` application using ``meson/ninja``:
+To change the frequency of an lcore, use a ``set_cpu_freq`` command similar
+to the following:
 
 .. code-block:: console
 
-  export RTE_SDK=/path/to/rte_sdk
-  cd ${RTE_SDK}
-  meson build
-  cd build
-  ninja
-  meson configure -Dexamples=vm_power_manager/guest_cli
-  ninja
-
-The resulting binary will be ${RTE_SDK}/build/examples/guest_cli
+   set_cpu_freq {core_num} up|down|min|max
 
-Running
-~~~~~~~
+where, ``{core_num}`` is the lcore and channel to change frequency by
+scaling up/down/min/max.
 
-The standard *EAL* command line parameters are required:
+To start an application, configure the power policy, and send it to the
+host, use a command like the following:
 
 .. code-block:: console
 
- ./build/guest_vm_power_mgr [EAL options] -- [guest options]
+   ./build/guest_vm_power_mgr -l 0-3 -n 4 -- --vm-name=ubuntu --policy=BRANCH_RATIO --vcpu-list=2-4
 
-The guest example uses a channel for each lcore enabled. For example,
-to run on cores 0,1,2,3:
+Once the VM Power Manager Guest CLI appears, issuing the 'send_policy now' command
+will send the policy to the host:
 
 .. code-block:: console
 
- ./build/guest_vm_power_mgr -l 0-3
-
-Optionally, there is a list of command line parameter should the user wish to send a power
-policy down to the host application. These parameters are as follows:
+  send_policy now
 
-  .. code-block:: console
+Once the policy is sent to the host, the host application takes over the power monitoring
+of the specified cores in the policy.
 
-    --vm-name {name of guest vm}
+.. _power_man_requests:
 
-  This parameter allows the user to change the Virtual Machine name passed down to the
-  host application via the power policy. The default is "ubuntu2"
+JSON Interface for Power Management Requests and Policies
+---------------------------------------------------------
 
-  .. code-block:: console
+In addition to the command line interface for the host command, and a
+``virtio-serial`` interface for VM power policies, there is also a JSON
+interface through which power commands and policies can be sent.
 
-    --vcpu-list {list vm cores}
+**Note**: This functionality adds a dependency on the Jansson library.
+Install the Jansson development package on the system to avail of the
+JSON parsing functionality in the app. Issue the ``apt-get install
+libjansson-dev`` command to install the development package. The command
+and package name may be different depending on your operating system. It
+is worth noting that the app builds successfully if this package is not
+present, but a warning displays during compilation, and the JSON parsing
+functionality is not present in the app.
 
-  A comma-separated list of cores in the VM that the user wants the host application to
-  monitor. The list of cores in any vm starts at zero, and these are mapped to the
-  physical cores by the host application once the policy is passed down.
-  Valid syntax includes individual cores '2,3,4', or a range of cores '2-4', or a
-  combination of both '1,3,5-7'
+Send a request or policy to the VM Power Manager by simply opening a
+fifo file at ``/tmp/powermonitor/fifo``, writing a JSON string to that file,
+and closing the file.
 
-  .. code-block:: console
+The JSON string can be a power management request or a policy, and takes
+the following format:
 
-    --busy-hours {list of busy hours}
+.. code-block:: javascript
 
-  A comma-separated list of hours within which to set the core frequency to maximum.
-  Valid syntax includes individual hours '2,3,4', or a range of hours '2-4', or a
-  combination of both '1,3,5-7'. Valid hours are 0 to 23.
+   {"packet_type": {
+   "pair_1": value,
+   "pair_2": value
+   }}
 
-  .. code-block:: console
+The ``packet_type`` header can contain one of two values, depending on
+whether a power management request or policy is being sent. The two
+possible values are ``instruction`` and ``policy`` and the expected name-value
+pairs are different depending on which type is sent.
 
-    --quiet-hours {list of quiet hours}
+The pairs are in the format of standard JSON name-value pairs. The value
+type varies between the different name-value pairs, and may be integers,
+strings, arrays, and so on. See :ref:`json_interface_ex`
+for examples of policies and instructions and
+:ref:`json_name_value_pair` for the supported names and value types.
 
-  A comma-separated list of hours within which to set the core frequency to minimum.
-  Valid syntax includes individual hours '2,3,4', or a range of hours '2-4', or a
-  combination of both '1,3,5-7'. Valid hours are 0 to 23.
+.. _json_interface_ex:
 
-  .. code-block:: console
+JSON Interface Examples
+~~~~~~~~~~~~~~~~~~~~~~~
 
-    --policy {policy type}
+The following is an example JSON string that creates a time-profile
+policy.
 
-  The type of policy. This can be one of the following values:
-  TRAFFIC - based on incoming traffic rates on the NIC.
-  TIME - busy/quiet hours policy.
-  BRANCH_RATIO - uses branch ratio counters to determine core busyness.
-  Not all parameters are needed for all policy types. For example, BRANCH_RATIO
-  only needs the vcpu-list parameter, not any of the hours.
+.. code-block:: JSON
 
+   {"policy": {
+   "name": "ubuntu",
+   "command": "create",
+   "policy_type": "TIME",
+   "busy_hours":[ 17, 18, 19, 20, 21, 22, 23 ],
+   "quiet_hours":[ 2, 3, 4, 5, 6 ],
+   "core_list":[ 11 ]
+   }}
 
-After successful initialization the user is presented with VM Power Manager Guest CLI:
+The following is an example JSON string that removes the named policy.
 
-.. code-block:: console
+.. code-block:: JSON
 
-  vm_power(guest)>
+   {"policy": {
+   "name": "ubuntu",
+   "command": "destroy",
+   }}
 
-To change the frequency of a lcore, use the set_cpu_freq command.
-Where {core_num} is the lcore and channel to change frequency by scaling up/down/min/max.
+The following is an example JSON string for a power management request.
 
-.. code-block:: console
+.. code-block:: JSON
 
-  set_cpu_freq {core_num} up|down|min|max
+   {"instruction": {
+   "name": "ubuntu",
+   "command": "power",
+   "unit": "SCALE_MAX",
+   "resource_id": 10
+   }}
 
 To query the available frequences of an lcore, use the query_cpu_freq command.
 Where {core_num} is the lcore to query.
@@ -783,3 +697,215 @@  will send the policy to the host:
 
 Once the policy is sent to the host, the host application takes over the power monitoring
 of the specified cores in the policy.
+
+.. _json_name_value_pair:
+
+JSON Name-value Pairs
+~~~~~~~~~~~~~~~~~~~~~
+
+The following are the name-value pairs supported by the JSON interface:
+
+-  `avg_packet_thresh`_
+-  `busy_hours`_
+-  `command`_
+-  `core_list`_
+-  `mac_list`_
+-  `max_packet_thresh`_
+-  `name`_
+-  `policy_type`_
+-  `quiet_hours`_
+-  `resource_id`_
+-  `unit`_
+-  `workload`_
+
+avg_packet_thresh
+^^^^^^^^^^^^^^^^^
+
+================== ===========================================================
+ **Pair Name:**     "avg_packet_thresh"
+================== ===========================================================
+ **Description:**   | The threshold below which the frequency is set to the minimum value for the
+                    | TRAFFIC policy. If the traffic rate is above this value and below the
+                    | maximum value, the frequency is set to medium.
+ **Type:**          integer
+ **Values:**        | The number of packets below which the TRAFFIC policy applies the minimum
+                    | frequency, or the medium frequency if between the average and maximum
+                    | thresholds.
+ **Required:**      Yes
+ **Example:**       ``"avg_packet_thresh": 100000``
+================== ===========================================================
+
+busy_hours
+^^^^^^^^^^
+
+================== ===========================================================
+ **Pair Name:**     "busy_hours"
+================== ===========================================================
+ **Description:**   The hours of the day in which we scale up the cores for busy times.
+ **Type:**          array of integers
+ **Values:**        An array with a list of hour values (0-23).
+ **Required:**      For the TIME policy only.
+ **Example:**       ``"busy_hours":[ 17, 18, 19, 20, 21, 22, 23 ]``
+================== ===========================================================
+
+command
+^^^^^^^
+
+================== ===========================================================
+ **Pair Name:**     "command"
+================== ===========================================================
+ **Description:**   | The type of packet to send to the VM Power Manager. It is possible to create
+                    | or destroy a policy or send a direct command to adjust the frequency of a core,
+                    | as is possible on the command line interface.
+ **Type:**          | string
+ **Values:**        Possible values are:
+
+                    - CREATE: Create a new policy.
+                    - DESTROY: Remove an existing policy.
+                    - POWER: Send an immediate command, max, min, and so on.
+
+ **Required:**       Yes
+ **Example:**        ``"command": "CREATE"``
+================== ===========================================================
+
+core_list
+^^^^^^^^^
+
+================== ===========================================================
+ **Pair Name:**     "core_list"
+================== ===========================================================
+ **Description:**   The cores to which to apply a policy.
+ **Type:**          array of integers
+ **Values:**        An array with a list of virtual CPUs.
+ **Required:**      For CREATE/DESTROY policy requests only.
+ **Example:**       ``"core_list":[ 10, 11 ]``
+================== ===========================================================
+
+mac_list
+^^^^^^^^
+
+================== ===========================================================
+ **Pair Name:**     "mac_list"
+================== ===========================================================
+ **Description:**   | When the policy is of type TRAFFIC, it is necessary to specify the MAC addresses
+                    | that the host must monitor.
+ **Type:**          | array of strings
+ **Values:**        An array with a list of mac address strings.
+ **Required:**      For TRAFFIC policy types only.
+ **Example:**       ``"mac_list":[ "de:ad:be:ef:01:01","de:ad:be:ef:01:02" ]``
+================== ===========================================================
+
+
+max_packet_thresh
+^^^^^^^^^^^^^^^^^
+
+================== ===========================================================
+ **Pair Name:**     "max_packet_thresh"
+================== ===========================================================
+ **Description:**   | In a policy of type TRAFFIC, the threshold value above which the frequency is set
+                    | to a maximum.
+ **Type:**          | integer
+ **Values:**        | The number of packets per interval above which the TRAFFIC
+                    | policy applies the maximum frequency.
+ **Required:**      For the TRAFFIC policy only.
+ **Example:**       ``"max_packet_thresh": 500000``
+================== ===========================================================
+
+name
+^^^^
+
+================== ===========================================================
+ **Pair Name:**     "name"
+================== ===========================================================
+ **Description:**   | The name of the VM or host. Allows the parser to associate the policy with the
+                    | relevant VM or host OS.
+ **Type:**          | string
+ **Values:**        Any valid string.
+ **Required:**      Yes
+ **Example:**       ``"name": "ubuntu2"``
+================== ===========================================================
+
+policy_type
+^^^^^^^^^^^
+
+================== ===========================================================
+ **Pair Name:**     "policy_type"
+================== ===========================================================
+ **Description:**   | The type of policy to apply. See the ``--policy`` option description for more
+                    | information.
+ **Type:**          string
+ **Values:**        Possible values are:
+
+                    - | TIME: Time-of-day policy. Scale the frequencies of the relevant cores up/down
+                      | depending on busy and quiet hours.
+                    - | TRAFFIC: Use statistics from the NIC and scale up and down accordingly.
+                    - | WORKLOAD: Determine how heavily loaded the cores are and scale up and down
+                      | accordingly.
+                    - | BRANCH_RATIO: An out-of-band policy that looks at the ratio between branch
+                      | hits and misses on a core and uses that information to determine how much
+                      | packet processing a core is doing.
+
+ **Required:**       For ``CREATE`` and ``DESTROY`` policy requests only.
+ **Example:**        ``"policy_type": "TIME"``
+================== ===========================================================
+
+quiet_hours
+^^^^^^^^^^^
+
+================== ===========================================================
+ **Pair Name:**     "quiet_hours"
+================== ===========================================================
+ **Description:**   | The hours of the day to scale down the cores for quiet times.
+ **Type:**          array of integers
+ **Values:**        | An array with a list of hour numbers with values in the range 0 to 23.
+ **Required:**      For the TIME policy only.
+ **Example:**       ``"quiet_hours":[ 2, 3, 4, 5, 6 ]``
+================== ===========================================================
+
+resource_id
+^^^^^^^^^^^
+
+================== ===========================================================
+ **Pair Name:**     "resource_id"
+================== ===========================================================
+ **Description:**   The core to which to apply a power command.
+ **Type:**          integer
+ **Values:**        A valid core ID for the VM or host OS.
+ **Required:**      For the ``POWER`` instruction only.
+ **Example:**       ``"resource_id": 10``
+================== ===========================================================
+
+unit
+^^^^
+
+================== ===========================================================
+ **Pair Name:**     "unit"
+================== ===========================================================
+ **Description:**   The type of power operation to apply in the command.
+ **Type:**          string
+ **Values:**         - SCALE_MAX: Scale the frequency of this core to the maximum.
+                     - SCALE_MIN: Scale the frequency of this core to the minimum.
+                     - SCALE_UP: Scale up the frequency of this core.
+                     - SCALE_DOWN: Scale down the frequency of this core.
+                     - ENABLE_TURBO: Enable Intel® Turbo Boost Technology for this core.
+                     - DISABLE_TURBO: Disable Intel® Turbo Boost Technology for this core.
+ **Required:**      For the ``POWER`` instruction only.
+ **Example:**       ``"unit": "SCALE_MAX"``
+================== ===========================================================
+
+workload
+^^^^^^^^
+
+================== ===========================================================
+ **Pair Name:**     "workload"
+================== ===========================================================
+ **Description:**   In a policy of type WORKLOAD, it is necessary to specify
+                    how heavy the workload is.
+ **Type:**          string
+ **Values:**         - HIGH: Scale the frequency of this core to maximum.
+                     - MEDIUM: Scale the frequency of this core to minimum.
+                     - LOW: Scale up the frequency of this core.
+ **Required:**       For the ``WORKLOAD`` policy only.
+ **Example:**        ``"workload": "MEDIUM"``
+================== ===========================================================
+