get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/64262/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 64262,
    "url": "http://patches.dpdk.org/api/patches/64262/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200107091343.22965-1-david.hunt@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20200107091343.22965-1-david.hunt@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200107091343.22965-1-david.hunt@intel.com",
    "date": "2020-01-07T09:13:43",
    "name": "[v1] doc: rework vm power manager user guide",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "4b0a95cdd8a73feb955fb8eb33ea90ef1b1075c7",
    "submitter": {
        "id": 342,
        "url": "http://patches.dpdk.org/api/people/342/?format=api",
        "name": "Hunt, David",
        "email": "david.hunt@intel.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200107091343.22965-1-david.hunt@intel.com/mbox/",
    "series": [
        {
            "id": 8001,
            "url": "http://patches.dpdk.org/api/series/8001/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=8001",
            "date": "2020-01-07T09:13:43",
            "name": "[v1] doc: rework vm power manager user guide",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/8001/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/64262/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/64262/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 69554A04F6;\n\tTue,  7 Jan 2020 10:14:15 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id AF6B91D646;\n\tTue,  7 Jan 2020 10:14:14 +0100 (CET)",
            "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n by dpdk.org (Postfix) with ESMTP id 4513B1C11F\n for <dev@dpdk.org>; Tue,  7 Jan 2020 10:14:12 +0100 (CET)",
            "from orsmga003.jf.intel.com ([10.7.209.27])\n by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n 07 Jan 2020 01:14:09 -0800",
            "from silpixa00399952.ir.intel.com (HELO\n silpixa00399952.ger.corp.intel.com) ([10.237.222.38])\n by orsmga003.jf.intel.com with ESMTP; 07 Jan 2020 01:14:05 -0800"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.69,405,1571727600\";\n d=\"scan'208,217\";a=\"223120375\"",
        "From": "David Hunt <david.hunt@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "john.mcnamara@intel.com, marko.kovacevic@intel.com,\n David Hunt <david.hunt@intel.com>",
        "Date": "Tue,  7 Jan 2020 09:13:43 +0000",
        "Message-Id": "<20200107091343.22965-1-david.hunt@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v1] doc: rework vm power manager user guide",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Review and re-work of vm_power_manager documentation. Hopefully this\nis clearer, easier to follow.\n\nSigned-off-by: David Hunt <david.hunt@intel.com>\n---\n .../img/vm_power_mgr_highlevel.svg            | 2189 +++++++++++------\n .../img/vm_power_mgr_vm_request_seq.svg       | 1455 +++++------\n .../sample_app_ug/vm_power_management.rst     | 1194 +++++----\n 3 files changed, 2775 insertions(+), 2063 deletions(-)",
    "diff": "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\nindex 92f882674..c251bcda6 100644\n--- a/doc/guides/sample_app_ug/img/vm_power_mgr_highlevel.svg\n+++ b/doc/guides/sample_app_ug/img/vm_power_mgr_highlevel.svg\n@@ -1,710 +1,1491 @@\n <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n-<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n-<!-- Generated by Microsoft Visio, SVG Export vm_power_mgr_highlevel.svg Page-1 -->\n+<!-- Created with Inkscape (http://www.inkscape.org/) -->\n \n <!-- SPDX-License-Identifier: BSD-3-Clause -->\n <!-- Copyright(c) 2014 Intel Corporation -->\n \n-<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\"\n-\t\twidth=\"7.96928in\" height=\"6.37479in\" viewBox=\"0 0 573.788 458.985\" xml:space=\"preserve\" color-interpolation-filters=\"sRGB\"\n-\t\tclass=\"st28\">\n-\t<style type=\"text/css\">\n-\t<![CDATA[\n-\t\t.st1 {visibility:visible}\n-\t\t.st2 {fill:#464646;fill-opacity:0.5;stroke:#464646;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.5}\n-\t\t.st3 {fill:url(#grad0-6);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}\n-\t\t.st4 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-weight:bold}\n-\t\t.st5 {fill:#464646;fill-opacity:0.5}\n-\t\t.st6 {stroke:#464646;stroke-linecap:butt;stroke-opacity:0.5;stroke-width:0.25}\n-\t\t.st7 {fill:url(#grad0-15)}\n-\t\t.st8 {stroke:#1f497d;stroke-linecap:butt;stroke-width:0.25}\n-\t\t.st9 {fill:#464646;fill-opacity:0.5;stroke:#464646;stroke-linecap:butt;stroke-opacity:0.5;visibility:hidden}\n-\t\t.st10 {fill:url(#grad0-15);stroke:#1f497d;stroke-linecap:butt;stroke-width:0.25;visibility:hidden}\n-\t\t.st11 {fill:#000000;font-family:Arial;font-size:0.666664em;font-weight:bold}\n-\t\t.st12 {fill:url(#grad0-15);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}\n-\t\t.st13 {fill:#000000;font-family:Arial;font-size:0.666664em}\n-\t\t.st14 {font-size:1em}\n-\t\t.st15 {fill:url(#grad0-196);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}\n-\t\t.st16 {fill:url(#grad0-229);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}\n-\t\t.st17 {font-family:Symbol;font-size:1em;font-weight:normal}\n-\t\t.st18 {font-size:1em;font-weight:normal}\n-\t\t.st19 {fill:url(#grad0-282);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}\n-\t\t.st20 {fill:url(#grad0-344);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}\n-\t\t.st21 {fill:url(#grad0-357);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}\n-\t\t.st22 {fill:url(#grad0-418);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}\n-\t\t.st23 {fill:url(#grad0-431);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25}\n-\t\t.st24 {marker-end:url(#mrkr5-440);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}\n-\t\t.st25 {fill:#1f497d;fill-opacity:1;stroke:#1f497d;stroke-opacity:1;stroke-width:0.28409090909091}\n-\t\t.st26 {marker-end:url(#mrkr5-440);marker-start:url(#mrkr5-460);stroke:#1f497d;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}\n-\t\t.st27 {fill:#ffffff;stroke:none;stroke-linecap:butt;stroke-width:7.2}\n-\t\t.st28 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}\n-\t]]>\n-\t</style>\n-\n-\t<defs id=\"Patterns_And_Gradients\">\n-\t\t<linearGradient id=\"grad0-6\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\" gradientTransform=\"rotate(90 0.5 0.5)\">\n-\t\t\t<stop offset=\"0\" stop-color=\"#bdd194\" stop-opacity=\"1\"/>\n-\t\t\t<stop offset=\"1\" stop-color=\"#a5c06b\" stop-opacity=\"1\"/>\n-\t\t</linearGradient>\n-\t\t<linearGradient id=\"grad0-15\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\" gradientTransform=\"rotate(90 0.5 0.5)\">\n-\t\t\t<stop offset=\"0\" stop-color=\"#b6c8de\" stop-opacity=\"1\"/>\n-\t\t\t<stop offset=\"1\" stop-color=\"#9ab3d1\" stop-opacity=\"1\"/>\n-\t\t</linearGradient>\n-\t\t<linearGradient id=\"grad0-196\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\" gradientTransform=\"rotate(90 0.5 0.5)\">\n-\t\t\t<stop offset=\"0\" stop-color=\"#e9f4f8\" stop-opacity=\"1\"/>\n-\t\t\t<stop offset=\"1\" stop-color=\"#e1f1f5\" stop-opacity=\"1\"/>\n-\t\t</linearGradient>\n-\t\t<linearGradient id=\"grad0-229\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\" gradientTransform=\"rotate(90 0.5 0.5)\">\n-\t\t\t<stop offset=\"0\" stop-color=\"#ffffff\" stop-opacity=\"1\"/>\n-\t\t\t<stop offset=\"1\" stop-color=\"#ffffff\" stop-opacity=\"1\"/>\n-\t\t</linearGradient>\n-\t\t<linearGradient id=\"grad0-282\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\" gradientTransform=\"rotate(90 0.5 0.5)\">\n-\t\t\t<stop offset=\"0\" stop-color=\"#dc9e9c\" stop-opacity=\"1\"/>\n-\t\t\t<stop offset=\"1\" stop-color=\"#ce7977\" stop-opacity=\"1\"/>\n-\t\t</linearGradient>\n-\t\t<linearGradient id=\"grad0-344\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\" gradientTransform=\"rotate(90 0.5 0.5)\">\n-\t\t\t<stop offset=\"0\" stop-color=\"#b6cc88\" stop-opacity=\"1\"/>\n-\t\t\t<stop offset=\"1\" stop-color=\"#a5c06b\" stop-opacity=\"1\"/>\n-\t\t</linearGradient>\n-\t\t<linearGradient id=\"grad0-357\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\" gradientTransform=\"rotate(90 0.5 0.5)\">\n-\t\t\t<stop offset=\"0\" stop-color=\"#fab781\" stop-opacity=\"1\"/>\n-\t\t\t<stop offset=\"1\" stop-color=\"#f89c52\" stop-opacity=\"1\"/>\n-\t\t</linearGradient>\n-\t\t<linearGradient id=\"grad0-418\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\" gradientTransform=\"rotate(90 0.5 0.5)\">\n-\t\t\t<stop offset=\"0\" stop-color=\"#acc8ea\" stop-opacity=\"1\"/>\n-\t\t\t<stop offset=\"1\" stop-color=\"#8db3e2\" stop-opacity=\"1\"/>\n-\t\t</linearGradient>\n-\t\t<linearGradient id=\"grad0-431\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\" gradientTransform=\"rotate(90 0.5 0.5)\">\n-\t\t\t<stop offset=\"0\" stop-color=\"#e2e2e2\" stop-opacity=\"1\"/>\n-\t\t\t<stop offset=\"1\" stop-color=\"#d8d8d8\" stop-opacity=\"1\"/>\n-\t\t</linearGradient>\n-\t\t<linearGradient id=\"grad0-437\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\" gradientTransform=\"rotate(90 0.5 0.5)\">\n-\t\t\t<stop offset=\"0\" stop-color=\"#c4d2e3\" stop-opacity=\"1\"/>\n-\t\t\t<stop offset=\"1\" stop-color=\"#9ab3d1\" stop-opacity=\"1\"/>\n-\t\t</linearGradient>\n-\t</defs>\n-\t<defs id=\"Markers\">\n-\t\t<g id=\"lend5\">\n-\t\t\t<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\"/>\n-\t\t</g>\n-\t\t<marker id=\"mrkr5-440\" class=\"st25\" refX=\"-6.16\" orient=\"auto\" markerUnits=\"strokeWidth\" overflow=\"visible\">\n-\t\t\t<use xlink:href=\"#lend5\" transform=\"scale(-3.52,-3.52) \"/>\n-\t\t</marker>\n-\t\t<marker id=\"mrkr5-460\" class=\"st25\" refX=\"5.8\" orient=\"auto\" markerUnits=\"strokeWidth\" overflow=\"visible\">\n-\t\t\t<use xlink:href=\"#lend5\" transform=\"scale(3.52) \"/>\n-\t\t</marker>\n-\t</defs>\n-\t<g>\n-\t\t<title>Page-1</title>\n-\t\t<g id=\"shape1-1\" transform=\"translate(18.3,-19.74)\">\n-\t\t\t<title>Box</title>\n-\t\t\t<desc>Host</desc>\n-\t\t\t<g id=\"shadow1-2\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"239.3\" width=\"405.354\" height=\"219.685\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"239.3\" width=\"405.354\" height=\"219.685\" class=\"st3\"/>\n-\t\t\t<text x=\"191.19\" y=\"451.39\" class=\"st4\">Host</text>\t\t</g>\n-\t\t<g id=\"group59-8\" transform=\"translate(585.399,54.9035) rotate(76.5904)\">\n-\t\t\t<title>1-D single.59</title>\n-\t\t\t<g id=\"shape63-9\">\n-\t\t\t\t<title>Sheet.63</title>\n-\t\t\t\t<g id=\"shadow63-10\" transform=\"matrix(1,0,0,1,1.73469,-1.06679)\" class=\"st1\">\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t L0 456.15 Z\" class=\"st5\"/>\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\"\n-\t\t\t\t\t\t\tclass=\"st6\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t -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\n-\t\t\t\t\t\t\t Z\" class=\"st7\"/>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t -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\"/>\n-\t\t\t</g>\n-\t\t\t<g id=\"shape64-17\">\n-\t\t\t\t<title>Sheet.64</title>\n-\t\t\t\t<g id=\"shadow64-18\" transform=\"matrix(1,0,0,1,1.73469,-1.06679)\" class=\"st1\">\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t 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\"/>\n-\t\t\t</g>\n-\t\t\t<g id=\"shape65-24\" transform=\"translate(-2.82107,-2.88265)\">\n-\t\t\t\t<title>Sheet.65</title>\n-\t\t\t\t<g id=\"shadow65-25\" transform=\"matrix(1,0,0,1,1.73469,-1.06679)\" class=\"st1\">\n-\t\t\t\t\t<rect x=\"0\" y=\"453.412\" width=\"1.24186\" height=\"5.57329\" rx=\"0.620928\" ry=\"0.620928\" class=\"st9\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<rect x=\"0\" y=\"453.412\" width=\"1.24186\" height=\"5.57329\" rx=\"0.620928\" ry=\"0.620928\" class=\"st10\"/>\n-\t\t\t</g>\n-\t\t</g>\n-\t\t<g id=\"group54-29\" transform=\"translate(656.289,-75.8304) rotate(58.6472)\">\n-\t\t\t<title>1-D single.54</title>\n-\t\t\t<g id=\"shape56-30\">\n-\t\t\t\t<title>Sheet.56</title>\n-\t\t\t\t<g id=\"shadow56-31\" transform=\"matrix(1,0,0,1,1.97897,-0.480491)\" class=\"st1\">\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t L0 456.15 Z\" class=\"st5\"/>\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\"\n-\t\t\t\t\t\t\tclass=\"st6\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t -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\n-\t\t\t\t\t\t\t Z\" class=\"st7\"/>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t -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\"/>\n-\t\t\t</g>\n-\t\t\t<g id=\"shape57-37\">\n-\t\t\t\t<title>Sheet.57</title>\n-\t\t\t\t<g id=\"shadow57-38\" transform=\"matrix(1,0,0,1,1.97897,-0.480491)\" class=\"st1\">\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t 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\"/>\n-\t\t\t</g>\n-\t\t\t<g id=\"shape58-44\" transform=\"translate(-3.21337,-2.88265)\">\n-\t\t\t\t<title>Sheet.58</title>\n-\t\t\t\t<g id=\"shadow58-45\" transform=\"matrix(1,0,0,1,1.97897,-0.480491)\" class=\"st1\">\n-\t\t\t\t\t<rect x=\"0\" y=\"453.412\" width=\"1.41455\" height=\"5.57329\" rx=\"0.707276\" ry=\"0.707276\" class=\"st9\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<rect x=\"0\" y=\"453.412\" width=\"1.41455\" height=\"5.57329\" rx=\"0.707276\" ry=\"0.707276\" class=\"st10\"/>\n-\t\t\t</g>\n-\t\t</g>\n-\t\t<g id=\"shape10-49\" transform=\"translate(18.3,-298.953)\">\n-\t\t\t<title>Box.10</title>\n-\t\t\t<desc>VM 0</desc>\n-\t\t\t<g id=\"shadow10-50\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"317.253\" width=\"201.26\" height=\"141.732\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"317.253\" width=\"201.26\" height=\"141.732\" class=\"st3\"/>\n-\t\t\t<text x=\"91.29\" y=\"414.52\" class=\"st11\">VM 0</text>\t\t</g>\n-\t\t<g id=\"shape2-55\" transform=\"translate(18.3,-48.7951)\">\n-\t\t\t<title>Box.2</title>\n-\t\t\t<desc>Core 0</desc>\n-\t\t\t<g id=\"shadow2-56\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st12\"/>\n-\t\t\t<text x=\"12.09\" y=\"443.31\" class=\"st13\">Core 0</text>\t\t</g>\n-\t\t<g id=\"shape3-61\" transform=\"translate(69.3236,-48.7951)\">\n-\t\t\t<title>Box.3</title>\n-\t\t\t<desc>Core 1</desc>\n-\t\t\t<g id=\"shadow3-62\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st12\"/>\n-\t\t\t<text x=\"12.09\" y=\"443.31\" class=\"st13\">Core 1</text>\t\t</g>\n-\t\t<g id=\"shape4-67\" transform=\"translate(120.347,-48.7951)\">\n-\t\t\t<title>Box.4</title>\n-\t\t\t<desc>Core 2</desc>\n-\t\t\t<g id=\"shadow4-68\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st12\"/>\n-\t\t\t<text x=\"12.09\" y=\"443.31\" class=\"st13\">Core 2</text>\t\t</g>\n-\t\t<g id=\"shape5-73\" transform=\"translate(171.371,-48.7951)\">\n-\t\t\t<title>Box.5</title>\n-\t\t\t<desc>Core 3</desc>\n-\t\t\t<g id=\"shadow5-74\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st12\"/>\n-\t\t\t<text x=\"12.09\" y=\"443.31\" class=\"st13\">Core 3</text>\t\t</g>\n-\t\t<g id=\"shape6-79\" transform=\"translate(222.394,-48.7951)\">\n-\t\t\t<title>Box.6</title>\n-\t\t\t<desc>Core 4</desc>\n-\t\t\t<g id=\"shadow6-80\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st12\"/>\n-\t\t\t<text x=\"12.09\" y=\"443.31\" class=\"st13\">Core 4</text>\t\t</g>\n-\t\t<g id=\"shape7-85\" transform=\"translate(273.418,-48.7951)\">\n-\t\t\t<title>Box.7</title>\n-\t\t\t<desc>Core 5</desc>\n-\t\t\t<g id=\"shadow7-86\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st12\"/>\n-\t\t\t<text x=\"12.09\" y=\"443.31\" class=\"st13\">Core 5</text>\t\t</g>\n-\t\t<g id=\"shape8-91\" transform=\"translate(324.442,-48.7951)\">\n-\t\t\t<title>Box.8</title>\n-\t\t\t<desc>Core 6</desc>\n-\t\t\t<g id=\"shadow8-92\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st12\"/>\n-\t\t\t<text x=\"12.09\" y=\"443.31\" class=\"st13\">Core 6</text>\t\t</g>\n-\t\t<g id=\"shape9-97\" transform=\"translate(375.465,-48.7951)\">\n-\t\t\t<title>Box.9</title>\n-\t\t\t<desc>Core 7</desc>\n-\t\t\t<g id=\"shadow9-98\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st12\"/>\n-\t\t\t<text x=\"12.09\" y=\"443.31\" class=\"st13\">Core 7</text>\t\t</g>\n-\t\t<g id=\"shape11-103\" transform=\"translate(18.3,-298.953)\">\n-\t\t\t<title>Box.11</title>\n-\t\t\t<desc>Virtual Core 0</desc>\n-\t\t\t<g id=\"shadow11-104\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st12\"/>\n-\t\t\t<text x=\"12.76\" y=\"438.51\" class=\"st13\">Virtual <tspan x=\"12.09\" dy=\"1.2em\" class=\"st14\">Core </tspan>0</text>\t\t</g>\n-\t\t<g id=\"shape12-110\" transform=\"translate(69.3236,-298.953)\">\n-\t\t\t<title>Box.12</title>\n-\t\t\t<desc>Virtual Core 1</desc>\n-\t\t\t<g id=\"shadow12-111\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st12\"/>\n-\t\t\t<text x=\"12.76\" y=\"438.51\" class=\"st13\">Virtual <tspan x=\"12.09\" dy=\"1.2em\" class=\"st14\">Core </tspan>1</text>\t\t</g>\n-\t\t<g id=\"shape13-117\" transform=\"translate(120.347,-298.953)\">\n-\t\t\t<title>Box.13</title>\n-\t\t\t<desc>Virtual Core 2</desc>\n-\t\t\t<g id=\"shadow13-118\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st12\"/>\n-\t\t\t<text x=\"12.76\" y=\"438.51\" class=\"st13\">Virtual <tspan x=\"12.09\" dy=\"1.2em\" class=\"st14\">Core </tspan>2</text>\t\t</g>\n-\t\t<g id=\"shape14-124\" transform=\"translate(171.371,-298.953)\">\n-\t\t\t<title>Box.14</title>\n-\t\t\t<desc>Virtual Core 3</desc>\n-\t\t\t<g id=\"shadow14-125\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st12\"/>\n-\t\t\t<text x=\"12.76\" y=\"438.51\" class=\"st13\">Virtual <tspan x=\"12.09\" dy=\"1.2em\" class=\"st14\">Core </tspan>3</text>\t\t</g>\n-\t\t<g id=\"group16-131\" transform=\"translate(333.737,-187.264) rotate(39.9929)\">\n-\t\t\t<title>1-D single</title>\n-\t\t\t<g id=\"shape17-132\">\n-\t\t\t\t<title>Sheet.17</title>\n-\t\t\t\t<g id=\"shadow17-133\" transform=\"matrix(1,0,0,1,2.0287,0.177741)\" class=\"st1\">\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t L0 456.15 Z\" class=\"st5\"/>\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\"\n-\t\t\t\t\t\t\tclass=\"st6\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t -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\n-\t\t\t\t\t\t\t Z\" class=\"st7\"/>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t -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\"/>\n-\t\t\t</g>\n-\t\t\t<g id=\"shape18-139\">\n-\t\t\t\t<title>Sheet.18</title>\n-\t\t\t\t<g id=\"shadow18-140\" transform=\"matrix(1,0,0,1,2.0287,0.177741)\" class=\"st1\">\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t 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\"/>\n-\t\t\t</g>\n-\t\t\t<g id=\"shape19-146\" transform=\"translate(-4.26978,-2.88265)\">\n-\t\t\t\t<title>Sheet.19</title>\n-\t\t\t\t<g id=\"shadow19-147\" transform=\"matrix(1,0,0,1,2.0287,0.177741)\" class=\"st1\">\n-\t\t\t\t\t<rect x=\"0\" y=\"453.412\" width=\"1.87959\" height=\"5.57329\" rx=\"0.939796\" ry=\"0.939796\" class=\"st9\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<rect x=\"0\" y=\"453.412\" width=\"1.87959\" height=\"5.57329\" rx=\"0.939796\" ry=\"0.939796\" class=\"st10\"/>\n-\t\t\t</g>\n-\t\t</g>\n-\t\t<g id=\"group20-151\" transform=\"translate(534.375,54.9035) rotate(76.5904)\">\n-\t\t\t<title>1-D single.20</title>\n-\t\t\t<g id=\"shape21-152\">\n-\t\t\t\t<title>Sheet.21</title>\n-\t\t\t\t<g id=\"shadow21-153\" transform=\"matrix(1,0,0,1,1.73469,-1.06679)\" class=\"st1\">\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t L0 456.15 Z\" class=\"st5\"/>\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\"\n-\t\t\t\t\t\t\tclass=\"st6\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t -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\n-\t\t\t\t\t\t\t Z\" class=\"st7\"/>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t -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\"/>\n-\t\t\t</g>\n-\t\t\t<g id=\"shape22-159\">\n-\t\t\t\t<title>Sheet.22</title>\n-\t\t\t\t<g id=\"shadow22-160\" transform=\"matrix(1,0,0,1,1.73469,-1.06679)\" class=\"st1\">\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t 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\"/>\n-\t\t\t</g>\n-\t\t\t<g id=\"shape23-166\" transform=\"translate(-2.82107,-2.88265)\">\n-\t\t\t\t<title>Sheet.23</title>\n-\t\t\t\t<g id=\"shadow23-167\" transform=\"matrix(1,0,0,1,1.73469,-1.06679)\" class=\"st1\">\n-\t\t\t\t\t<rect x=\"0\" y=\"453.412\" width=\"1.24186\" height=\"5.57329\" rx=\"0.620928\" ry=\"0.620928\" class=\"st9\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<rect x=\"0\" y=\"453.412\" width=\"1.24186\" height=\"5.57329\" rx=\"0.620928\" ry=\"0.620928\" class=\"st10\"/>\n-\t\t\t</g>\n-\t\t</g>\n-\t\t<g id=\"group28-171\" transform=\"translate(636.422,54.9035) rotate(76.5904)\">\n-\t\t\t<title>1-D single.28</title>\n-\t\t\t<g id=\"shape29-172\">\n-\t\t\t\t<title>Sheet.29</title>\n-\t\t\t\t<g id=\"shadow29-173\" transform=\"matrix(1,0,0,1,1.73469,-1.06679)\" class=\"st1\">\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t L0 456.15 Z\" class=\"st5\"/>\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\"\n-\t\t\t\t\t\t\tclass=\"st6\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t -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\n-\t\t\t\t\t\t\t Z\" class=\"st7\"/>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t -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\"/>\n-\t\t\t</g>\n-\t\t\t<g id=\"shape30-179\">\n-\t\t\t\t<title>Sheet.30</title>\n-\t\t\t\t<g id=\"shadow30-180\" transform=\"matrix(1,0,0,1,1.73469,-1.06679)\" class=\"st1\">\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t 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\"/>\n-\t\t\t</g>\n-\t\t\t<g id=\"shape31-186\" transform=\"translate(-2.82107,-2.88265)\">\n-\t\t\t\t<title>Sheet.31</title>\n-\t\t\t\t<g id=\"shadow31-187\" transform=\"matrix(1,0,0,1,1.73469,-1.06679)\" class=\"st1\">\n-\t\t\t\t\t<rect x=\"0\" y=\"453.412\" width=\"1.24186\" height=\"5.57329\" rx=\"0.620928\" ry=\"0.620928\" class=\"st9\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<rect x=\"0\" y=\"453.412\" width=\"1.24186\" height=\"5.57329\" rx=\"0.620928\" ry=\"0.620928\" class=\"st10\"/>\n-\t\t\t</g>\n-\t\t</g>\n-\t\t<g id=\"shape32-191\" transform=\"translate(18.3,-417.299)\">\n-\t\t\t<title>Box.32</title>\n-\t\t\t<desc>DPDK Application</desc>\n-\t\t\t<g id=\"shadow32-192\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"435.599\" width=\"201.26\" height=\"23.3858\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"435.599\" width=\"201.26\" height=\"23.3858\" class=\"st15\"/>\n-\t\t\t<text x=\"68.84\" y=\"446.8\" class=\"st13\">DPDK Application</text>\t\t</g>\n-\t\t<g id=\"shape33-198\" transform=\"translate(245.072,-298.953)\">\n-\t\t\t<title>Box.33</title>\n-\t\t\t<desc>VM 1</desc>\n-\t\t\t<g id=\"shadow33-199\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"317.253\" width=\"99.2126\" height=\"141.732\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"317.253\" width=\"99.2126\" height=\"141.732\" class=\"st3\"/>\n-\t\t\t<text x=\"40.27\" y=\"414.52\" class=\"st11\">VM 1</text>\t\t</g>\n-\t\t<g id=\"shape34-204\" transform=\"translate(245.072,-298.953)\">\n-\t\t\t<title>Box.34</title>\n-\t\t\t<desc>Virtual Core 0</desc>\n-\t\t\t<g id=\"shadow34-205\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st12\"/>\n-\t\t\t<text x=\"12.76\" y=\"438.51\" class=\"st13\">Virtual <tspan x=\"12.09\" dy=\"1.2em\" class=\"st14\">Core </tspan>0</text>\t\t</g>\n-\t\t<g id=\"shape35-211\" transform=\"translate(296.095,-298.953)\">\n-\t\t\t<title>Box.35</title>\n-\t\t\t<desc>Virtual Core 1</desc>\n-\t\t\t<g id=\"shadow35-212\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"422.843\" width=\"48.189\" height=\"36.1417\" class=\"st12\"/>\n-\t\t\t<text x=\"12.76\" y=\"438.51\" class=\"st13\">Virtual <tspan x=\"12.09\" dy=\"1.2em\" class=\"st14\">Core </tspan>1</text>\t\t</g>\n-\t\t<g id=\"shape36-218\" transform=\"translate(245.072,-417.299)\">\n-\t\t\t<title>Box.36</title>\n-\t\t\t<desc>DPDK Application</desc>\n-\t\t\t<g id=\"shadow36-219\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"435.599\" width=\"99.2126\" height=\"23.3858\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"435.599\" width=\"99.2126\" height=\"23.3858\" class=\"st15\"/>\n-\t\t\t<text x=\"17.81\" y=\"446.8\" class=\"st13\">DPDK Application</text>\t\t</g>\n-\t\t<g id=\"shape49-224\" transform=\"translate(372.631,-334.488)\">\n-\t\t\t<title>Box.49</title>\n-\t\t\t<desc>DPDK VM Application Reuse librte_power interface, but provide...</desc>\n-\t\t\t<g id=\"shadow49-225\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"352.788\" width=\"175.748\" height=\"106.197\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"352.788\" width=\"175.748\" height=\"106.197\" class=\"st16\"/>\n-\t\t\t<text x=\"4\" y=\"363.99\" class=\"st11\">DPDK VM Application <tspan x=\"4\" dy=\"1.212em\" class=\"st17\">·</tspan><tspan\n-\t\t\t\t\t\tclass=\"st17\"> </tspan><tspan class=\"st18\">Reuse </tspan>librte_power<tspan class=\"st18\"> </tspan><tspan\n-\t\t\t\t\t\tclass=\"st18\">interface</tspan><tspan class=\"st18\">, </tspan><tspan class=\"st18\">but </tspan><tspan x=\"22\"\n-\t\t\t\t\t\tdy=\"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\n-\t\t\t\t\t\tx=\"22\" dy=\"1.2em\" class=\"st18\">via Virtio</tspan><tspan class=\"st18\">-</tspan><tspan class=\"st18\">Serial channel </tspan><tspan\n-\t\t\t\t\t\tx=\"4\" dy=\"1.212em\" class=\"st17\">·</tspan><tspan class=\"st17\"> </tspan><tspan class=\"st18\">Each lcore has exclusive access to a </tspan><tspan\n-\t\t\t\t\t\tx=\"22\" dy=\"1.204em\" class=\"st18\">single channel </tspan><tspan x=\"4\" dy=\"1.212em\" class=\"st17\">·</tspan><tspan\n-\t\t\t\t\t\tclass=\"st17\"> </tspan><tspan class=\"st18\">Sample application re</tspan><tspan class=\"st18\">-</tspan><tspan\n-\t\t\t\t\t\tclass=\"st18\">uses </tspan>l3fwd_power <tspan x=\"4\" dy=\"1.216em\" class=\"st17\">·</tspan><tspan class=\"st17\"> </tspan><tspan\n-\t\t\t\t\t\tclass=\"st18\">A CLI for changing frequency from within </tspan><tspan x=\"22\" dy=\"1.204em\" class=\"st18\">a VM is also included</tspan><tspan\n-\t\t\t\t\t\tclass=\"st18\">.</tspan></text>\t\t</g>\n-\t\t<g id=\"group37-257\" transform=\"translate(769.581,100.51) rotate(82.4551)\">\n-\t\t\t<title>1-D single.37</title>\n-\t\t\t<g id=\"shape38-258\">\n-\t\t\t\t<title>Sheet.38</title>\n-\t\t\t\t<g id=\"shadow38-259\" transform=\"matrix(1,0,0,1,1.61661,-1.23846)\" class=\"st1\">\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t L0 456.15 Z\" class=\"st5\"/>\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\"\n-\t\t\t\t\t\t\tclass=\"st6\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t -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\n-\t\t\t\t\t\t\t Z\" class=\"st7\"/>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t -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\"/>\n-\t\t\t</g>\n-\t\t\t<g id=\"shape39-265\">\n-\t\t\t\t<title>Sheet.39</title>\n-\t\t\t\t<g id=\"shadow39-266\" transform=\"matrix(1,0,0,1,1.61661,-1.23846)\" class=\"st1\">\n-\t\t\t\t\t<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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t\t 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\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t 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\n-\t\t\t\t\t\t\t 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\"/>\n-\t\t\t</g>\n-\t\t\t<g id=\"shape40-272\" transform=\"translate(-2.76812,-2.88265)\">\n-\t\t\t\t<title>Sheet.40</title>\n-\t\t\t\t<g id=\"shadow40-273\" transform=\"matrix(1,0,0,1,1.61661,-1.23846)\" class=\"st1\">\n-\t\t\t\t\t<rect x=\"0\" y=\"453.412\" width=\"1.21855\" height=\"5.57329\" rx=\"0.609275\" ry=\"0.609275\" class=\"st9\"/>\n-\t\t\t\t</g>\n-\t\t\t\t<rect x=\"0\" y=\"453.412\" width=\"1.21855\" height=\"5.57329\" rx=\"0.609275\" ry=\"0.609275\" class=\"st10\"/>\n-\t\t\t</g>\n-\t\t</g>\n-\t\t<g id=\"shape15-277\" transform=\"translate(18.3,-99.8187)\">\n-\t\t\t<title>Box.15</title>\n-\t\t\t<desc>OS/Hypervisor</desc>\n-\t\t\t<g id=\"shadow15-278\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"319.379\" width=\"405.354\" height=\"139.606\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"319.379\" width=\"405.354\" height=\"139.606\" class=\"st19\"/>\n-\t\t\t<text x=\"174.89\" y=\"452.58\" class=\"st11\">OS/Hypervisor</text>\t\t</g>\n-\t\t<g id=\"shape55-284\" transform=\"translate(237.985,-159.346)\">\n-\t\t\t<title>Box.55</title>\n-\t\t\t<desc>Linux “userspace” power governor /sys/devices/system/cpu/cpuN...</desc>\n-\t\t\t<g id=\"shadow55-285\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"430.638\" width=\"167.244\" height=\"28.3465\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"430.638\" width=\"167.244\" height=\"28.3465\" class=\"st19\"/>\n-\t\t\t<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>\t\t</g>\n-\t\t<g id=\"shape45-291\" transform=\"translate(429.324,-60.1337)\">\n-\t\t\t<title>Box.45</title>\n-\t\t\t<desc>VM Power Monitor Accepts VM Commands over Virtio Serial endpo...</desc>\n-\t\t\t<g id=\"shadow45-292\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"254.89\" width=\"130.519\" height=\"204.094\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"254.89\" width=\"130.519\" height=\"204.094\" class=\"st16\"/>\n-\t\t\t<text x=\"4\" y=\"266.09\" class=\"st11\">VM Power Monitor <tspan x=\"4\" dy=\"1.212em\" class=\"st17\">·</tspan><tspan\n-\t\t\t\t\t\tclass=\"st17\"> </tspan><tspan class=\"st18\">Accepts VM Commands over </tspan><tspan x=\"22\" dy=\"1.204em\"\n-\t\t\t\t\t\tclass=\"st18\">Virtio Serial endpoints</tspan><tspan class=\"st18\">, </tspan><tspan x=\"22\" dy=\"1.2em\"\n-\t\t\t\t\t\tclass=\"st18\">monitored via </tspan>epoll <tspan x=\"4\" dy=\"1.212em\" class=\"st17\">·</tspan><tspan\n-\t\t\t\t\t\tclass=\"st17\"> </tspan><tspan class=\"st18\">Commands include the </tspan><tspan x=\"22\" dy=\"1.204em\"\n-\t\t\t\t\t\tclass=\"st18\">virtual core to be modified</tspan><tspan class=\"st18\">, </tspan><tspan x=\"22\" dy=\"1.2em\"\n-\t\t\t\t\t\tclass=\"st18\">using </tspan>libvirt <tspan class=\"st18\">to get physical </tspan><tspan x=\"22\" dy=\"1.2em\"\n-\t\t\t\t\t\tclass=\"st18\">core mapping </tspan><tspan x=\"4\" dy=\"1.212em\" class=\"st17\">·</tspan><tspan class=\"st17\"> </tspan><tspan\n-\t\t\t\t\t\tclass=\"st18\">Uses librte</tspan><tspan class=\"st18\">_</tspan><tspan class=\"st18\">power to affect </tspan><tspan\n-\t\t\t\t\t\tx=\"22\" dy=\"1.204em\" class=\"st18\">frequency changes via Linux </tspan><tspan x=\"22\" dy=\"1.2em\" class=\"st18\">userspace power </tspan><tspan\n-\t\t\t\t\t\tx=\"22\" dy=\"1.2em\" class=\"st18\">governor</tspan><tspan class=\"st18\">(</tspan><tspan class=\"st18\">APCI cpufreq</tspan><tspan\n-\t\t\t\t\t\tclass=\"st18\">) </tspan><tspan x=\"4\" dy=\"1.212em\" class=\"st17\">·</tspan><tspan class=\"st17\"> </tspan><tspan\n-\t\t\t\t\t\tclass=\"st18\">CLI</tspan><tspan class=\"st18\">: </tspan><tspan class=\"st18\">For adding VM channels </tspan><tspan\n-\t\t\t\t\t\tx=\"22\" dy=\"1.204em\" class=\"st18\">to monitor</tspan><tspan class=\"st18\">, </tspan><tspan class=\"st18\">inspecting and </tspan><tspan\n-\t\t\t\t\t\tx=\"22\" dy=\"1.2em\" class=\"st18\">changing channel state</tspan><tspan class=\"st18\">, </tspan><tspan x=\"22\"\n-\t\t\t\t\t\tdy=\"1.2em\" class=\"st18\">manually altering CPU </tspan><tspan x=\"22\" dy=\"1.2em\" class=\"st18\">frequency</tspan><tspan\n-\t\t\t\t\t\tclass=\"st18\">. </tspan><tspan class=\"st18\">Also allows for the </tspan><tspan x=\"22\" dy=\"1.2em\"\n-\t\t\t\t\t\tclass=\"st18\">changing of vCPU to pCPU </tspan><tspan x=\"22\" dy=\"1.2em\" class=\"st18\">pinning</tspan><tspan\n-\t\t\t\t\t\tclass=\"st18\">.</tspan></text>\t\t</g>\n-\t\t<g id=\"shape53-339\" transform=\"translate(26.8039,-116.827)\">\n-\t\t\t<title>Box.53</title>\n-\t\t\t<desc>VM Power Monitor Application</desc>\n-\t\t\t<g id=\"shadow53-340\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"342.41\" width=\"150.236\" height=\"116.575\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"342.41\" width=\"150.236\" height=\"116.575\" class=\"st20\"/>\n-\t\t\t<text x=\"17.34\" y=\"452.58\" class=\"st11\">VM Power Monitor Application</text>\t\t</g>\n-\t\t<g id=\"shape61-346\" transform=\"translate(18.3,-396.394)\">\n-\t\t\t<title>Box.61</title>\n-\t\t\t<desc>librte_power(vm)</desc>\n-\t\t\t<g id=\"shadow61-347\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"438.079\" width=\"201.26\" height=\"20.9055\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"438.079\" width=\"201.26\" height=\"20.9055\" class=\"st20\"/>\n-\t\t\t<text x=\"70.84\" y=\"450.93\" class=\"st13\">librte_power(vm)</text>\t\t</g>\n-\t\t<g id=\"shape48-352\" transform=\"translate(18.3,-366.275)\">\n-\t\t\t<title>Box.48</title>\n-\t\t\t<desc>lcore channel 0</desc>\n-\t\t\t<g id=\"shadow48-353\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"428.867\" width=\"42.5197\" height=\"30.1181\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"428.867\" width=\"42.5197\" height=\"30.1181\" class=\"st21\"/>\n-\t\t\t<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\"\n-\t\t\t\t\t\tdy=\"1.2em\" class=\"st14\">0</tspan></text>\t\t</g>\n-\t\t<g id=\"shape47-361\" transform=\"translate(245.072,-396.394)\">\n-\t\t\t<title>Box.47</title>\n-\t\t\t<desc>librte_power(vm)</desc>\n-\t\t\t<g id=\"shadow47-362\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"438.079\" width=\"99.2126\" height=\"20.9055\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"438.079\" width=\"99.2126\" height=\"20.9055\" class=\"st20\"/>\n-\t\t\t<text x=\"19.82\" y=\"450.93\" class=\"st13\">librte_power(vm)</text>\t\t</g>\n-\t\t<g id=\"shape46-367\" transform=\"translate(72.1583,-366.275)\">\n-\t\t\t<title>Box.46</title>\n-\t\t\t<desc>lcore channel 1</desc>\n-\t\t\t<g id=\"shadow46-368\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"428.867\" width=\"42.5197\" height=\"30.1181\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"428.867\" width=\"42.5197\" height=\"30.1181\" class=\"st21\"/>\n-\t\t\t<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\"\n-\t\t\t\t\t\tdy=\"1.2em\" class=\"st14\">1</tspan></text>\t\t</g>\n-\t\t<g id=\"shape60-375\" transform=\"translate(126.017,-366.275)\">\n-\t\t\t<title>Box.60</title>\n-\t\t\t<desc>lcore channel 2</desc>\n-\t\t\t<g id=\"shadow60-376\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"428.867\" width=\"42.5197\" height=\"30.1181\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"428.867\" width=\"42.5197\" height=\"30.1181\" class=\"st21\"/>\n-\t\t\t<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\"\n-\t\t\t\t\t\tdy=\"1.2em\" class=\"st14\">2</tspan></text>\t\t</g>\n-\t\t<g id=\"shape62-383\" transform=\"translate(177.04,-366.275)\">\n-\t\t\t<title>Box.62</title>\n-\t\t\t<desc>lcore channel 3</desc>\n-\t\t\t<g id=\"shadow62-384\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"428.867\" width=\"42.5197\" height=\"30.1181\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"428.867\" width=\"42.5197\" height=\"30.1181\" class=\"st21\"/>\n-\t\t\t<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\"\n-\t\t\t\t\t\tdy=\"1.2em\" class=\"st14\">3</tspan></text>\t\t</g>\n-\t\t<g id=\"shape50-391\" transform=\"translate(245.072,-366.275)\">\n-\t\t\t<title>Box.50</title>\n-\t\t\t<desc>lcore channel 0</desc>\n-\t\t\t<g id=\"shadow50-392\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"428.867\" width=\"42.5197\" height=\"30.1181\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"428.867\" width=\"42.5197\" height=\"30.1181\" class=\"st21\"/>\n-\t\t\t<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\"\n-\t\t\t\t\t\tdy=\"1.2em\" class=\"st14\">0</tspan></text>\t\t</g>\n-\t\t<g id=\"shape52-399\" transform=\"translate(301.765,-366.275)\">\n-\t\t\t<title>Box.52</title>\n-\t\t\t<desc>lcore channel 1</desc>\n-\t\t\t<g id=\"shadow52-400\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"428.867\" width=\"42.5197\" height=\"30.1181\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"428.867\" width=\"42.5197\" height=\"30.1181\" class=\"st21\"/>\n-\t\t\t<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\"\n-\t\t\t\t\t\tdy=\"1.2em\" class=\"st14\">1</tspan></text>\t\t</g>\n-\t\t<g id=\"shape51-407\" transform=\"translate(26.8039,-216.039)\">\n-\t\t\t<title>Box.51</title>\n-\t\t\t<desc>Endpoint Monitor(lcore channels)</desc>\n-\t\t\t<g id=\"shadow51-408\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"441.623\" width=\"141.732\" height=\"17.3622\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"441.623\" width=\"141.732\" height=\"17.3622\" class=\"st21\"/>\n-\t\t\t<text x=\"7.09\" y=\"452.82\" class=\"st11\">Endpoint Monitor(lcore channels)</text>\t\t</g>\n-\t\t<g id=\"shape25-413\" transform=\"translate(26.8039,-198.854)\">\n-\t\t\t<title>Box.25</title>\n-\t\t\t<desc>Channel Manager</desc>\n-\t\t\t<g id=\"shadow25-414\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"441.623\" width=\"141.732\" height=\"17.3622\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"441.623\" width=\"141.732\" height=\"17.3622\" class=\"st22\"/>\n-\t\t\t<text x=\"37.53\" y=\"452.82\" class=\"st11\">Channel Manager</text>\t\t</g>\n-\t\t<g id=\"shape41-420\" transform=\"translate(247.906,-215.862)\">\n-\t\t\t<title>Box.41</title>\n-\t\t\t<desc>QEMU</desc>\n-\t\t\t<g id=\"shadow41-421\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"441.623\" width=\"141.732\" height=\"17.3622\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"441.623\" width=\"141.732\" height=\"17.3622\" class=\"st21\"/>\n-\t\t\t<text x=\"58.87\" y=\"452.82\" class=\"st11\">QEMU</text>\t\t</g>\n-\t\t<g id=\"shape42-426\" transform=\"translate(247.906,-198.854)\">\n-\t\t\t<title>Box.42</title>\n-\t\t\t<desc>libvirt</desc>\n-\t\t\t<g id=\"shadow42-427\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"441.623\" width=\"141.732\" height=\"17.3622\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"441.623\" width=\"141.732\" height=\"17.3622\" class=\"st23\"/>\n-\t\t\t<text x=\"59.98\" y=\"452.82\" class=\"st11\">libvirt</text>\t\t</g>\n-\t\t<g id=\"shape43-433\" transform=\"translate(168.536,-231.718)\">\n-\t\t\t<title>Dynamic connector.43</title>\n-\t\t\t<path d=\"M0 465.98 L10.63 465.98 L10.63 466.16 L73.21 466.16\" class=\"st24\"/>\n-\t\t</g>\n-\t\t<g id=\"shape69-441\" transform=\"translate(168.536,-190.527)\">\n-\t\t\t<title>Dynamic connector</title>\n-\t\t\t<path d=\"M0 458.98 L10.63 458.98 L10.63 475.99 L63.29 475.99\" class=\"st24\"/>\n-\t\t</g>\n-\t\t<g id=\"shape26-447\" transform=\"translate(26.8039,-181.846)\">\n-\t\t\t<title>Box.26</title>\n-\t\t\t<desc>librte_power(Host)</desc>\n-\t\t\t<g id=\"shadow26-448\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"441.623\" width=\"141.732\" height=\"17.3622\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"441.623\" width=\"141.732\" height=\"17.3622\" class=\"st19\"/>\n-\t\t\t<text x=\"35.53\" y=\"452.82\" class=\"st11\">librte_power(Host)</text>\t\t</g>\n-\t\t<g id=\"shape68-453\" transform=\"translate(168.536,-200.449)\">\n-\t\t\t<title>Dynamic connector.68</title>\n-\t\t\t<desc>Map vCPU to pCPU</desc>\n-\t\t\t<path d=\"M5.8 451.9 L6.16 451.9 L73.21 451.9\" class=\"st26\"/>\n-\t\t\t<rect x=\"4.11883\" y=\"447.099\" width=\"71.1324\" height=\"9.59985\" class=\"st27\"/>\n-\t\t\t<text x=\"4.12\" y=\"454.3\" class=\"st13\">Map vCPU to pCPU</text>\t\t</g>\n-\t\t<g id=\"shape27-464\" transform=\"translate(26.8039,-164.838)\">\n-\t\t\t<title>Box.27</title>\n-\t\t\t<desc>VM Power CLI</desc>\n-\t\t\t<g id=\"shadow27-465\" transform=\"matrix(1,0,0,1,1.44,1.44)\" class=\"st1\">\n-\t\t\t\t<rect x=\"0\" y=\"441.623\" width=\"141.732\" height=\"17.3622\" class=\"st2\"/>\n-\t\t\t</g>\n-\t\t\t<rect x=\"0\" y=\"441.623\" width=\"141.732\" height=\"17.3622\" class=\"st22\"/>\n-\t\t\t<text x=\"44.2\" y=\"452.82\" class=\"st11\">VM Power CLI</text>\t\t</g>\n-\t</g>\n+<svg\n+   xmlns:osb=\"http://www.openswatchbook.org/uri/2009/osb\"\n+   xmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n+   xmlns:cc=\"http://creativecommons.org/ns#\"\n+   xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n+   xmlns:svg=\"http://www.w3.org/2000/svg\"\n+   xmlns=\"http://www.w3.org/2000/svg\"\n+   xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n+   xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\"\n+   xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"\n+   width=\"180mm\"\n+   height=\"135mm\"\n+   viewBox=\"0 0 180 135\"\n+   version=\"1.1\"\n+   id=\"svg8\"\n+   inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"\n+   sodipodi:docname=\"PM_in_a_Virutal_Env.svg\">\n+  <defs\n+     id=\"defs2\">\n+    <marker\n+       inkscape:stockid=\"Arrow2Mstart\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow2Mstart\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         id=\"path5459\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"scale(0.6)\"\n+         inkscape:connector-curvature=\"0\" />\n+    </marker>\n+    <marker\n+       inkscape:isstock=\"true\"\n+       style=\"overflow:visible\"\n+       id=\"marker12961\"\n+       refX=\"0\"\n+       refY=\"0\"\n+       orient=\"auto\"\n+       inkscape:stockid=\"Arrow2Mend\">\n+      <path\n+         transform=\"scale(-0.6)\"\n+         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\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         id=\"path12959\"\n+         inkscape:connector-curvature=\"0\" />\n+    </marker>\n+    <marker\n+       inkscape:isstock=\"true\"\n+       style=\"overflow:visible\"\n+       id=\"marker12763\"\n+       refX=\"0\"\n+       refY=\"0\"\n+       orient=\"auto\"\n+       inkscape:stockid=\"Arrow2Mend\">\n+      <path\n+         transform=\"scale(-0.6)\"\n+         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\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         id=\"path12761\"\n+         inkscape:connector-curvature=\"0\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Mend\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"marker12573\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\"\n+       inkscape:collect=\"always\">\n+      <path\n+         id=\"path12571\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"scale(-0.6)\"\n+         inkscape:connector-curvature=\"0\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Lend\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"marker12395\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         id=\"path12393\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"matrix(-1.1,0,0,-1.1,-1.1,0)\"\n+         inkscape:connector-curvature=\"0\" />\n+    </marker>\n+    <linearGradient\n+       id=\"linearGradient12389\"\n+       osb:paint=\"solid\">\n+      <stop\n+         style=\"stop-color:#d07f7d;stop-opacity:1;\"\n+         offset=\"0\"\n+         id=\"stop12387\" />\n+    </linearGradient>\n+    <marker\n+       inkscape:stockid=\"Arrow2Send\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"marker6022\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         id=\"path6020\"\n+         style=\"fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"matrix(-0.3,0,0,-0.3,0.69,0)\"\n+         inkscape:connector-curvature=\"0\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Send\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow2Send\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         id=\"path5468\"\n+         style=\"fill:#bdb6b6;fill-opacity:1;fill-rule:evenodd;stroke:#bdb6b6;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"matrix(-0.3,0,0,-0.3,0.69,0)\"\n+         inkscape:connector-curvature=\"0\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Mend\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow2Mend\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         id=\"path5462\"\n+         style=\"fill:#bdb6b6;fill-opacity:1;fill-rule:evenodd;stroke:#bdb6b6;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"scale(-0.6)\"\n+         inkscape:connector-curvature=\"0\" />\n+    </marker>\n+    <marker\n+       style=\"overflow:visible\"\n+       id=\"DistanceStart\"\n+       refX=\"0\"\n+       refY=\"0\"\n+       orient=\"auto\"\n+       inkscape:stockid=\"DistanceStart\"\n+       inkscape:isstock=\"true\">\n+      <g\n+         id=\"g2300\"\n+         style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-opacity:1\">\n+        <path\n+           style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.14999998;stroke-linecap:square;stroke-opacity:1\"\n+           d=\"M 0,0 H 2\"\n+           id=\"path2306\"\n+           inkscape:connector-curvature=\"0\" />\n+        <path\n+           style=\"fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-opacity:1\"\n+           d=\"M 0,0 13,4 9,0 13,-4 Z\"\n+           id=\"path2302\"\n+           inkscape:connector-curvature=\"0\" />\n+        <path\n+           style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1;stroke-linecap:square;stroke-opacity:1\"\n+           d=\"M 0,-4 V 40\"\n+           id=\"path2304\"\n+           inkscape:connector-curvature=\"0\" />\n+      </g>\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Lend\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"marker5751\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         id=\"path5749\"\n+         style=\"fill:#bdb6b6;fill-opacity:1;fill-rule:evenodd;stroke:#bdb6b6;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"matrix(-1.1,0,0,-1.1,-1.1,0)\"\n+         inkscape:connector-curvature=\"0\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow1Lend\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow1Lend\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         id=\"path5438\"\n+         d=\"M 0,0 5,-5 -12.5,0 5,5 Z\"\n+         style=\"fill:#bdb6b6;fill-opacity:1;fill-rule:evenodd;stroke:#bdb6b6;stroke-width:1.00000003pt;stroke-opacity:1\"\n+         transform=\"matrix(-0.8,0,0,-0.8,-10,0)\"\n+         inkscape:connector-curvature=\"0\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Lend\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow2Lend\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         id=\"path5456\"\n+         style=\"fill:#bdb6b6;fill-opacity:1;fill-rule:evenodd;stroke:#bdb6b6;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"matrix(-1.1,0,0,-1.1,-1.1,0)\"\n+         inkscape:connector-curvature=\"0\" />\n+    </marker>\n+    <marker\n+       style=\"overflow:visible\"\n+       id=\"DistanceStart-2\"\n+       refX=\"0\"\n+       refY=\"0\"\n+       orient=\"auto\"\n+       inkscape:stockid=\"DistanceStart\"\n+       inkscape:isstock=\"true\">\n+      <g\n+         id=\"g2300-9\"\n+         style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-opacity:1\">\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.14999998;stroke-linecap:square;stroke-opacity:1\"\n+           d=\"M 0,0 H 2\"\n+           id=\"path2306-7\" />\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-opacity:1\"\n+           d=\"M 0,0 13,4 9,0 13,-4 Z\"\n+           id=\"path2302-1\" />\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1;stroke-linecap:square;stroke-opacity:1\"\n+           d=\"M 0,-4 V 40\"\n+           id=\"path2304-4\" />\n+      </g>\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Send\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"marker6022-2\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         inkscape:connector-curvature=\"0\"\n+         id=\"path6020-9\"\n+         style=\"fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"matrix(-0.3,0,0,-0.3,0.69,0)\" />\n+    </marker>\n+    <marker\n+       style=\"overflow:visible\"\n+       id=\"DistanceStart-8\"\n+       refX=\"0\"\n+       refY=\"0\"\n+       orient=\"auto\"\n+       inkscape:stockid=\"DistanceStart\"\n+       inkscape:isstock=\"true\">\n+      <g\n+         id=\"g2300-8\"\n+         style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-opacity:1\">\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.14999998;stroke-linecap:square;stroke-opacity:1\"\n+           d=\"M 0,0 H 2\"\n+           id=\"path2306-1\" />\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-opacity:1\"\n+           d=\"M 0,0 13,4 9,0 13,-4 Z\"\n+           id=\"path2302-6\" />\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1;stroke-linecap:square;stroke-opacity:1\"\n+           d=\"M 0,-4 V 40\"\n+           id=\"path2304-7\" />\n+      </g>\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Send\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"marker6022-8\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         inkscape:connector-curvature=\"0\"\n+         id=\"path6020-3\"\n+         style=\"fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"matrix(-0.3,0,0,-0.3,0.69,0)\" />\n+    </marker>\n+    <marker\n+       style=\"overflow:visible\"\n+       id=\"DistanceStart-9\"\n+       refX=\"0\"\n+       refY=\"0\"\n+       orient=\"auto\"\n+       inkscape:stockid=\"DistanceStart\"\n+       inkscape:isstock=\"true\">\n+      <g\n+         id=\"g2300-6\"\n+         style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-opacity:1\">\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.14999998;stroke-linecap:square;stroke-opacity:1\"\n+           d=\"M 0,0 H 2\"\n+           id=\"path2306-12\" />\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-opacity:1\"\n+           d=\"M 0,0 13,4 9,0 13,-4 Z\"\n+           id=\"path2302-9\" />\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1;stroke-linecap:square;stroke-opacity:1\"\n+           d=\"M 0,-4 V 40\"\n+           id=\"path2304-2\" />\n+      </g>\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Send\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"marker6022-0\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         inkscape:connector-curvature=\"0\"\n+         id=\"path6020-4\"\n+         style=\"fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"matrix(-0.3,0,0,-0.3,0.69,0)\" />\n+    </marker>\n+    <marker\n+       style=\"overflow:visible\"\n+       id=\"DistanceStart-80\"\n+       refX=\"0\"\n+       refY=\"0\"\n+       orient=\"auto\"\n+       inkscape:stockid=\"DistanceStart\"\n+       inkscape:isstock=\"true\">\n+      <g\n+         id=\"g2300-7\"\n+         style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-opacity:1\">\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.14999998;stroke-linecap:square;stroke-opacity:1\"\n+           d=\"M 0,0 H 2\"\n+           id=\"path2306-8\" />\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-opacity:1\"\n+           d=\"M 0,0 13,4 9,0 13,-4 Z\"\n+           id=\"path2302-0\" />\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1;stroke-linecap:square;stroke-opacity:1\"\n+           d=\"M 0,-4 V 40\"\n+           id=\"path2304-75\" />\n+      </g>\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Send\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"marker6022-3\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         inkscape:connector-curvature=\"0\"\n+         id=\"path6020-8\"\n+         style=\"fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"matrix(-0.3,0,0,-0.3,0.69,0)\" />\n+    </marker>\n+    <marker\n+       style=\"overflow:visible\"\n+       id=\"DistanceStart-89\"\n+       refX=\"0\"\n+       refY=\"0\"\n+       orient=\"auto\"\n+       inkscape:stockid=\"DistanceStart\"\n+       inkscape:isstock=\"true\">\n+      <g\n+         id=\"g2300-0\"\n+         style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-opacity:1\">\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1.14999998;stroke-linecap:square;stroke-opacity:1\"\n+           d=\"M 0,0 H 2\"\n+           id=\"path2306-9\" />\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-opacity:1\"\n+           d=\"M 0,0 13,4 9,0 13,-4 Z\"\n+           id=\"path2302-2\" />\n+        <path\n+           inkscape:connector-curvature=\"0\"\n+           style=\"fill:#666b72;fill-opacity:1;stroke:#666b72;stroke-width:1;stroke-linecap:square;stroke-opacity:1\"\n+           d=\"M 0,-4 V 40\"\n+           id=\"path2304-5\" />\n+      </g>\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Send\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"marker6022-38\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         inkscape:connector-curvature=\"0\"\n+         id=\"path6020-1\"\n+         style=\"fill:#666b72;fill-opacity:1;fill-rule:evenodd;stroke:#666b72;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"matrix(-0.3,0,0,-0.3,0.69,0)\" />\n+    </marker>\n+  </defs>\n+  <sodipodi:namedview\n+     id=\"base\"\n+     pagecolor=\"#ffffff\"\n+     bordercolor=\"#666666\"\n+     borderopacity=\"1.0\"\n+     inkscape:pageopacity=\"0.0\"\n+     inkscape:pageshadow=\"2\"\n+     inkscape:zoom=\"0.9899495\"\n+     inkscape:cx=\"546.09427\"\n+     inkscape:cy=\"348.57234\"\n+     inkscape:document-units=\"mm\"\n+     inkscape:current-layer=\"layer2\"\n+     showgrid=\"false\"\n+     inkscape:window-width=\"1920\"\n+     inkscape:window-height=\"1137\"\n+     inkscape:window-x=\"1912\"\n+     inkscape:window-y=\"-8\"\n+     inkscape:window-maximized=\"1\" />\n+  <metadata\n+     id=\"metadata5\">\n+    <rdf:RDF>\n+      <cc:Work\n+         rdf:about=\"\">\n+        <dc:format>image/svg+xml</dc:format>\n+        <dc:type\n+           rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />\n+        <dc:title></dc:title>\n+      </cc:Work>\n+    </rdf:RDF>\n+  </metadata>\n+  <g\n+     inkscape:groupmode=\"layer\"\n+     id=\"layer2\"\n+     inkscape:label=\"Drawing\"\n+     transform=\"translate(0,-162)\">\n+    <rect\n+       style=\"opacity:1;fill:#b3ca83;fill-opacity:1;stroke:#000000;stroke-width:0.37057942;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4791\"\n+       width=\"33.990398\"\n+       height=\"45.425076\"\n+       x=\"73.332619\"\n+       y=\"164.98018\" />\n+    <rect\n+       style=\"opacity:1;fill:#b3ca83;fill-opacity:1;stroke:#000000;stroke-width:0.35639697;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4530\"\n+       width=\"65.05616\"\n+       height=\"45.42617\"\n+       x=\"2.9913402\"\n+       y=\"164.97824\" />\n+    <rect\n+       style=\"opacity:0.97000002;fill:#a9c373;fill-opacity:1;stroke:#000000;stroke-width:0.22279529;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4530-7-8\"\n+       width=\"127.68393\"\n+       height=\"26.879263\"\n+       x=\"3.0420432\"\n+       y=\"267.96487\" />\n+    <rect\n+       style=\"opacity:1;fill:#e6f3f7;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4532\"\n+       width=\"62.87516\"\n+       height=\"7.3101764\"\n+       x=\"4.0651102\"\n+       y=\"165.93866\" />\n+    <rect\n+       style=\"opacity:1;fill:#a8c270;fill-opacity:1;stroke:#000000;stroke-width:0.32159171;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4532-2\"\n+       width=\"62.906345\"\n+       height=\"6.0718322\"\n+       x=\"4.0495176\"\n+       y=\"173.23325\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"22.865789\"\n+       y=\"170.33044\"\n+       id=\"text4551\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan4549\"\n+         x=\"22.865789\"\n+         y=\"170.33044\"\n+         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>\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"24.577578\"\n+       y=\"177.17308\"\n+       id=\"text4551-6\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan4549-8\"\n+         x=\"24.577578\"\n+         y=\"177.17308\"\n+         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>\n+    <rect\n+       style=\"opacity:1;fill:#f9b278;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4571\"\n+       width=\"13.510916\"\n+       height=\"10.574122\"\n+       x=\"4.0557852\"\n+       y=\"179.31134\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"10.65457\"\n+       y=\"182.5378\"\n+       id=\"text4551-6-1\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"10.65457\"\n+         y=\"182.5378\"\n+         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\"\n+         id=\"tspan4605\">lcore</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"10.65457\"\n+         y=\"185.36002\"\n+         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\"\n+         id=\"tspan4609\">channel</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"10.65457\"\n+         y=\"188.18224\"\n+         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\"\n+         id=\"tspan4593\">0</tspan></text>\n+    <flowRoot\n+       xml:space=\"preserve\"\n+       id=\"flowRoot4595\"\n+       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\n+         id=\"flowRegion4597\"\n+         style=\"font-size:10.66666698px\"><rect\n+           id=\"rect4599\"\n+           width=\"7.0710678\"\n+           height=\"66.670067\"\n+           x=\"116.67262\"\n+           y=\"238.13113\"\n+           style=\"font-size:10.66666698px\" /></flowRegion><flowPara\n+         id=\"flowPara4601\" /></flowRoot>    <rect\n+       style=\"opacity:1;fill:#f9b278;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4571-6\"\n+       width=\"13.510917\"\n+       height=\"10.574122\"\n+       x=\"20.706484\"\n+       y=\"179.3261\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"27.305269\"\n+       y=\"182.55255\"\n+       id=\"text4551-6-1-2\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"27.305269\"\n+         y=\"182.55255\"\n+         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\"\n+         id=\"tspan4605-8\">lcore</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"27.305269\"\n+         y=\"185.37477\"\n+         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\"\n+         id=\"tspan4609-3\">channel</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"27.305269\"\n+         y=\"188.19699\"\n+         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\"\n+         id=\"tspan4593-5\">1</tspan></text>\n+    <rect\n+       style=\"opacity:1;fill:#f9b278;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4571-7\"\n+       width=\"13.510917\"\n+       height=\"10.574122\"\n+       x=\"37.544464\"\n+       y=\"179.3261\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"44.143246\"\n+       y=\"182.55257\"\n+       id=\"text4551-6-1-0\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"44.143246\"\n+         y=\"182.55257\"\n+         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\"\n+         id=\"tspan4605-7\">lcore</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"44.143246\"\n+         y=\"185.37479\"\n+         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\"\n+         id=\"tspan4609-9\">channel</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"44.143246\"\n+         y=\"188.19701\"\n+         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\"\n+         id=\"tspan4593-0\">2</tspan></text>\n+    <rect\n+       style=\"opacity:1;fill:#f9b278;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4571-75\"\n+       width=\"13.510917\"\n+       height=\"10.574122\"\n+       x=\"53.444946\"\n+       y=\"179.30507\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"60.043732\"\n+       y=\"182.53154\"\n+       id=\"text4551-6-1-5\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"60.043732\"\n+         y=\"182.53154\"\n+         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\"\n+         id=\"tspan4605-2\">lcore</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"60.043732\"\n+         y=\"185.35376\"\n+         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\"\n+         id=\"tspan4609-6\">channel</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"60.043732\"\n+         y=\"188.17598\"\n+         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\"\n+         id=\"tspan4593-02\">3</tspan></text>\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"35.405739\"\n+       y=\"195.69669\"\n+       id=\"text4551-6-1-3-2\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"35.405739\"\n+         y=\"195.69669\"\n+         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\"\n+         id=\"tspan4593-6-6\">VM 0</tspan></text>\n+    <rect\n+       style=\"opacity:1;fill:#e6f3f7;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4793\"\n+       width=\"31.844494\"\n+       height=\"7.3705354\"\n+       x=\"74.34877\"\n+       y=\"165.90273\" />\n+    <rect\n+       style=\"opacity:1;fill:#a8c270;fill-opacity:1;stroke:#000000;stroke-width:0.32056567;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4793-5\"\n+       width=\"31.876707\"\n+       height=\"6.0798306\"\n+       x=\"74.332664\"\n+       y=\"173.25716\" />\n+    <rect\n+       style=\"opacity:1;fill:#f9b278;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4571-75-0\"\n+       width=\"13.510918\"\n+       height=\"10.574122\"\n+       x=\"74.332664\"\n+       y=\"179.33699\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"80.93145\"\n+       y=\"182.56345\"\n+       id=\"text4551-6-1-5-9\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"80.93145\"\n+         y=\"182.56345\"\n+         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\"\n+         id=\"tspan4605-2-2\">lcore</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"80.93145\"\n+         y=\"185.38567\"\n+         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\"\n+         id=\"tspan4609-6-6\">channel</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"80.93145\"\n+         y=\"188.20789\"\n+         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\"\n+         id=\"tspan4593-02-9\">0</tspan></text>\n+    <rect\n+       style=\"opacity:1;fill:#f9b278;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4571-75-40\"\n+       width=\"13.510918\"\n+       height=\"10.574122\"\n+       x=\"92.698448\"\n+       y=\"179.33699\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"99.297241\"\n+       y=\"182.56345\"\n+       id=\"text4551-6-1-5-98\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"99.297241\"\n+         y=\"182.56345\"\n+         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\"\n+         id=\"tspan4605-2-1\">lcore</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"99.297241\"\n+         y=\"185.38567\"\n+         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\"\n+         id=\"tspan4609-6-8\">channel</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"99.297241\"\n+         y=\"188.20789\"\n+         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\"\n+         id=\"tspan4593-02-4\">1</tspan></text>\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"90.728218\"\n+       y=\"195.90175\"\n+       id=\"text4551-6-1-3-2-6\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"90.728218\"\n+         y=\"195.90175\"\n+         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\"\n+         id=\"tspan4593-6-6-6\">VM 1</tspan></text>\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"79.098969\"\n+       y=\"177.21642\"\n+       id=\"text4551-6-6\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan4549-8-7\"\n+         x=\"79.098969\"\n+         y=\"177.21642\"\n+         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>\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"78.780937\"\n+       y=\"170.79013\"\n+       id=\"text4551-2\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan4549-0\"\n+         x=\"78.780937\"\n+         y=\"170.79013\"\n+         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>\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"115.35013\"\n+       y=\"169.63728\"\n+       id=\"text4551-2-6\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan4549-0-7\"\n+         x=\"115.35013\"\n+         y=\"169.63728\"\n+         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\n+         sodipodi:role=\"line\"\n+         x=\"115.35013\"\n+         y=\"173.19772\"\n+         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\"\n+         id=\"tspan4984\"> • Reuse <tspan\n+   style=\"font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold'\"\n+   id=\"tspan13541\">librte_power</tspan> interface, but</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"115.35013\"\n+         y=\"176.75818\"\n+         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\"\n+         id=\"tspan4986\">   provides a new implementation that </tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"115.35013\"\n+         y=\"180.31862\"\n+         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\"\n+         id=\"tspan4988\">   forwards frequency set requests to the</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"115.35013\"\n+         y=\"183.87907\"\n+         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\"\n+         id=\"tspan4990\">   host using a Virtio-Serial channel</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"115.35013\"\n+         y=\"187.43951\"\n+         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\"\n+         id=\"tspan4992\"> • Each lcore has exclusive access to a</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"115.35013\"\n+         y=\"190.99997\"\n+         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\"\n+         id=\"tspan4994\">   single channel </tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"115.35013\"\n+         y=\"194.56041\"\n+         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\"\n+         id=\"tspan4996\"> • Sample application reuses <tspan\n+   style=\"font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold'\"\n+   id=\"tspan13543\">l3fwd_power</tspan></tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"115.35013\"\n+         y=\"198.12086\"\n+         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\"\n+         id=\"tspan4998\"> • A CLI for changing frequency from within</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"115.35013\"\n+         y=\"201.6813\"\n+         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\"\n+         id=\"tspan5000\">   a VM is also included.</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"115.35013\"\n+         y=\"205.24176\"\n+         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\"\n+         id=\"tspan4982\" /></text>\n+    <rect\n+       style=\"opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.35572669;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5002\"\n+       width=\"56.211514\"\n+       height=\"37.133213\"\n+       x=\"114.32124\"\n+       y=\"165.99869\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"135.61612\"\n+       y=\"229.79572\"\n+       id=\"text4551-2-6-2\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan4549-0-7-8\"\n+         x=\"135.61612\"\n+         y=\"229.79572\"\n+         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\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"233.35616\"\n+         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\"\n+         id=\"tspan4990-0\"> • Accepts VM commands over</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"236.91661\"\n+         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\"\n+         id=\"tspan5061\">   Virtio Serial endpoints, </tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"240.47705\"\n+         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\"\n+         id=\"tspan5063\">   monitored using <tspan\n+   style=\"font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold'\"\n+   id=\"tspan13545\">epoll</tspan>.</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"244.03751\"\n+         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\"\n+         id=\"tspan4992-3\"> • Commands include the</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"247.59795\"\n+         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\"\n+         id=\"tspan4994-5\">   virutal core to be modified,</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"251.1584\"\n+         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\"\n+         id=\"tspan5065\">   using <tspan\n+   style=\"font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Arial;-inkscape-font-specification:'Arial Bold'\"\n+   id=\"tspan13547\">libvirt</tspan> to get the physical</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"254.71884\"\n+         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\"\n+         id=\"tspan5067\">   core mapping. </tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"258.2793\"\n+         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\"\n+         id=\"tspan4996-5\"> • Uses librte_power to affect</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"261.83975\"\n+         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\"\n+         id=\"tspan5069\">   frequency changes using </tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"265.40018\"\n+         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\"\n+         id=\"tspan5071\">   Linux userspace power</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"268.96063\"\n+         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\"\n+         id=\"tspan5073\">   governor (APCI cpufreq).</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"272.52109\"\n+         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\"\n+         id=\"tspan4998-6\"> • CLI: For adding VM channels</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"276.08154\"\n+         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\"\n+         id=\"tspan5000-7\">   to monitor, inspecting and </tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"279.64197\"\n+         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\"\n+         id=\"tspan5075\">   changing channel state,</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"283.20242\"\n+         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\"\n+         id=\"tspan5077\">   manually altering CPU</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"286.76288\"\n+         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\"\n+         id=\"tspan5079\">   frequency. Also allows for the</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"290.32333\"\n+         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\"\n+         id=\"tspan5081\">   changing of vCPU to pCPU </tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"293.88376\"\n+         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\"\n+         id=\"tspan5083\">   pinning.</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"135.61612\"\n+         y=\"297.44421\"\n+         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\"\n+         id=\"tspan4982-3\" /></text>\n+    <rect\n+       style=\"opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5002-1\"\n+       width=\"43.111595\"\n+       height=\"69.097458\"\n+       x=\"134.19011\"\n+       y=\"226.29218\" />\n+    <rect\n+       style=\"opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5309\"\n+       width=\"14.835566\"\n+       height=\"11.339286\"\n+       x=\"3.8562157\"\n+       y=\"274.75986\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"6.5029726\"\n+       y=\"281.56589\"\n+       id=\"text5313\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan5311\"\n+         x=\"6.5029726\"\n+         y=\"281.56589\"\n+         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>\n+    <rect\n+       style=\"opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5309-9\"\n+       width=\"14.835566\"\n+       height=\"11.339286\"\n+       x=\"19.750116\"\n+       y=\"274.75986\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"22.396875\"\n+       y=\"281.56589\"\n+       id=\"text5313-3\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan5311-3\"\n+         x=\"22.396875\"\n+         y=\"281.56589\"\n+         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>\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"67.413933\"\n+       y=\"292.11707\"\n+       id=\"text4551-6-1-3-2-3\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"67.413933\"\n+         y=\"292.11707\"\n+         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\"\n+         id=\"tspan4593-6-6-9\">Host</tspan></text>\n+    <path\n+       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)\"\n+       d=\"m 26.945189,207.4991 16.220549,67.26077\"\n+       id=\"path5433\"\n+       inkscape:connector-curvature=\"0\"\n+       sodipodi:nodetypes=\"cc\" />\n+    <rect\n+       style=\"opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5309-9-2\"\n+       width=\"14.835566\"\n+       height=\"11.339286\"\n+       x=\"35.644016\"\n+       y=\"274.75986\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"38.290771\"\n+       y=\"281.56589\"\n+       id=\"text5313-3-7\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan5311-3-5\"\n+         x=\"38.290771\"\n+         y=\"281.56589\"\n+         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>\n+    <path\n+       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)\"\n+       d=\"m 43.815139,209.27096 15.686009,65.38988\"\n+       id=\"path5433-9\"\n+       inkscape:connector-curvature=\"0\" />\n+    <path\n+       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)\"\n+       d=\"m 60.162609,209.27096 15.68601,65.38988\"\n+       id=\"path5433-5\"\n+       inkscape:connector-curvature=\"0\" />\n+    <path\n+       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)\"\n+       d=\"M 9.1777468,207.41628 90.684191,274.56635\"\n+       id=\"path5433-6\"\n+       inkscape:connector-curvature=\"0\"\n+       sodipodi:nodetypes=\"cc\" />\n+    <path\n+       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)\"\n+       d=\"m 81.279275,208.7018 41.733935,66.15255\"\n+       id=\"path5433-7\"\n+       inkscape:connector-curvature=\"0\"\n+       sodipodi:nodetypes=\"cc\" />\n+    <path\n+       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)\"\n+       d=\"m 99.427521,209.36997 7.087049,65.2954\"\n+       id=\"path5433-2\"\n+       inkscape:connector-curvature=\"0\"\n+       sodipodi:nodetypes=\"cc\" />\n+    <rect\n+       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\"\n+       id=\"rect4530-7\"\n+       width=\"127.62878\"\n+       height=\"40.216084\"\n+       x=\"3.0696197\"\n+       y=\"227.75278\" />\n+    <rect\n+       style=\"opacity:0.97000002;fill:#aac475;fill-opacity:1;stroke:#000000;stroke-width:0.35901672;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5115\"\n+       width=\"50.111969\"\n+       height=\"36.47134\"\n+       x=\"4.3251848\"\n+       y=\"229.6501\" />\n+    <rect\n+       style=\"opacity:0.97000002;fill:#f8a25f;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5117\"\n+       width=\"45.451633\"\n+       height=\"5.4806519\"\n+       x=\"6.442668\"\n+       y=\"231.02805\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"8.3580427\"\n+       y=\"234.81723\"\n+       id=\"text4551-6-8\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan4549-8-0\"\n+         x=\"8.3580427\"\n+         y=\"234.81723\"\n+         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>\n+    <rect\n+       style=\"opacity:0.97000002;fill:#a4c3e8;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5117-9\"\n+       width=\"45.451633\"\n+       height=\"5.4806519\"\n+       x=\"6.4426622\"\n+       y=\"236.59908\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"16.824707\"\n+       y=\"240.16428\"\n+       id=\"text4551-6-8-8\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan4549-8-0-2\"\n+         x=\"16.824707\"\n+         y=\"240.16428\"\n+         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>\n+    <rect\n+       style=\"opacity:0.97000002;fill:#d99896;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5117-1\"\n+       width=\"45.451633\"\n+       height=\"5.4806519\"\n+       x=\"6.4426546\"\n+       y=\"242.07971\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"16.295534\"\n+       y=\"245.64491\"\n+       id=\"text4551-6-8-1\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan4549-8-0-1\"\n+         x=\"16.295534\"\n+         y=\"245.64491\"\n+         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>\n+    <rect\n+       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\"\n+       id=\"rect5117-4\"\n+       width=\"45.451633\"\n+       height=\"5.4806519\"\n+       x=\"6.4426584\"\n+       y=\"247.56038\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"18.412207\"\n+       y=\"251.12558\"\n+       id=\"text4551-6-8-13\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan4549-8-0-9\"\n+         x=\"18.412207\"\n+         y=\"251.12558\"\n+         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>\n+    <rect\n+       style=\"opacity:0.97000002;fill:#f9ae72;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5117-0\"\n+       width=\"45.451633\"\n+       height=\"5.4806519\"\n+       x=\"81.010612\"\n+       y=\"231.02805\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"98.801003\"\n+       y=\"234.59322\"\n+       id=\"text4551-6-8-4\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan4549-8-0-97\"\n+         x=\"98.801003\"\n+         y=\"234.59322\"\n+         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>\n+    <rect\n+       style=\"opacity:0.97000002;fill:#dfdfdf;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5117-0-8\"\n+       width=\"45.451633\"\n+       height=\"5.4806519\"\n+       x=\"81.01062\"\n+       y=\"236.5087\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"99.859344\"\n+       y=\"240.07385\"\n+       id=\"text4551-6-8-4-0\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan4549-8-0-97-5\"\n+         x=\"99.859344\"\n+         y=\"240.07385\"\n+         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>\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"28.996965\"\n+       y=\"263.96405\"\n+       id=\"text4551-6-1-3-2-9\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"28.996965\"\n+         y=\"263.96405\"\n+         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\"\n+         id=\"tspan4593-6-6-0\">VM Power Monitor Application</tspan></text>\n+    <rect\n+       style=\"opacity:1;fill:#d07f7d;fill-opacity:0.91372549;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5117-0-7\"\n+       width=\"53.336025\"\n+       height=\"9.3962946\"\n+       x=\"72.768929\"\n+       y=\"245.33264\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"74.799515\"\n+       y=\"249.10745\"\n+       id=\"text4551-6-8-4-4\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan4549-8-0-97-0\"\n+         x=\"74.799515\"\n+         y=\"249.10745\"\n+         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\n+         sodipodi:role=\"line\"\n+         x=\"74.799515\"\n+         y=\"252.66789\"\n+         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\"\n+         id=\"tspan5289\">/sys/devices/system/cpu/cpuN/cpufreq/</tspan></text>\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"67.852898\"\n+       y=\"265.42874\"\n+       id=\"text4551-6-1-3-2-8\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"67.852898\"\n+         y=\"265.42874\"\n+         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\"\n+         id=\"tspan4593-6-6-7\">OS/Hypervisor</tspan></text>\n+    <rect\n+       style=\"opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4571-65\"\n+       width=\"13.510917\"\n+       height=\"10.574122\"\n+       x=\"4.0509348\"\n+       y=\"198.76773\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"10.649721\"\n+       y=\"203.05254\"\n+       id=\"text4551-6-1-3\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"10.649721\"\n+         y=\"203.05254\"\n+         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\"\n+         id=\"tspan4605-6\">Virtual</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"10.649721\"\n+         y=\"205.87476\"\n+         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\"\n+         id=\"tspan4593-6\">Core 0</tspan></text>\n+    <rect\n+       style=\"opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4571-6-9\"\n+       width=\"13.510918\"\n+       height=\"10.574122\"\n+       x=\"20.701635\"\n+       y=\"198.78249\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"27.300417\"\n+       y=\"203.06729\"\n+       id=\"text4551-6-1-2-3\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"27.300417\"\n+         y=\"203.06729\"\n+         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\"\n+         id=\"tspan4605-8-0\">Virtual</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"27.300417\"\n+         y=\"205.88951\"\n+         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\"\n+         id=\"tspan4593-5-9\">Core 1</tspan></text>\n+    <rect\n+       style=\"opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4571-7-1\"\n+       width=\"13.510918\"\n+       height=\"10.574122\"\n+       x=\"37.539612\"\n+       y=\"198.78249\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"44.138397\"\n+       y=\"203.06729\"\n+       id=\"text4551-6-1-0-8\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"44.138397\"\n+         y=\"203.06729\"\n+         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\"\n+         id=\"tspan4605-7-1\">Virutal</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"44.138397\"\n+         y=\"205.88951\"\n+         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\"\n+         id=\"tspan4593-0-7\">Core 2</tspan></text>\n+    <rect\n+       style=\"opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4571-75-4\"\n+       width=\"13.510918\"\n+       height=\"10.574122\"\n+       x=\"53.440094\"\n+       y=\"198.76146\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"60.038879\"\n+       y=\"203.04626\"\n+       id=\"text4551-6-1-5-6\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"60.038879\"\n+         y=\"203.04626\"\n+         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\"\n+         id=\"tspan4605-2-8\">Virutal</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"60.038879\"\n+         y=\"205.86848\"\n+         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\"\n+         id=\"tspan4593-02-1\">Core 3</tspan></text>\n+    <rect\n+       style=\"opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5309-9-7\"\n+       width=\"14.835566\"\n+       height=\"11.339286\"\n+       x=\"51.537918\"\n+       y=\"274.75986\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"54.184669\"\n+       y=\"281.56589\"\n+       id=\"text5313-3-0\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan5311-3-55\"\n+         x=\"54.184669\"\n+         y=\"281.56589\"\n+         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>\n+    <rect\n+       style=\"opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5309-9-8\"\n+       width=\"14.835566\"\n+       height=\"11.339286\"\n+       x=\"67.431816\"\n+       y=\"274.75986\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"70.078575\"\n+       y=\"281.56589\"\n+       id=\"text5313-3-3\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan5311-3-9\"\n+         x=\"70.078575\"\n+         y=\"281.56589\"\n+         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>\n+    <rect\n+       style=\"opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect5309-9-5\"\n+       width=\"14.835566\"\n+       height=\"11.339286\"\n+       x=\"83.325706\"\n+       y=\"274.75986\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"85.972481\"\n+       y=\"281.56589\"\n+       id=\"text5313-3-05\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan5311-3-2\"\n+         x=\"85.972481\"\n+         y=\"281.56589\"\n+         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>\n+    <rect\n+       y=\"274.75986\"\n+       x=\"99.219597\"\n+       height=\"11.339286\"\n+       width=\"14.835566\"\n+       id=\"rect5309-9-4\"\n+       style=\"opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\" />\n+    <text\n+       id=\"text5313-3-5\"\n+       y=\"281.56589\"\n+       x=\"101.86636\"\n+       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\"\n+       xml:space=\"preserve\"><tspan\n+         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\"\n+         y=\"281.56589\"\n+         x=\"101.86636\"\n+         id=\"tspan5311-3-50\"\n+         sodipodi:role=\"line\">Core 6</tspan></text>\n+    <rect\n+       y=\"274.75986\"\n+       x=\"115.11353\"\n+       height=\"11.339286\"\n+       width=\"14.835566\"\n+       id=\"rect5309-9-6\"\n+       style=\"opacity:0.97000002;fill:#b2c5dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\" />\n+    <text\n+       id=\"text5313-3-03\"\n+       y=\"281.56589\"\n+       x=\"117.7603\"\n+       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\"\n+       xml:space=\"preserve\"><tspan\n+         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\"\n+         y=\"281.56589\"\n+         x=\"117.7603\"\n+         id=\"tspan5311-3-90\"\n+         sodipodi:role=\"line\">Core 7</tspan></text>\n+    <rect\n+       style=\"opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4571-6-9-8\"\n+       width=\"13.510919\"\n+       height=\"10.574122\"\n+       x=\"92.681847\"\n+       y=\"198.77974\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"99.280617\"\n+       y=\"203.06454\"\n+       id=\"text4551-6-1-2-3-5\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"99.280617\"\n+         y=\"203.06454\"\n+         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\"\n+         id=\"tspan4605-8-0-6\">Virtual</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"99.280617\"\n+         y=\"205.88676\"\n+         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\"\n+         id=\"tspan4593-5-9-0\">Core 1</tspan></text>\n+    <rect\n+       style=\"opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.36531466;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect4571-65-0\"\n+       width=\"13.510918\"\n+       height=\"10.574122\"\n+       x=\"74.368103\"\n+       y=\"198.76498\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"81.685051\"\n+       y=\"203.04979\"\n+       id=\"text4551-6-1-3-3\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"81.685051\"\n+         y=\"203.04979\"\n+         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\"\n+         id=\"tspan4605-6-1\">Virtual</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"81.685051\"\n+         y=\"205.87201\"\n+         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\"\n+         id=\"tspan4593-6-3\">Core 0</tspan></text>\n+    <path\n+       style=\"fill:none;stroke:#000000;stroke-width:0.28939158px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker12763)\"\n+       d=\"M 52.1562,233.6685 H 80.658056\"\n+       id=\"path12353\"\n+       inkscape:connector-curvature=\"0\" />\n+    <path\n+       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)\"\n+       d=\"M 52.423464,239.11128 H 80.658051\"\n+       id=\"path12353-4\"\n+       inkscape:connector-curvature=\"0\" />\n+    <rect\n+       style=\"opacity:1;fill:#fffdfd;fill-opacity:1;stroke:none;stroke-width:0.30100071;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect12385\"\n+       width=\"21.548515\"\n+       height=\"3.6533842\"\n+       x=\"56.031593\"\n+       y=\"237.3535\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"56.522133\"\n+       y=\"239.80431\"\n+       id=\"text12372\"><tspan\n+         sodipodi:role=\"line\"\n+         id=\"tspan12370\"\n+         x=\"56.522133\"\n+         y=\"239.80431\"\n+         style=\"font-size:2.11666656px;stroke-width:0.26458332\">Map vCPU to pCPU</tspan></text>\n+    <path\n+       style=\"fill:none;stroke:#000000;stroke-width:0.21566178px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker12961)\"\n+       d=\"m 51.894295,244.63493 h 10.914044 v 5.05835 h 9.755338\"\n+       id=\"path12951\"\n+       inkscape:connector-curvature=\"0\" />\n+  </g>\n </svg>\ndiff --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\nindex 1487cda9a..0c6d49f0c 100644\n--- a/doc/guides/sample_app_ug/img/vm_power_mgr_vm_request_seq.svg\n+++ b/doc/guides/sample_app_ug/img/vm_power_mgr_vm_request_seq.svg\n@@ -1,4 +1,5 @@\n <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n+<!-- Created with Inkscape (http://www.inkscape.org/) -->\n \n <!-- SPDX-License-Identifier: BSD-3-Clause -->\n <!-- Copyright(c) 2014 Intel Corporation -->\n@@ -12,884 +13,688 @@\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    xmlns:sodipodi=\"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd\"\n    xmlns:inkscape=\"http://www.inkscape.org/namespaces/inkscape\"\n+   width=\"190mm\"\n+   height=\"105mm\"\n+   viewBox=\"0 0 190 105\"\n    version=\"1.1\"\n-   width=\"912.44751\"\n-   height=\"664.9787\"\n-   id=\"svg5187\"\n-   inkscape:version=\"0.48.5 r10040\"\n-   sodipodi:docname=\"vm_power_mgr_vm_request_seq.svg\">\n-  <metadata\n-     id=\"metadata5497\">\n-    <rdf:RDF>\n-      <cc:Work\n-         rdf:about=\"\">\n-        <dc:format>image/svg+xml</dc:format>\n-        <dc:type\n-           rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />\n-        <dc:title />\n-      </cc:Work>\n-    </rdf:RDF>\n-  </metadata>\n+   id=\"svg13567\"\n+   inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"\n+   sodipodi:docname=\"VM_Req_to_Scale_Freq.svg\">\n   <defs\n-     id=\"defs5495\" />\n-  <sodipodi:namedview\n-     pagecolor=\"#ffffff\"\n-     bordercolor=\"#666666\"\n-     borderopacity=\"1\"\n-     objecttolerance=\"10\"\n-     gridtolerance=\"10\"\n-     guidetolerance=\"10\"\n-     inkscape:pageopacity=\"0\"\n-     inkscape:pageshadow=\"2\"\n-     inkscape:window-width=\"1920\"\n-     inkscape:window-height=\"1005\"\n-     id=\"namedview5493\"\n-     showgrid=\"false\"\n-     fit-margin-top=\"0.1\"\n-     fit-margin-right=\"0.1\"\n-     fit-margin-bottom=\"0.1\"\n-     fit-margin-left=\"0.1\"\n-     inkscape:zoom=\"1.5857392\"\n-     inkscape:cx=\"533.1241\"\n-     inkscape:cy=\"478.97029\"\n-     inkscape:window-x=\"1920\"\n-     inkscape:window-y=\"36\"\n-     inkscape:window-maximized=\"0\"\n-     inkscape:current-layer=\"Layer1000\" />\n-  <g\n-     id=\"Layer1000\"\n-     transform=\"matrix(1.3033705,0,0,1.3931773,-22.056332,168.16686)\">\n-    <g\n-       id=\"Layer1001\"\n-       transform=\"matrix(1.237886,0,0,1.2010974,-4.0390827,-71.427441)\">\n-      <defs\n-         id=\"defs5191\">\n-        <filter\n-           filterUnits=\"userSpaceOnUse\"\n-           id=\"shadow1\"\n-           color-interpolation-filters=\"sRGB\">\n-          <feOffset\n-             in=\"SourceGraphic\"\n-             result=\"offset\"\n-             dx=\"1.4400\"\n-             dy=\"1.4400\"\n-             id=\"feOffset5194\" />\n-          <feColorMatrix\n-             in=\"offset\"\n-             result=\"offset-color\"\n-             type=\"matrix\"\n-             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\"\n-             id=\"feColorMatrix5196\" />\n-          <feMerge\n-             id=\"feMerge5198\">\n-            <feMergeNode\n-               in=\"offset-color\"\n-               id=\"feMergeNode5200\" />\n-            <feMergeNode\n-               in=\"SourceGraphic\"\n-               id=\"feMergeNode5202\" />\n-          </feMerge>\n-        </filter>\n-      </defs>\n-      <defs\n-         id=\"defs5204\">\n-        <linearGradient\n-           id=\"grad1\">\n-          <stop\n-             offset=\"0%\"\n-             stop-color=\"#ffffff\"\n-             stop-opacity=\"1.0000\"\n-             id=\"stop5207\" />\n-          <stop\n-             offset=\"100%\"\n-             stop-color=\"#ffffff\"\n-             stop-opacity=\"1.0000\"\n-             id=\"stop5209\" />\n-        </linearGradient>\n-        <linearGradient\n-           xlink:href=\"#grad1\"\n-           id=\"grad2\"\n-           x1=\"164.37778\"\n-           y1=\"54.035988\"\n-           x2=\"164.37778\"\n-           y2=\"290.9747\"\n-           gradientTransform=\"scale(0.85432014,1.1705214)\"\n-           gradientUnits=\"userSpaceOnUse\" />\n-      </defs>\n+     id=\"defs13561\">\n+    <marker\n+       inkscape:stockid=\"Arrow2Mend\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"marker2723\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n       <path\n-         d=\"m 157.2997,317.4803 168.6846,0 0,-231.1182 -168.6846,0 0,231.1182 z\"\n-         style=\"fill:url(#grad2);fill-rule:evenodd;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;filter:url(#shadow1)\"\n-         id=\"path5212\"\n+         id=\"path2721\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"scale(-0.6)\"\n          inkscape:connector-curvature=\"0\" />\n-      <defs\n-         id=\"defs5214\">\n-        <filter\n-           filterUnits=\"userSpaceOnUse\"\n-           id=\"shadow2\"\n-           color-interpolation-filters=\"sRGB\">\n-          <feOffset\n-             in=\"SourceGraphic\"\n-             result=\"offset\"\n-             dx=\"1.4400\"\n-             dy=\"1.4400\"\n-             id=\"feOffset5217\" />\n-          <feColorMatrix\n-             in=\"offset\"\n-             result=\"offset-color\"\n-             type=\"matrix\"\n-             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\"\n-             id=\"feColorMatrix5219\" />\n-          <feMerge\n-             id=\"feMerge5221\">\n-            <feMergeNode\n-               in=\"offset-color\"\n-               id=\"feMergeNode5223\" />\n-            <feMergeNode\n-               in=\"SourceGraphic\"\n-               id=\"feMergeNode5225\" />\n-          </feMerge>\n-        </filter>\n-      </defs>\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Mstart\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow2Mstart\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n       <path\n-         d=\"m 157.2997,317.4803 168.6846,0 0,-231.1182 -168.6846,0 0,231.1182 z\"\n-         style=\"fill:none;stroke:#1f497d;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;filter:url(#shadow2)\"\n-         id=\"path5227\"\n+         id=\"path899\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"scale(0.6)\"\n          inkscape:connector-curvature=\"0\" />\n-    </g>\n-    <text\n-       x=\"192.70265\"\n-       y=\"32.792809\"\n-       id=\"text5229\"\n-       transform=\"scale(1.0151991,0.98502847)\"\n-       style=\"font-size:14.63223553px\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5231\"\n-         style=\"font-size:9.75482368px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">Loop: for each epoll event</tspan>\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1002\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <path\n-       d=\"m 52.7934,331.6535 0,-272.4094\"\n-       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\"\n-       id=\"path5234\"\n-       inkscape:connector-curvature=\"0\" />\n-    <text\n-       x=\"-79.411301\"\n-       y=\"195.44881\"\n-       transform=\"matrix(0,-1,1,0,-142.6554,248.2422)\"\n-       id=\"text5236\">\n-      <tspan\n-         font-size=\"12.0000\"\n-         id=\"tspan5238\"\n-         style=\"font-size:12px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\" />\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1003\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <g\n-       id=\"Layer1004\">\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Mend\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow2Mend\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n       <path\n-         d=\"m 17.2272,59.2441 71.1324,0 0,-25.2284 -71.1324,0 0,25.2284 z\"\n-         style=\"fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round\"\n-         id=\"path5242\"\n+         id=\"path902\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"scale(-0.6)\"\n          inkscape:connector-curvature=\"0\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow1Mstart\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow1Mstart\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n       <path\n-         d=\"m 17.2272,59.2441 71.1324,0 0,-25.2284 -71.1324,0 0,25.2284 z\"\n-         style=\"fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none\"\n-         id=\"path5244\"\n+         id=\"path881\"\n+         d=\"M 0,0 5,-5 -12.5,0 5,5 Z\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1\"\n+         transform=\"matrix(0.4,0,0,0.4,4,0)\"\n          inkscape:connector-curvature=\"0\" />\n-    </g>\n-    <text\n-       x=\"21.2272\"\n-       y=\"46.629902\"\n-       id=\"text5246\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5248\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">librte_power(VM)</tspan>\n-    </text>\n-  </g>\n-  <text\n-     x=\"334.86655\"\n-     y=\"44.000031\"\n-     id=\"text5250\"\n-     transform=\"scale(0.98193323,1.0183992)\"\n-     style=\"font-size:19.71731567px\">\n-    <tspan\n-       font-weight=\"bold\"\n-       font-size=\"36.0000\"\n-       id=\"tspan5252\"\n-       style=\"font-size:59.15194702px;font-weight:bold;fill:#cdcdcd;fill-opacity:1;stroke-opacity:1;font-family:Calibri\">Sequence</tspan>\n-  </text>\n-  <g\n-     id=\"Layer1005\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <path\n-       d=\"m 129.4472,331.6535 0,-272.4094\"\n-       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\"\n-       id=\"path5255\"\n-       inkscape:connector-curvature=\"0\" />\n-    <text\n-       x=\"-2.7574999\"\n-       y=\"195.44881\"\n-       transform=\"matrix(0,-1,1,0,-66.0016,324.896)\"\n-       id=\"text5257\">\n-      <tspan\n-         font-size=\"12.0000\"\n-         id=\"tspan5259\"\n-         style=\"font-size:12px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\" />\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1006\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <g\n-       id=\"Layer1007\">\n+    </marker>\n+    <marker\n+       inkscape:isstock=\"true\"\n+       style=\"overflow:visible\"\n+       id=\"marker1748\"\n+       refX=\"0\"\n+       refY=\"0\"\n+       orient=\"auto\"\n+       inkscape:stockid=\"Arrow1Mend\">\n       <path\n-         d=\"m 89.6487,59.2441 79.5971,0 0,-25.2284 -79.5971,0 0,25.2284 z\"\n-         style=\"fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round\"\n-         id=\"path5263\"\n+         transform=\"matrix(-0.4,0,0,-0.4,-4,0)\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1\"\n+         d=\"M 0,0 5,-5 -12.5,0 5,5 Z\"\n+         id=\"path1746\"\n          inkscape:connector-curvature=\"0\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow1Mend\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow1Mend\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n       <path\n-         d=\"m 89.6487,59.2441 79.5971,0 0,-25.2284 -79.5971,0 0,25.2284 z\"\n-         style=\"fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none\"\n-         id=\"path5265\"\n+         id=\"path884\"\n+         d=\"M 0,0 5,-5 -12.5,0 5,5 Z\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1\"\n+         transform=\"matrix(-0.4,0,0,-0.4,-4,0)\"\n          inkscape:connector-curvature=\"0\" />\n-    </g>\n-    <text\n-       x=\"93.648697\"\n-       y=\"46.629902\"\n-       id=\"text5267\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5269\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">guest_channel(VM)</tspan>\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1008\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <path\n-       d=\"m 240.9449,354.9562 0,-293.7369\"\n-       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\"\n-       id=\"path5272\"\n-       inkscape:connector-curvature=\"0\" />\n-    <text\n-       x=\"98.076401\"\n-       y=\"208.0878\"\n-       transform=\"matrix(0,-1,1,0,32.8571,449.0327)\"\n-       id=\"text5274\">\n-      <tspan\n-         font-size=\"12.0000\"\n-         id=\"tspan5276\"\n-         style=\"font-size:12px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\" />\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1009\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <g\n-       id=\"Layer1010\">\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Lend\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow2Lend\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n       <path\n-         d=\"m 195.3689,61.2193 91.152,0 0,-27.2036 -91.152,0 0,27.2036 z\"\n-         style=\"fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round\"\n-         id=\"path5280\"\n+         id=\"path896\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"matrix(-1.1,0,0,-1.1,-1.1,0)\"\n          inkscape:connector-curvature=\"0\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow1Mend\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"marker1565-4\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n       <path\n-         d=\"m 195.3689,61.2193 91.152,0 0,-27.2036 -91.152,0 0,27.2036 z\"\n-         style=\"fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none\"\n-         id=\"path5282\"\n-         inkscape:connector-curvature=\"0\" />\n-    </g>\n-    <text\n-       x=\"199.3689\"\n-       y=\"47.6175\"\n-       id=\"text5284\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5286\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">channel_monitor(Host)</tspan>\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5288\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\" />\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1011\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <path\n-       d=\"m 361.5266,352.9811 0,-293.737\"\n-       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\"\n-       id=\"path5291\"\n-       inkscape:connector-curvature=\"0\" />\n-    <text\n-       x=\"218.6581\"\n-       y=\"206.11259\"\n-       transform=\"matrix(0,-1,1,0,155.414,567.6392)\"\n-       id=\"text5293\">\n-      <tspan\n-         font-size=\"12.0000\"\n-         id=\"tspan5295\"\n-         style=\"font-size:12px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\" />\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1012\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <g\n-       id=\"Layer1013\">\n+         inkscape:connector-curvature=\"0\"\n+         id=\"path1563-2\"\n+         d=\"M 0,0 5,-5 -12.5,0 5,5 Z\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1\"\n+         transform=\"matrix(-0.4,0,0,-0.4,-4,0)\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Mend\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow2Mend-5\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n       <path\n-         d=\"m 313.5013,59.2441 96.0505,0 0,-27.2035 -96.0505,0 0,27.2035 z\"\n-         style=\"fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round\"\n-         id=\"path5299\"\n-         inkscape:connector-curvature=\"0\" />\n+         inkscape:connector-curvature=\"0\"\n+         id=\"path902-8\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"scale(-0.6)\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Mstart\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow2Mstart-0\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n       <path\n-         d=\"m 313.5013,59.2441 96.0505,0 0,-27.2035 -96.0505,0 0,27.2035 z\"\n-         style=\"fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none\"\n-         id=\"path5301\"\n-         inkscape:connector-curvature=\"0\" />\n-    </g>\n-    <text\n-       x=\"317.50131\"\n-       y=\"45.6423\"\n-       id=\"text5303\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5305\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">channel_manager(Host)</tspan>\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5307\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\" />\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1014\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <path\n-       d=\"m 458.3741,331.6535 0,-272.4094\"\n-       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\"\n-       id=\"path5310\"\n-       inkscape:connector-curvature=\"0\" />\n-    <text\n-       x=\"326.1694\"\n-       y=\"195.44881\"\n-       transform=\"matrix(0,-1,1,0,262.9253,653.8229)\"\n-       id=\"text5312\">\n-      <tspan\n-         font-size=\"12.0000\"\n-         id=\"tspan5314\"\n-         style=\"font-size:12px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\" />\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1015\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <g\n-       id=\"Layer1016\">\n+         inkscape:connector-curvature=\"0\"\n+         id=\"path899-2\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"scale(0.6)\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Mend\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow2Mend-5-8\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n       <path\n-         d=\"m 413.466,59.2441 89.8163,0 0,-25.2284 -89.8163,0 0,25.2284 z\"\n-         style=\"fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round\"\n-         id=\"path5318\"\n-         inkscape:connector-curvature=\"0\" />\n+         inkscape:connector-curvature=\"0\"\n+         id=\"path902-8-5\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"scale(-0.6)\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Mstart\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow2Mstart-0-0\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n       <path\n-         d=\"m 413.466,59.2441 89.8163,0 0,-25.2284 -89.8163,0 0,25.2284 z\"\n-         style=\"fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none\"\n-         id=\"path5320\"\n-         inkscape:connector-curvature=\"0\" />\n-    </g>\n-    <text\n-       x=\"417.466\"\n-       y=\"46.629902\"\n-       id=\"text5322\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5324\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">power_manager(Host)</tspan>\n-    </text>\n-  </g>\n+         inkscape:connector-curvature=\"0\"\n+         id=\"path899-2-6\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"scale(0.6)\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Mstart\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow2Mstart-3\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         inkscape:connector-curvature=\"0\"\n+         id=\"path899-9\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"scale(0.6)\" />\n+    </marker>\n+    <marker\n+       inkscape:stockid=\"Arrow2Mend\"\n+       orient=\"auto\"\n+       refY=\"0\"\n+       refX=\"0\"\n+       id=\"Arrow2Mend-3\"\n+       style=\"overflow:visible\"\n+       inkscape:isstock=\"true\">\n+      <path\n+         inkscape:connector-curvature=\"0\"\n+         id=\"path902-2\"\n+         style=\"fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1\"\n+         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\"\n+         transform=\"scale(-0.6)\" />\n+    </marker>\n+  </defs>\n+  <sodipodi:namedview\n+     id=\"base\"\n+     pagecolor=\"#ffffff\"\n+     bordercolor=\"#666666\"\n+     borderopacity=\"1.0\"\n+     inkscape:pageopacity=\"0.0\"\n+     inkscape:pageshadow=\"2\"\n+     inkscape:zoom=\"1.4\"\n+     inkscape:cx=\"422.48941\"\n+     inkscape:cy=\"233.91334\"\n+     inkscape:document-units=\"mm\"\n+     inkscape:current-layer=\"layer3\"\n+     showgrid=\"false\"\n+     inkscape:window-width=\"1920\"\n+     inkscape:window-height=\"1137\"\n+     inkscape:window-x=\"1912\"\n+     inkscape:window-y=\"-8\"\n+     inkscape:window-maximized=\"1\" />\n+  <metadata\n+     id=\"metadata13564\">\n+    <rdf:RDF>\n+      <cc:Work\n+         rdf:about=\"\">\n+        <dc:format>image/svg+xml</dc:format>\n+        <dc:type\n+           rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" />\n+        <dc:title></dc:title>\n+      </cc:Work>\n+    </rdf:RDF>\n+  </metadata>\n   <g\n-     id=\"Layer1017\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n+     inkscape:groupmode=\"layer\"\n+     id=\"layer3\"\n+     inkscape:label=\"Drawing\"\n+     transform=\"translate(0,-192)\">\n+    <rect\n+       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\"\n+       id=\"rect6314\"\n+       width=\"54.923889\"\n+       height=\"77.909065\"\n+       x=\"47.091534\"\n+       y=\"211.93466\" />\n+    <rect\n+       style=\"opacity:0.50199998;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581\"\n+       width=\"23.118814\"\n+       height=\"8.4189901\"\n+       x=\"2.0566161\"\n+       y=\"194.62044\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"13.409275\"\n+       y=\"197.77512\"\n+       id=\"text13585\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"13.409275\"\n+         y=\"197.77512\"\n+         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\"\n+         id=\"tspan13587\">librte_power</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"13.409275\"\n+         y=\"201.30289\"\n+         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\"\n+         id=\"tspan13591\">(VM)</tspan></text>\n+    <rect\n+       style=\"opacity:0.50199998;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.35277778;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-3\"\n+       width=\"23.118814\"\n+       height=\"8.4189901\"\n+       x=\"26.728348\"\n+       y=\"194.62044\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"38.081005\"\n+       y=\"197.77512\"\n+       id=\"text13585-4\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"38.081005\"\n+         y=\"197.77512\"\n+         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\"\n+         id=\"tspan13587-4\">guest_channel</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"38.081005\"\n+         y=\"201.30289\"\n+         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\"\n+         id=\"tspan13591-7\">(VM)</tspan></text>\n+    <rect\n+       style=\"opacity:0.50199998;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.36962408;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-3-9\"\n+       width=\"25.405504\"\n+       height=\"8.4103832\"\n+       x=\"61.705341\"\n+       y=\"194.62886\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"74.146271\"\n+       y=\"197.77512\"\n+       id=\"text13585-4-3\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"74.146271\"\n+         y=\"197.77512\"\n+         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\"\n+         id=\"tspan13587-4-5\">channel_monitor</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"74.146271\"\n+         y=\"201.30289\"\n+         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\"\n+         id=\"tspan13591-7-5\">(Host)</tspan></text>\n+    <rect\n+       style=\"opacity:0.50199998;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.3830055;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-3-9-9\"\n+       width=\"27.293171\"\n+       height=\"8.4058018\"\n+       x=\"98.781654\"\n+       y=\"194.63556\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"112.44437\"\n+       y=\"197.77512\"\n+       id=\"text13585-4-3-8\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"112.44437\"\n+         y=\"197.77512\"\n+         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\"\n+         id=\"tspan13587-4-5-3\">channel_manager</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"112.44437\"\n+         y=\"201.30289\"\n+         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\"\n+         id=\"tspan13591-7-5-5\">(Host)</tspan></text>\n+    <rect\n+       style=\"opacity:0.50199998;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.3830055;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-3-9-9-0\"\n+       width=\"27.293173\"\n+       height=\"8.4058018\"\n+       x=\"130.46378\"\n+       y=\"194.63556\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"144.1265\"\n+       y=\"197.186\"\n+       id=\"text13585-4-3-8-4\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"144.1265\"\n+         y=\"197.186\"\n+         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\"\n+         id=\"tspan13587-4-5-3-0\">power_manager</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"144.1265\"\n+         y=\"200.71378\"\n+         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\"\n+         id=\"tspan13591-7-5-5-2\">(Host)</tspan></text>\n+    <rect\n+       style=\"opacity:0.50199998;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.3830055;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-3-9-9-0-6\"\n+       width=\"27.293173\"\n+       height=\"8.4058018\"\n+       x=\"160.53162\"\n+       y=\"194.63556\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"174.19434\"\n+       y=\"197.77512\"\n+       id=\"text13585-4-3-8-4-7\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"174.19434\"\n+         y=\"197.77512\"\n+         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\"\n+         id=\"tspan13587-4-5-3-0-8\">librte_power</tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"174.19434\"\n+         y=\"201.30289\"\n+         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\"\n+         id=\"tspan13591-7-5-5-2-7\">(Host)</tspan></text>\n     <path\n-       d=\"m 249.6969,310.3937 0,-209.7638 -9,0 0,209.7638 9,0 z\"\n-       style=\"fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round\"\n-       id=\"path5327\"\n+       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\"\n+       d=\"m 13.816475,203.11478 v 91.27254\"\n+       id=\"path968\"\n        inkscape:connector-curvature=\"0\" />\n     <path\n-       d=\"m 249.6969,310.3937 0,-209.7638 -9,0 0,209.7638 9,0 z\"\n-       style=\"fill:none;stroke:#000000;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none\"\n-       id=\"path5329\"\n+       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\"\n+       d=\"M 38.538907,203.44886 V 294.7214\"\n+       id=\"path968-7\"\n        inkscape:connector-curvature=\"0\" />\n-  </g>\n-  <g\n-     id=\"Layer1018\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <defs\n-       id=\"defs5332\">\n-      <marker\n-         id=\"endMarker1\"\n-         markerUnits=\"strokeWidth\"\n-         orient=\"auto\"\n-         markerWidth=\"8\"\n-         markerHeight=\"6\"\n-         viewBox=\"0 0 10 10\"\n-         refX=\"1\"\n-         refY=\"5\">\n-        <polyline\n-           points=\"0,0 10,5 0,10 1,5\"\n-           fill=\"solid\"\n-           id=\"polyline5335\" />\n-      </marker>\n-    </defs>\n     <path\n-       d=\"m 249.6969,154.6299 a 23.4,468 90 0 1 0,18\"\n-       style=\"fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;marker-end:url(#endMarker1)\"\n-       id=\"path5337\"\n+       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\"\n+       d=\"m 74.219389,203.71614 v 91.27253\"\n+       id=\"path968-7-8\"\n        inkscape:connector-curvature=\"0\" />\n-    <text\n-       x=\"289.6969\"\n-       y=\"163.6299\"\n-       id=\"text5339\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5341\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">process_request</tspan>\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1019\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <defs\n-       id=\"defs5344\">\n-      <marker\n-         id=\"endMarker2\"\n-         markerUnits=\"strokeWidth\"\n-         orient=\"auto\"\n-         markerWidth=\"8\"\n-         markerHeight=\"6\"\n-         viewBox=\"0 0 10 10\"\n-         refX=\"1\"\n-         refY=\"5\">\n-        <polyline\n-           points=\"0,0 10,5 0,10 1,5\"\n-           fill=\"solid\"\n-           id=\"polyline5347\" />\n-      </marker>\n-    </defs>\n     <path\n-       d=\"m 249.6969,190.6299 108.6323,-0.7086\"\n-       style=\"fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;marker-end:url(#endMarker2)\"\n-       id=\"path5349\"\n+       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\"\n+       d=\"m 113.37436,203.44887 v 91.27254\"\n+       id=\"path968-7-5\"\n        inkscape:connector-curvature=\"0\" />\n-    <text\n-       x=\"271.9838\"\n-       y=\"179.6738\"\n-       id=\"text5351\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5353\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">get_pcpu_mask()</tspan>\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1020\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n     <path\n-       d=\"m 367.3292,225.9213 0,-36 -9,0 0,36 9,0 z\"\n-       style=\"fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round\"\n-       id=\"path5356\"\n+       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\"\n+       d=\"m 144.6449,202.91433 v 91.27253\"\n+       id=\"path968-7-0\"\n        inkscape:connector-curvature=\"0\" />\n     <path\n-       d=\"m 367.3292,225.9213 0,-36 -9,0 0,36 9,0 z\"\n-       style=\"fill:none;stroke:#000000;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none\"\n-       id=\"path5358\"\n-       inkscape:connector-curvature=\"0\" />\n-  </g>\n-  <g\n-     id=\"Layer1021\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <defs\n-       id=\"defs5361\">\n-      <marker\n-         id=\"startMarker1\"\n-         markerUnits=\"strokeWidth\"\n-         orient=\"auto\"\n-         markerWidth=\"8\"\n-         markerHeight=\"6\"\n-         viewBox=\"0 0 10 10\"\n-         refX=\"9\"\n-         refY=\"5\">\n-        <polyline\n-           points=\"10,0 0,5 10,10 9,5\"\n-           fill=\"solid\"\n-           id=\"polyline5364\" />\n-      </marker>\n-    </defs>\n-    <path\n-       d=\"m 249.6969,226.6299 108.6323,-0.7086\"\n-       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)\"\n-       id=\"path5366\"\n+       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\"\n+       d=\"M 172.17366,203.44887 V 294.7214\"\n+       id=\"path968-7-6\"\n        inkscape:connector-curvature=\"0\" />\n+    <rect\n+       style=\"opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.17638889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-8-5\"\n+       width=\"2.9174259\"\n+       height=\"6.2582946\"\n+       x=\"36.94656\"\n+       y=\"228.71709\" />\n+    <rect\n+       style=\"opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.17638889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-8\"\n+       width=\"2.9174256\"\n+       height=\"6.2582946\"\n+       x=\"12.285574\"\n+       y=\"228.71709\" />\n+    <rect\n+       style=\"opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.17638889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-8-5-0\"\n+       width=\"2.545445\"\n+       height=\"69.763725\"\n+       x=\"72.813026\"\n+       y=\"217.14323\" />\n+    <rect\n+       style=\"opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.17638889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-8-5-3\"\n+       width=\"2.849076\"\n+       height=\"12.337144\"\n+       x=\"112.08347\"\n+       y=\"247.05385\" />\n+    <rect\n+       style=\"opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.17638889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-8-5-3-0\"\n+       width=\"2.849076\"\n+       height=\"12.337144\"\n+       x=\"143.354\"\n+       y=\"270.57895\" />\n+    <rect\n+       style=\"opacity:1;fill:#b3c6dc;fill-opacity:1;stroke:#000000;stroke-width:0.17638889;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-8-5-9\"\n+       width=\"2.9174259\"\n+       height=\"6.2582946\"\n+       x=\"170.84859\"\n+       y=\"276.69199\" />\n     <text\n-       x=\"282.43311\"\n-       y=\"215.6738\"\n-       id=\"text5368\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5370\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">pcpu_mask</tspan>\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1022\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <path\n-       d=\"m 544.3667,331.6535 0,-272.4094\"\n-       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\"\n-       id=\"path5373\"\n-       inkscape:connector-curvature=\"0\" />\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"25.989178\"\n+       y=\"226.47469\"\n+       id=\"text13585-3\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"25.989178\"\n+         y=\"226.47469\"\n+         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\"\n+         id=\"tspan13591-3\">rte_power_freq_up()</tspan></text>\n     <text\n-       x=\"412.1619\"\n-       y=\"195.44881\"\n-       transform=\"matrix(0,-1,1,0,348.9179,739.8155)\"\n-       id=\"text5375\">\n-      <tspan\n-         font-size=\"12.0000\"\n-         id=\"tspan5377\"\n-         style=\"font-size:12px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\" />\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1023\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <g\n-       id=\"Layer1024\">\n-      <path\n-         d=\"m 506.5757,59.2441 75.5819,0 0,-25.2284 -75.5819,0 0,25.2284 z\"\n-         style=\"fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round\"\n-         id=\"path5381\"\n-         inkscape:connector-curvature=\"0\" />\n-      <path\n-         d=\"m 506.5757,59.2441 75.5819,0 0,-25.2284 -75.5819,0 0,25.2284 z\"\n-         style=\"fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none\"\n-         id=\"path5383\"\n-         inkscape:connector-curvature=\"0\" />\n-    </g>\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"24.740162\"\n+       y=\"233.53178\"\n+       id=\"text13585-3-3\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"24.740162\"\n+         y=\"233.53178\"\n+         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\"\n+         id=\"tspan13591-3-0\">status</tspan></text>\n     <text\n-       x=\"510.57571\"\n-       y=\"46.629902\"\n-       id=\"text5385\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5387\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">librte_power(Host)</tspan>\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1025\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <defs\n-       id=\"defs5390\">\n-      <marker\n-         id=\"endMarker3\"\n-         markerUnits=\"strokeWidth\"\n-         orient=\"auto\"\n-         markerWidth=\"8\"\n-         markerHeight=\"6\"\n-         viewBox=\"0 0 10 10\"\n-         refX=\"1\"\n-         refY=\"5\">\n-        <polyline\n-           points=\"0,0 10,5 0,10 1,5\"\n-           fill=\"solid\"\n-           id=\"polyline5393\" />\n-      </marker>\n-    </defs>\n-    <path\n-       d=\"m 249.6969,262.6299 205.4799,-0.7086\"\n-       style=\"fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;marker-end:url(#endMarker3)\"\n-       id=\"path5395\"\n-       inkscape:connector-curvature=\"0\" />\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"56.144329\"\n+       y=\"214.84552\"\n+       id=\"text13585-3-1\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"56.486771\"\n+         y=\"214.84552\"\n+         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\"\n+         id=\"tspan13591-3-7\">Loop: for each </tspan><tspan\n+         sodipodi:role=\"line\"\n+         x=\"56.144329\"\n+         y=\"217.66774\"\n+         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\"\n+         id=\"tspan1137\">epoll event</tspan></text>\n     <text\n-       x=\"303.06931\"\n-       y=\"251.6738\"\n-       id=\"text5397\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5399\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">scale_freq_up(pcpu_mask)</tspan>\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1026\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <path\n-       d=\"m 464.1768,297.9213 0,-36 -9,0 0,36 9,0 z\"\n-       style=\"fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round\"\n-       id=\"path5402\"\n-       inkscape:connector-curvature=\"0\" />\n-    <path\n-       d=\"m 464.1768,297.9213 0,-36 -9,0 0,36 9,0 z\"\n-       style=\"fill:none;stroke:#000000;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none\"\n-       id=\"path5404\"\n-       inkscape:connector-curvature=\"0\" />\n-  </g>\n-  <g\n-     id=\"Layer1027\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <defs\n-       id=\"defs5407\">\n-      <marker\n-         id=\"endMarker4\"\n-         markerUnits=\"strokeWidth\"\n-         orient=\"auto\"\n-         markerWidth=\"8\"\n-         markerHeight=\"6\"\n-         viewBox=\"0 0 10 10\"\n-         refX=\"1\"\n-         refY=\"5\">\n-        <polyline\n-           points=\"0,0 10,5 0,10 1,5\"\n-           fill=\"solid\"\n-           id=\"polyline5410\" />\n-      </marker>\n-    </defs>\n-    <path\n-       d=\"m 464.1768,279.9213 76.9925,0\"\n-       style=\"fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;marker-end:url(#endMarker4)\"\n-       id=\"path5412\"\n-       inkscape:connector-curvature=\"0\" />\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"91.464294\"\n+       y=\"233.68802\"\n+       id=\"text13585-3-4-9\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"91.464294\"\n+         y=\"233.68802\"\n+         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\"\n+         id=\"tspan13591-3-6-1\">process_request</tspan></text>\n     <text\n-       x=\"465.31769\"\n-       y=\"269.31949\"\n-       id=\"text5414\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5416\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">rte_power_freq_up()</tspan>\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1028\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"91.556564\"\n+       y=\"245.283\"\n+       id=\"text13585-3-4-9-4\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"91.556564\"\n+         y=\"245.283\"\n+         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\"\n+         id=\"tspan13591-3-6-1-0\">get_pcpu_mask()</tspan></text>\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"90.904503\"\n+       y=\"257.57739\"\n+       id=\"text13585-3-4-9-2\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"90.904503\"\n+         y=\"257.57739\"\n+         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\"\n+         id=\"tspan13591-3-6-1-05\">pcpu_mask</tspan></text>\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"158.28529\"\n+       y=\"281.20514\"\n+       id=\"text13585-3-3-2-1\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"158.28529\"\n+         y=\"281.20514\"\n+         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\"\n+         id=\"tspan13591-3-0-1-8\">status</tspan></text>\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"159.21713\"\n+       y=\"274.58026\"\n+       id=\"text13585-3-4-9-4-5\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"159.21713\"\n+         y=\"274.58026\"\n+         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\"\n+         id=\"tspan13591-3-6-1-0-5\">rte_power_freq_up()</tspan></text>\n     <path\n-       d=\"m 550.1693,297.9213 0,-18 -9,0 0,18 9,0 z\"\n-       style=\"fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round\"\n-       id=\"path5419\"\n-       inkscape:connector-curvature=\"0\" />\n+       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)\"\n+       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\"\n+       id=\"path873\"\n+       inkscape:connector-curvature=\"0\"\n+       sodipodi:nodetypes=\"ccc\" />\n     <path\n-       d=\"m 550.1693,297.9213 0,-18 -9,0 0,18 9,0 z\"\n-       style=\"fill:none;stroke:#000000;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none\"\n-       id=\"path5421\"\n+       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)\"\n+       d=\"M 15.203,228.85074 H 36.946558\"\n+       id=\"path1561\"\n        inkscape:connector-curvature=\"0\" />\n-  </g>\n-  <g\n-     id=\"Layer1029\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n     <path\n-       d=\"m 132.0591,154.4882 0,-18 -9,0 0,18 9,0 z\"\n-       style=\"fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round\"\n-       id=\"path5424\"\n+       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)\"\n+       d=\"M 15.203001,234.9754 H 36.946559\"\n+       id=\"path1561-3\"\n        inkscape:connector-curvature=\"0\" />\n     <path\n-       d=\"m 132.0591,154.4882 0,-18 -9,0 0,18 9,0 z\"\n-       style=\"fill:none;stroke:#000000;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none\"\n-       id=\"path5426\"\n+       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)\"\n+       d=\"M 39.724979,234.9754 H 72.577131\"\n+       id=\"path1561-0\"\n        inkscape:connector-curvature=\"0\" />\n-  </g>\n-  <g\n-     id=\"Layer1030\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <defs\n-       id=\"defs5429\">\n-      <marker\n-         id=\"endMarker5\"\n-         markerUnits=\"strokeWidth\"\n-         orient=\"auto\"\n-         markerWidth=\"8\"\n-         markerHeight=\"6\"\n-         viewBox=\"0 0 10 10\"\n-         refX=\"1\"\n-         refY=\"5\">\n-        <polyline\n-           points=\"0,0 10,5 0,10 1,5\"\n-           fill=\"solid\"\n-           id=\"polyline5432\" />\n-      </marker>\n-    </defs>\n     <path\n-       d=\"m 132.0591,154.4882 108.6378,0.1417\"\n-       style=\"fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;marker-end:url(#endMarker5)\"\n-       id=\"path5434\"\n-       inkscape:connector-curvature=\"0\" />\n-    <text\n-       x=\"135.90199\"\n-       y=\"143.95731\"\n-       id=\"text5436\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5438\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">guest_channel_send_msg()</tspan>\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1031\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <defs\n-       id=\"defs5441\">\n-      <marker\n-         id=\"startMarker2\"\n-         markerUnits=\"strokeWidth\"\n-         orient=\"auto\"\n-         markerWidth=\"8\"\n-         markerHeight=\"6\"\n-         viewBox=\"0 0 10 10\"\n-         refX=\"9\"\n-         refY=\"5\">\n-        <polyline\n-           points=\"10,0 0,5 10,10 9,5\"\n-           fill=\"solid\"\n-           id=\"polyline5444\" />\n-      </marker>\n-    </defs>\n+       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)\"\n+       d=\"m 75.241702,246.95037 36.841758,0.10349\"\n+       id=\"path1561-5\"\n+       inkscape:connector-curvature=\"0\"\n+       sodipodi:nodetypes=\"cc\" />\n     <path\n-       d=\"m 464.1768,297.9213 76.9925,0\"\n-       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)\"\n-       id=\"path5446\"\n-       inkscape:connector-curvature=\"0\" />\n-    <text\n-       x=\"486.673\"\n-       y=\"287.31949\"\n-       id=\"text5448\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5450\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">status</tspan>\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1032\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <defs\n-       id=\"defs5453\">\n-      <marker\n-         id=\"startMarker3\"\n-         markerUnits=\"strokeWidth\"\n-         orient=\"auto\"\n-         markerWidth=\"8\"\n-         markerHeight=\"6\"\n-         viewBox=\"0 0 10 10\"\n-         refX=\"9\"\n-         refY=\"5\">\n-        <polyline\n-           points=\"10,0 0,5 10,10 9,5\"\n-           fill=\"solid\"\n-           id=\"polyline5456\" />\n-      </marker>\n-    </defs>\n+       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)\"\n+       d=\"M 75.372816,259.391 H 112.08346\"\n+       id=\"path1561-3-9\"\n+       inkscape:connector-curvature=\"0\"\n+       sodipodi:nodetypes=\"cc\" />\n     <path\n-       d=\"m 249.6969,298.6299 205.4799,-0.7086\"\n-       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)\"\n-       id=\"path5458\"\n-       inkscape:connector-curvature=\"0\" />\n-    <text\n-       x=\"336.4306\"\n-       y=\"287.6738\"\n-       id=\"text5460\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5462\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">status</tspan>\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1033\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n+       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)\"\n+       d=\"M 75.241704,270.47547 143.354,270.57896\"\n+       id=\"path1561-5-8\"\n+       inkscape:connector-curvature=\"0\"\n+       sodipodi:nodetypes=\"cc\" />\n     <path\n-       d=\"m 55.4053,154.4882 0,-18 -9,0 0,18 9,0 z\"\n-       style=\"fill:#9ab3d1;fill-rule:evenodd;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round\"\n-       id=\"path5465\"\n-       inkscape:connector-curvature=\"0\" />\n+       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)\"\n+       d=\"M 75.372824,282.9161 H 143.354\"\n+       id=\"path1561-3-9-8\"\n+       inkscape:connector-curvature=\"0\"\n+       sodipodi:nodetypes=\"cc\" />\n     <path\n-       d=\"m 55.4053,154.4882 0,-18 -9,0 0,18 9,0 z\"\n-       style=\"fill:none;stroke:#000000;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none\"\n-       id=\"path5467\"\n-       inkscape:connector-curvature=\"0\" />\n-  </g>\n-  <g\n-     id=\"Layer1034\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <defs\n-       id=\"defs5470\">\n-      <marker\n-         id=\"endMarker6\"\n-         markerUnits=\"strokeWidth\"\n-         orient=\"auto\"\n-         markerWidth=\"8\"\n-         markerHeight=\"6\"\n-         viewBox=\"0 0 10 10\"\n-         refX=\"1\"\n-         refY=\"5\">\n-        <polyline\n-           points=\"0,0 10,5 0,10 1,5\"\n-           fill=\"solid\"\n-           id=\"polyline5473\" />\n-      </marker>\n-    </defs>\n+       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)\"\n+       d=\"m 146.29869,276.69198 h 24.54989\"\n+       id=\"path1561-4\"\n+       inkscape:connector-curvature=\"0\"\n+       sodipodi:nodetypes=\"cc\" />\n     <path\n-       d=\"m 55.4053,136.4882 67.6538,0\"\n-       style=\"fill:none;stroke:#1f497d;stroke-width:0.47999999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;marker-end:url(#endMarker6)\"\n-       id=\"path5475\"\n-       inkscape:connector-curvature=\"0\" />\n+       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)\"\n+       d=\"m 146.43232,282.81664 h 24.41626\"\n+       id=\"path1561-3-7\"\n+       inkscape:connector-curvature=\"0\"\n+       sodipodi:nodetypes=\"cc\" />\n+    <rect\n+       style=\"opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.12931521;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-8-5-4\"\n+       width=\"2.9174259\"\n+       height=\"3.3636653\"\n+       x=\"111.91566\"\n+       y=\"265.54959\" />\n+    <rect\n+       style=\"opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.12931521;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-8-5-4-8\"\n+       width=\"2.9174259\"\n+       height=\"3.3636653\"\n+       x=\"45.63282\"\n+       y=\"230.29805\" />\n     <text\n-       x=\"51.876801\"\n-       y=\"125.8864\"\n-       id=\"text5477\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5479\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">rte_power_freq_up()</tspan>\n-    </text>\n-  </g>\n-  <g\n-     id=\"Layer1035\"\n-     transform=\"matrix(1.6134241,0,0,1.6733416,-27.320753,68.655772)\">\n-    <defs\n-       id=\"defs5482\">\n-      <marker\n-         id=\"startMarker4\"\n-         markerUnits=\"strokeWidth\"\n-         orient=\"auto\"\n-         markerWidth=\"8\"\n-         markerHeight=\"6\"\n-         viewBox=\"0 0 10 10\"\n-         refX=\"9\"\n-         refY=\"5\">\n-        <polyline\n-           points=\"10,0 0,5 10,10 9,5\"\n-           fill=\"solid\"\n-           id=\"polyline5485\" />\n-      </marker>\n-    </defs>\n-    <path\n-       d=\"m 55.4053,154.4882 72.1538,0\"\n-       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)\"\n-       id=\"path5487\"\n-       inkscape:connector-curvature=\"0\" />\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"56.678867\"\n+       y=\"232.61894\"\n+       id=\"text13585-3-4\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"56.678867\"\n+         y=\"232.61894\"\n+         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\"\n+         id=\"tspan13591-3-6\">guest_channel_send_msg()</tspan></text>\n+    <rect\n+       style=\"opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.12931521;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-8-5-4-9\"\n+       width=\"2.9174259\"\n+       height=\"3.3636653\"\n+       x=\"100.28944\"\n+       y=\"265.70587\" />\n+    <text\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"110.37933\"\n+       y=\"268.28806\"\n+       id=\"text13585-3-4-9-2-6\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"110.37933\"\n+         y=\"268.28806\"\n+         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\"\n+         id=\"tspan13591-3-6-1-05-4\">scale_freq_up(pcpu_mask)</tspan></text>\n+    <rect\n+       style=\"opacity:1;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.12931521;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\"\n+       id=\"rect13581-8-5-4-99\"\n+       width=\"2.9174259\"\n+       height=\"3.3636653\"\n+       x=\"111.78201\"\n+       y=\"278.54019\" />\n     <text\n-       x=\"75.482201\"\n-       y=\"143.8864\"\n-       id=\"text5489\">\n-      <tspan\n-         font-size=\"8.0000\"\n-         id=\"tspan5491\"\n-         style=\"font-size:8px;fill:#000000;fill-opacity:1;stroke-opacity:1;font-family:Arial\">status</tspan>\n-    </text>\n+       xml:space=\"preserve\"\n+       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\"\n+       x=\"113.21278\"\n+       y=\"280.93787\"\n+       id=\"text13585-3-3-2\"><tspan\n+         sodipodi:role=\"line\"\n+         x=\"113.21278\"\n+         y=\"280.93787\"\n+         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\"\n+         id=\"tspan13591-3-0-1\">status</tspan></text>\n   </g>\n </svg>\ndiff --git a/doc/guides/sample_app_ug/vm_power_management.rst b/doc/guides/sample_app_ug/vm_power_management.rst\nindex bb2aa4faf..d43ba9cbe 100644\n--- a/doc/guides/sample_app_ug/vm_power_management.rst\n+++ b/doc/guides/sample_app_ug/vm_power_management.rst\n@@ -1,119 +1,128 @@\n ..  SPDX-License-Identifier: BSD-3-Clause\n     Copyright(c) 2010-2014 Intel Corporation.\n \n-VM Power Management Application\n-===============================\n-\n-Introduction\n-------------\n-\n-Applications running in Virtual Environments have an abstract view of\n-the underlying hardware on the Host, in particular applications cannot see\n-the binding of virtual to physical hardware.\n-When looking at CPU resourcing, the pinning of Virtual CPUs(vCPUs) to\n-Host Physical CPUs(pCPUS) is not apparent to an application\n-and this pinning may change over time.\n-Furthermore, Operating Systems on virtual machines do not have the ability\n-to govern their own power policy; the Machine Specific Registers (MSRs)\n-for enabling P-State transitions are not exposed to Operating Systems\n-running on Virtual Machines(VMs).\n-\n-The Virtual Machine Power Management solution shows an example of\n-how a DPDK application can indicate its processing requirements using VM local\n-only information(vCPU/lcore, etc.) to a Host based Monitor which is responsible\n-for accepting requests for frequency changes for a vCPU, translating the vCPU\n-to a pCPU via libvirt and affecting the change in frequency.\n-\n-The solution is comprised of two high-level components:\n-\n-#. Example Host Application\n-\n-   Using a Command Line Interface(CLI) for VM->Host communication channel management\n-   allows adding channels to the Monitor, setting and querying the vCPU to pCPU pinning,\n-   inspecting and manually changing the frequency for each CPU.\n-   The CLI runs on a single lcore while the thread responsible for managing\n-   VM requests runs on a second lcore.\n-\n-   VM requests arriving on a channel for frequency changes are passed\n-   to the librte_power ACPI cpufreq sysfs based library.\n-   The Host Application relies on both qemu-kvm and libvirt to function.\n-\n-   This monitoring application is responsible for:\n-\n-   - Accepting requests from client applications: Client applications can\n-     request frequency changes for a vCPU, translating\n-     the vCPU to a pCPU via libvirt and affecting the change in frequency.\n-\n-   - Accepting policies from client applications: Client application can\n-     send a policy to the host application. The\n-     host application will then apply the rules of the policy independent\n-     of the application. For example, the policy can contain time-of-day\n-     information for busy/quiet periods, and the host application can scale\n-     up/down the relevant cores when required. See the details of the guest\n-     application below for more information on setting the policy values.\n-\n-   - Out-of-band monitoring of workloads via cores hardware event counters:\n-     The host application can manage power for an application in a virtualised\n-     OR non-virtualised environment by looking at the event counters of the\n-     cores and taking action based on the branch hit/miss ratio. See the host\n-     application '--core-list' command line parameter below.\n-\n-#. librte_power for Virtual Machines\n-\n-   Using an alternate implementation for the librte_power API, requests for\n-   frequency changes are forwarded to the host monitor rather than\n-   the APCI cpufreq sysfs interface used on the host.\n-\n-   The l3fwd-power application will use this implementation when deployed on a VM\n-   (see :doc:`l3_forward_power_man`).\n+Virtual Machine Power Management Application\n+============================================\n+\n+Applications running in virtual environments have an abstract view of\n+the underlying hardware on the host. Specifically, applications cannot\n+see the binding of virtual components to physical hardware. When looking\n+at CPU resourcing, the pinning of Virtual CPUs (vCPUs) to Physical CPUs\n+(pCPUs) on the host is not apparent to an application and this pinning\n+may change over time. In addition, operating systems on Virtual Machines\n+(VMs) do not have the ability to govern their own power policy. The\n+Machine Specific Registers (MSRs) for enabling P-state transitions are\n+not exposed to the operating systems running on the VMs.\n+\n+The solution demonstrated in this sample application shows an example of\n+how a DPDK application can indicate its processing requirements using\n+VM-local only information (vCPU/lcore, and so on) to a host resident VM\n+Power Manager. The VM Power Manager is responsible for:\n+\n+- **Accepting requests for frequency changes for a vCPU**\n+- **Translating the vCPU to a pCPU using libvirt**\n+- **Performing the change in frequency**\n+\n+This application demonstrates the following features:\n+\n+- **The handling of VM application requests to change frequency.**\n+  VM applications can request frequency changes for a vCPU. The VM\n+  Power Management Application uses libvirt to translate that\n+  virtual CPU (vCPU) request to a physical CPU (pCPU) request and\n+  performs the frequency change.\n+\n+- **The acceptance of power management policies from VM applications.**\n+  A VM application can send a policy to the host application. The\n+  policy contains rules that define the power management behaviour\n+  of the VM. The host application then applies the rules of the\n+  policy independent of the VM application. For example, the\n+  policy can contain time-of-day information for busy/quiet\n+  periods, and the host application can scale up/down the relevant\n+  cores when required. See :ref:`sending_policy` for information on\n+  setting policy values.\n+\n+- **Out-of-band monitoring of workloads using core hardware event counters.**\n+  The host application can manage power for an application by looking\n+  at the event counters of the cores and taking action based on the\n+  branch miss/hit ratio. See :ref:`enabling_out_of_band`.\n+\n+  **Note**: This functionality also applies in non-virtualised environments.\n+\n+In addition to the ``librte_power`` library used on the host, the\n+application uses a special version of ``librte_power`` on each VM, which\n+directs frequency changes and policies to the host monitor rather than\n+the APCI ``cpufreq`` ``sysfs`` interface used on the host in non-virtualised\n+environments.\n \n .. _figure_vm_power_mgr_highlevel:\n \n .. figure:: img/vm_power_mgr_highlevel.*\n \n-   Highlevel Solution\n+Sample Application Architecture Overview\n+----------------------------------------\n+\n+The VM power management solution employs ``qemu-kvm`` to provide\n+communications channels between the host and VMs in the form of a\n+``virtio-serial`` connection that appears as a para-virtualised serial\n+device on a VM and can be configured to use various backends on the\n+host. For this example, the configuration of each ``virtio-serial`` endpoint\n+on the host as an ``AF_UNIX`` file socket, supporting poll/select and\n+``epoll`` for event notification. In this example, each channel endpoint on\n+the host is monitored for ``EPOLLIN`` events using ``epoll``. Each channel\n+is specified as ``qemu-kvm`` arguments or as ``libvirt`` XML for each VM,\n+where each VM can have several channels up to a maximum of 64 per VM. In this\n+example, each DPDK lcore on a VM has exclusive access to a channel.\n+\n+To enable frequency changes from within a VM, the VM forwards a\n+``librte_power`` request over the ``virtio-serial`` channel to the host. Each\n+request contains the vCPU and power command (scale up/down/min/max). The\n+API for the host ``librte_power`` and guest ``librte_power`` is consistent\n+across environments, with the selection of VM or host implementation\n+determined automatically at runtime based on the environment. On\n+receiving a request, the host translates the vCPU to a pCPU using the\n+libvirt API before forwarding it to the host ``librte_power``.\n \n \n-Overview\n---------\n-\n-VM Power Management employs qemu-kvm to provide communications channels\n-between the host and VMs in the form of Virtio-Serial which appears as\n-a paravirtualized serial device on a VM and can be configured to use\n-various backends on the host. For this example each Virtio-Serial endpoint\n-on the host is configured as AF_UNIX file socket, supporting poll/select\n-and epoll for event notification.\n-In this example each channel endpoint on the host is monitored via\n-epoll for EPOLLIN events.\n-Each channel is specified as qemu-kvm arguments or as libvirt XML for each VM,\n-where each VM can have a number of channels up to a maximum of 64 per VM,\n-in this example each DPDK lcore on a VM has exclusive access to a channel.\n-\n-To enable frequency changes from within a VM, a request via the librte_power interface\n-is forwarded via Virtio-Serial to the host, each request contains the vCPU\n-and power command(scale up/down/min/max).\n-The API for host and guest librte_power is consistent across environments,\n-with the selection of VM or Host Implementation determined at automatically\n-at runtime based on the environment.\n-\n-Upon receiving a request, the host translates the vCPU to a pCPU via\n-the libvirt API before forwarding to the host librte_power.\n-\n .. _figure_vm_power_mgr_vm_request_seq:\n \n .. figure:: img/vm_power_mgr_vm_request_seq.*\n \n-   VM request to scale frequency\n-\n+In addition to the ability to send power management requests to the\n+host, a VM can send a power management policy to the host. In some\n+cases, using a power management policy is a preferred option because it\n+can eliminate possible latency issues that can occur when sending power\n+management requests. Once the VM sends the policy to the host, the VM no\n+longer needs to worry about power management, because the host now\n+manages the power for the VM based on the policy. The policy can specify\n+power behavior that is based on incoming traffic rates or time-of-day\n+power adjustment (busy/quiet hour power adjustment for example). See\n+:ref:`sending_policy` for more information.\n+\n+One method of power management is to sense how busy a core is when\n+processing packets and adjusting power accordingly. One technique for\n+doing this is to monitor the ratio of the branch miss to branch hits\n+counters and scale the core power accordingly. This technique is based\n+on the premise that when a core is not processing packets, the ratio of\n+branch misses to branch hits is very low, but when the core is\n+processing packets, it is measurably higher. The implementation of this\n+capability is as a policy of type ``BRANCH_RATIO``.\n+See :ref:`sending_policy` for more information on using the\n+BRANCH_RATIO policy option.\n+\n+A JSON interface enables the specification of power management requests\n+and policies in JSON format. The JSON interfaces provide a more\n+convenient and more easily interpreted interface for the specification\n+of requests and policies. See :ref:`power_man_requests` for more information.\n \n Performance Considerations\n ~~~~~~~~~~~~~~~~~~~~~~~~~~\n \n-While Haswell Microarchitecture allows for independent power control for each core,\n-earlier Microarchtectures do not offer such fine grained control.\n-When deployed on pre-Haswell platforms greater care must be taken in selecting\n-which cores are assigned to a VM, for instance a core will not scale down\n-until its sibling is similarly scaled.\n+While the Haswell microarchitecture allows for independent power control\n+for each core, earlier microarchitectures do not offer such fine-grained\n+control. When deploying on pre-Haswell platforms, greater care must be\n+taken when selecting which cores are assigned to a VM, for example, a\n+core does not scale down in frequency until all of its siblings are\n+similarly scaled down.\n \n Configuration\n -------------\n@@ -121,636 +130,541 @@ Configuration\n BIOS\n ~~~~\n \n-Enhanced Intel SpeedStep® Technology must be enabled in the platform BIOS\n-if the power management feature of DPDK is to be used.\n-Otherwise, the sys file folder /sys/devices/system/cpu/cpu0/cpufreq will not exist,\n-and the CPU frequency-based power management cannot be used.\n-Consult the relevant BIOS documentation to determine how these settings\n-can be accessed.\n+To use the power management features of the DPDK, you must enable\n+Enhanced Intel SpeedStep® Technology in the platform BIOS. Otherwise,\n+the ``sys`` file folder ``/sys/devices/system/cpu/cpu0/cpufreq`` does not\n+exist, and you cannot use CPU frequency-based power management. Refer to the\n+relevant BIOS documentation to determine how to access these settings.\n \n Host Operating System\n ~~~~~~~~~~~~~~~~~~~~~\n \n-The DPDK Power Library can use either the *acpi_cpufreq* or *intel_pstate*\n-kernel driver for the management of core frequencies. In many cases\n-the *intel_pstate* driver is the default Power Management environment.\n+The DPDK Power Management library can use either the ``acpi_cpufreq`` or\n+the ``intel_pstate`` kernel driver for the management of core frequencies. In\n+many cases, the ``intel_pstate`` driver is the default power management\n+environment.\n \n-Should the *acpi-cpufreq* driver be required, the *intel_pstate* module must\n-be disabled, and *apci_cpufreq* module loaded in its place.\n+Should the ``acpi-cpufreq driver`` be required, the ``intel_pstate``\n+module must be disabled, and the ``acpi-cpufreq`` module loaded in its place.\n \n-To disable *intel_pstate* driver, add the following to the grub Linux\n-command line:\n+To disable the ``intel_pstate`` driver, add the following to the ``grub``\n+Linux command line:\n \n-.. code-block:: console\n+   ``intel_pstate=disable``\n \n-  intel_pstate=disable\n+On reboot, load the ``acpi_cpufreq`` module:\n \n-Upon rebooting, load the *acpi_cpufreq* module:\n-\n-.. code-block:: console\n-\n-  modprobe acpi_cpufreq\n+   ``modprobe acpi_cpufreq``\n \n Hypervisor Channel Configuration\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n \n-Virtio-Serial channels are configured via libvirt XML:\n-\n+Configure ``virtio-serial`` channels using ``libvirt`` XML.\n+The XML structure is as follows: \n \n-.. code-block:: xml\n+.. code-block:: XML\n \n-  <name>{vm_name}</name>\n-  <controller type='virtio-serial' index='0'>\n-    <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>\n-  </controller>\n-  <channel type='unix'>\n-    <source mode='bind' path='/tmp/powermonitor/{vm_name}.{channel_num}'/>\n-    <target type='virtio' name='virtio.serial.port.poweragent.{vm_channel_num}'/>\n-    <address type='virtio-serial' controller='0' bus='0' port='{N}'/>\n-  </channel>\n+   <name>{vm_name}</name>\n+   <controller type='virtio-serial' index='0'>\n+      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>\n+   </controller>\n+   <channel type='unix'>\n+      <source mode='bind' path='/tmp/powermonitor/{vm_name}.{channel_num}'/>\n+      <target type='virtio' name='virtio.serial.port.poweragent.{vm_channel_num}'/>\n+      <address type='virtio-serial' controller='0' bus='0' port='{N}'/>\n+   </channel>\n \n+Where a single controller of type ``virtio-serial`` is created, up to 32\n+channels can be associated with a single controller, and multiple\n+controllers can be specified. The convention is to use the name of the\n+VM in the host path ``{vm_name}`` and to increment ``{channel_num}`` for each\n+channel. Likewise, the port value ``{N}`` must be incremented for each\n+channel.\n \n-Where a single controller of type *virtio-serial* is created and up to 32 channels\n-can be associated with a single controller and multiple controllers can be specified.\n-The convention is to use the name of the VM in the host path *{vm_name}* and\n-to increment *{channel_num}* for each channel, likewise the port value *{N}*\n-must be incremented for each channel.\n-\n-Each channel on the host will appear in *path*, the directory */tmp/powermonitor/*\n-must first be created and given qemu permissions\n+On the host, for each channel to appear in the path, ensure the creation\n+of the ``/tmp/powermonitor/`` directory and the assignment of ``qemu``\n+permissions:\n \n .. code-block:: console\n \n-  mkdir /tmp/powermonitor/\n-  chown qemu:qemu /tmp/powermonitor\n+   mkdir /tmp/powermonitor/\n+   chown qemu:qemu /tmp/powermonitor\n+\n+Note that files and directories in ``/tmp`` are generally removed when\n+rebooting the host and you may need to perform the previous steps after\n+each reboot.\n \n-Note that files and directories within /tmp are generally removed upon\n-rebooting the host and the above steps may need to be carried out after each reboot.\n+The serial device as it appears on a VM is configured with the target\n+element attribute name and must be in the form:\n+``virtio.serial.port.poweragent.{vm_channel_num}``, where\n+``vm_channel_num`` is typically the lcore channel to be used in\n+DPDK VM applications.\n \n-The serial device as it appears on a VM is configured with the *target* element attribute *name*\n-and must be in the form of *virtio.serial.port.poweragent.{vm_channel_num}*,\n-where *vm_channel_num* is typically the lcore channel to be used in DPDK VM applications.\n+Each channel on a VM is present at:\n \n-Each channel on a VM will be present at */dev/virtio-ports/virtio.serial.port.poweragent.{vm_channel_num}*\n+``/dev/virtio-ports/virtio.serial.port.poweragent.{vm_channel_num}``\n \n Compiling and Running the Host Application\n ------------------------------------------\n \n-Compiling\n-~~~~~~~~~\n+Compiling the Host Application\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n \n-For information on compiling DPDK and the sample applications\n+For information on compiling the DPDK and sample applications, see\n see :doc:`compiling`.\n \n-The application is located in the ``vm_power_manager`` sub-directory.\n+The application is located in the ``vm_power_manager`` subdirectory.\n \n To build just the ``vm_power_manager`` application using ``make``:\n \n .. code-block:: console\n \n-  export RTE_SDK=/path/to/rte_sdk\n-  export RTE_TARGET=build\n-  cd ${RTE_SDK}/examples/vm_power_manager/\n-  make\n+   export RTE_SDK=/path/to/rte_sdk\n+   export RTE_TARGET=build\n+   cd ${RTE_SDK}/examples/vm_power_manager/\n+   make\n \n-The resulting binary will be ${RTE_SDK}/build/examples/vm_power_manager\n+The resulting binary is ``${RTE_SDK}/build/examples/vm_power_manager``.\n \n-To build just the ``vm_power_manager`` application using ``meson/ninja``:\n+To build just the ``vm_power_manager`` application using ``meson``/``ninja``:\n \n .. code-block:: console\n \n-  export RTE_SDK=/path/to/rte_sdk\n-  cd ${RTE_SDK}\n-  meson build\n-  cd build\n-  ninja\n-  meson configure -Dexamples=vm_power_manager\n-  ninja\n+   export RTE_SDK=/path/to/rte_sdk\n+   cd ${RTE_SDK}\n+   meson build\n+   cd build\n+   ninja\n+   meson configure -Dexamples=vm_power_manager\n+   ninja\n \n-The resulting binary will be ${RTE_SDK}/build/examples/dpdk-vm_power_manager\n+The resulting binary is ``${RTE_SDK}/build/examples/dpdk-vm_power_manager``.\n \n-Running\n-~~~~~~~\n+Running the Host Application\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n \n-The application does not have any specific command line options other than *EAL*:\n+The application does not have any specific command line options other\n+than the EAL options:\n \n .. code-block:: console\n \n- ./build/vm_power_mgr [EAL options]\n+   ./build/vm_power_mgr [EAL options]\n \n-The application requires exactly two cores to run, one core is dedicated to the CLI,\n-while the other is dedicated to the channel endpoint monitor, for example to run\n-on cores 0 & 1 on a system with 4 memory channels:\n+The application requires exactly two cores to run. One core for the CLI\n+and the other for the channel endpoint monitor. For example, to run on\n+cores 0 and 1 on a system with four memory channels, issue the command:\n \n .. code-block:: console\n \n- ./build/vm_power_mgr -l 0-1 -n 4\n+   ./build/vm_power_mgr -l 0-1 -n 4\n \n-After successful initialization the user is presented with VM Power Manager CLI:\n+After successful initialization, the VM Power Manager CLI prompt appears:\n \n .. code-block:: console\n \n-  vm_power>\n+   vm_power>\n \n-Virtual Machines can now be added to the VM Power Manager:\n+Now, it is possible to add virtual machines to the VM Power Manager:\n \n .. code-block:: console\n \n-  vm_power> add_vm {vm_name}\n-\n-When a {vm_name} is specified with the *add_vm* command a lookup is performed\n-with libvirt to ensure that the VM exists, {vm_name} is used as an unique identifier\n-to associate channels with a particular VM and for executing operations on a VM within the CLI.\n-VMs do not have to be running in order to add them.\n+   vm_power> add_vm {vm_name}\n \n-A number of commands can be issued via the CLI in relation to VMs:\n+When a ``{vm_name}`` is specified with the ``add_vm`` command, a lookup is\n+performed with ``libvirt`` to ensure that the VM exists. ``{vm_name}`` is a\n+unique identifier to associate channels with a particular VM and for\n+executing operations on a VM within the CLI. VMs do not have to be\n+running to add them.\n \n-  Remove a Virtual Machine identified by {vm_name} from the VM Power Manager.\n+It is possible to issue several commands from the CLI to manage VMs.\n \n-  .. code-block:: console\n-\n-    rm_vm {vm_name}\n-\n-  Add communication channels for the specified VM, the virtio channels must be enabled\n-  in the VM configuration(qemu/libvirt) and the associated VM must be active.\n-  {list} is a comma-separated list of channel numbers to add, using the keyword 'all'\n-  will attempt to add all channels for the VM:\n-\n-  .. code-block:: console\n-\n-    add_channels {vm_name} {list}|all\n-\n-  Enable or disable the communication channels in {list}(comma-separated)\n-  for the specified VM, alternatively list can be replaced with keyword 'all'.\n-  Disabled channels will still receive packets on the host, however the commands\n-  they specify will be ignored. Set status to 'enabled' to begin processing requests again:\n-\n-  .. code-block:: console\n-\n-    set_channel_status {vm_name} {list}|all enabled|disabled\n-\n-  Print to the CLI the information on the specified VM, the information\n-  lists the number of vCPUS, the pinning to pCPU(s) as a bit mask, along with\n-  any communication channels associated with each VM, along with the status of each channel:\n-\n-  .. code-block:: console\n+Remove the virtual machine identified by ``{vm_name}`` from the VM Power\n+Manager using the command:\n \n-    show_vm {vm_name}\n-\n-  Set the binding of Virtual CPU on VM with name {vm_name}  to the Physical CPU mask:\n-\n-  .. code-block:: console\n+.. code-block:: console\n \n-    set_pcpu_mask {vm_name} {vcpu} {pcpu}\n+   rm_vm {vm_name}\n \n-  Set the binding of Virtual CPU on VM to the Physical CPU:\n+Add communication channels for the specified VM using the following\n+command. The ``virtio`` channels must be enabled in the VM configuration\n+(``qemu/libvirt``) and the associated VM must be active. ``{list}`` is a\n+comma-separated list of channel numbers to add. Specifying the keyword\n+``all`` attempts to add all channels for the VM:\n \n-  .. code-block:: console\n+.. code-block:: console\n \n-    set_pcpu {vm_name} {vcpu} {pcpu}\n+   set_pcpu {vm_name} {vcpu} {pcpu}\n \n   Enable query of physical core information from a VM:\n \n-  .. code-block:: console\n+.. code-block:: console\n \n-    set_query {vm_name} enable|disable\n+   set_query {vm_name} enable|disable\n \n Manual control and inspection can also be carried in relation CPU frequency scaling:\n \n   Get the current frequency for each core specified in the mask:\n \n-  .. code-block:: console\n+.. code-block:: console\n \n-    show_cpu_freq_mask {mask}\n+   show_cpu_freq_mask {mask}\n \n   Set the current frequency for the cores specified in {core_mask} by scaling each up/down/min/max:\n \n-  .. code-block:: console\n+.. code-block:: console\n \n-    set_cpu_freq {core_mask} up|down|min|max\n+   add_channels {vm_name} {list}|all\n \n-  Get the current frequency for the specified core:\n+Enable or disable the communication channels in ``{list}`` (comma-separated)\n+for the specified VM. Alternatively, replace ``list`` with the keyword\n+``all``. Disabled channels receive packets on the host. However, the commands\n+they specify are ignored. Set the status to enabled to begin processing\n+requests again:\n \n-  .. code-block:: console\n-\n-    show_cpu_freq {core_num}\n+.. code-block:: console\n \n-  Set the current frequency for the specified core by scaling up/down/min/max:\n+   set_channel_status {vm_name} {list}|all enabled|disabled\n \n-  .. code-block:: console\n+Print to the CLI information on the specified VM. The information lists\n+the number of vCPUs, the pinning to pCPU(s) as a bit mask, along with\n+any communication channels associated with each VM, and the status of\n+each channel:\n \n-    set_cpu_freq {core_num} up|down|min|max\n+.. code-block:: console\n \n-There are also some command line parameters for enabling the out-of-band\n-monitoring of branch ratio on cores doing busy polling via PMDs.\n+   show_vm {vm_name}\n \n-  .. code-block:: console\n+Set the binding of a virtual CPU on a VM with name ``{vm_name}`` to the\n+physical CPU mask:\n \n-    --core-list {list of cores}\n+.. code-block:: console\n \n-  When this parameter is used, the list of cores specified will monitor the ratio\n-  between branch hits and branch misses. A tightly polling PMD thread will have a\n-  very low branch ratio, so the core frequency will be scaled down to the minimum\n-  allowed value. When packets are received, the code path will alter, causing the\n-  branch ratio to increase. When the ratio goes above the ratio threshold, the\n-  core frequency will be scaled up to the maximum allowed value.\n+   set_pcpu_mask {vm_name} {vcpu} {pcpu}\n \n+Set the binding of the virtual CPU on the VM to the physical CPU:\n+ \n   .. code-block:: console\n \n-    --branch-ratio {ratio}\n-\n-  The branch ratio is a floating point number that specifies the threshold at which\n-  to scale up or down for the given workload. The default branch ratio is 0.01,\n-  and will need to be adjusted for different workloads.\n-\n-\n-\n-JSON API\n-~~~~~~~~\n-\n-In addition to the command line interface for host command and a virtio-serial\n-interface for VM power policies, there is also a JSON interface through which\n-power commands and policies can be sent. This functionality adds a dependency\n-on the Jansson library, and the Jansson development package must be installed\n-on the system before the JSON parsing functionality is included in the app.\n-This is achieved by:\n-\n-  .. code-block:: javascript\n+   set_pcpu {vm_name} {vcpu} {pcpu}\n \n-    apt-get install libjansson-dev\n+It is also possible to perform manual control and inspection in relation\n+to CPU frequency scaling.\n \n-The command and package name may be different depending on your operating\n-system. It's worth noting that the app will successfully build without this\n-package present, but a warning is shown during compilation, and the JSON\n-parsing functionality will not be present in the app.\n+Get the current frequency for each core specified in the mask:\n \n-Sending a command or policy to the power manager application is achieved by\n-simply opening a fifo file, writing a JSON string to that fifo, and closing\n-the file. In actual implementation every core has own dedicated fifo[0..n],\n-where n is number of the last available core.\n-Having a dedicated fifo file per core allows using standard filesystem permissions\n-to ensure a given container can only write JSON commands into fifos it is allowed\n-to use.\n-\n-The fifo is at /tmp/powermonitor/fifo[0..n]\n-\n-For example all cmds put to the /tmp/powermonitor/fifo7, will have\n-effect only on CPU[7].\n-\n-The JSON string can be a policy or instruction, and takes the following\n-format:\n-\n-  .. code-block:: javascript\n-\n-    {\"packet_type\": {\n-      \"pair_1\": value,\n-      \"pair_2\": value\n-    }}\n-\n-The 'packet_type' header can contain one of two values, depending on\n-whether a policy or power command is being sent. The two possible values are\n-\"policy\" and \"instruction\", and the expected name-value pairs is different\n-depending on which type is being sent.\n-\n-The pairs are the format of standard JSON name-value pairs. The value type\n-varies between the different name/value pairs, and may be integers, strings,\n-arrays, etc. Examples of policies follow later in this document. The allowed\n-names and value types are as follows:\n-\n-\n-:Pair Name: \"command\"\n-:Description: The type of packet we're sending to the power manager. We can be\n-  creating or destroying a policy, or sending a direct command to adjust\n-  the frequency of a core, similar to the command line interface.\n-:Type: string\n-:Values:\n-\n-  :CREATE: used when creating a new policy,\n-  :DESTROY: used when removing a policy,\n-  :POWER: used when sending an immediate command, max, min, etc.\n-:Required: yes\n-:Example:\n+.. code-block:: console\n \n-    .. code-block:: javascript\n+   show_cpu_freq_mask {mask}\n \n-      \"command\", \"CREATE\"\n+Set the current frequency for the cores specified in ``{core_mask}`` by\n+scaling each up/down/min/max:\n \n+.. code-block:: console\n \n-:Pair Name: \"policy_type\"\n-:Description: Type of policy to apply. Please see vm_power_manager documentation\n-  for more information on the types of policies that may be used.\n-:Type: string\n-:Values:\n+   set_cpu_freq {core_mask} up|down|min|max\n \n-  :TIME: Time-of-day policy. Frequencies of the relevant cores are\n-    scaled up/down depending on busy and quiet hours.\n-  :TRAFFIC: This policy takes statistics from the NIC and scales up\n-    and down accordingly.\n-  :WORKLOAD: This policy looks at how heavily loaded the cores are,\n-    and scales up and down accordingly.\n-  :BRANCH_RATIO: This out-of-band policy can look at the ratio between\n-    branch hits and misses on a core, and is useful for detecting\n-    how much packet processing a core is doing.\n-:Required: only for CREATE/DESTROY command\n-:Example:\n+Get the current frequency for the specified core:\n \n-  .. code-block:: javascript\n+.. code-block:: console\n \n-    \"policy_type\", \"TIME\"\n+   show_cpu_freq {core_num}\n \n-:Pair Name: \"busy_hours\"\n-:Description: The hours of the day in which we scale up the cores for busy\n-  times.\n-:Type: array of integers\n-:Values: array with list of hour numbers, (0-23)\n-:Required: only for TIME policy\n-:Example:\n-\n-  .. code-block:: javascript\n-\n-    \"busy_hours\":[ 17, 18, 19, 20, 21, 22, 23 ]\n-\n-:Pair Name: \"quiet_hours\"\n-:Description: The hours of the day in which we scale down the cores for quiet\n-  times.\n-:Type: array of integers\n-:Values: array with list of hour numbers, (0-23)\n-:Required: only for TIME policy\n-:Example:\n+Set the current frequency for the specified core by scaling up/down/min/max:\n \n-  .. code-block:: javascript\n+.. code-block:: console\n \n-    \"quiet_hours\":[ 2, 3, 4, 5, 6 ]\n+   set_cpu_freq {core_num} up|down|min|max\n \n-:Pair Name: \"avg_packet_thresh\"\n-:Description: Threshold below which the frequency will be set to min for\n-  the TRAFFIC policy. If the traffic rate is above this and below max, the\n-  frequency will be set to medium.\n-:Type: integer\n-:Values: The number of packets below which the TRAFFIC policy applies the\n-  minimum frequency, or medium frequency if between avg and max thresholds.\n-:Required: only for TRAFFIC policy\n-:Example:\n+.. _enabling_out_of_band:\n \n-  .. code-block:: javascript\n+Command Line Options for Enabling Out-of-band Branch Ratio Monitoring\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n \n-    \"avg_packet_thresh\": 100000\n+There are a couple of command line parameters for enabling the out-of-band\n+monitoring of branch ratios on cores doing busy polling using PMDs as\n+described in the following table.\n \n-:Pair Name: \"max_packet_thresh\"\n-:Description: Threshold above which the frequency will be set to max for\n-  the TRAFFIC policy\n-:Type: integer\n-:Values: The number of packets per interval above which the TRAFFIC policy\n-  applies the maximum frequency\n-:Required: only for TRAFFIC policy\n-:Example:\n+Table 1 – Command Line Options for Enabling Out-of-band Monitoring of\n+Branch Ratios\n \n-  .. code-block:: javascript\n+=============================== ==============================================\n+**Command Line Option**         **Description**\n+=============================== ==============================================\n+``--core-list {list of cores}`` | Specify the list of cores to monitor the ratio of branch misses\n+                                | to branch hits.  A tightly-polling PMD thread has a very low\n+                                | branch ratio, therefore the core frequency scales down to the\n+                                | minimum allowed value. On receiving packets, the code path changes,\n+                                | causing the branch ratio to increase. When the ratio goes above\n+                                | the ratio threshold, the core frequency scales up to the maximum\n+                                | allowed value.\n+``--branch-ratio {ratio}``      | Specify a floating-point number that identifies the threshold at which\n+                                | to scale up or down for the given workload. The default branch ratio\n+                                | is 0.01 and needs adjustment for different workloads.\n+=============================== ==============================================\n \n-    \"max_packet_thresh\": 500000\n \n-:Pair Name: \"workload\"\n-:Description: When our policy is of type WORKLOAD, we need to specify how\n-  heavy our workload is.\n-:Type: string\n-:Values:\n \n-  :HIGH: For cores running workloads that require high frequencies\n-  :MEDIUM: For cores running workloads that require medium frequencies\n-  :LOW: For cores running workloads that require low frequencies\n-:Required: only for WORKLOAD policy types\n-:Example:\n+Compiling and Running the Guest Applications\n+--------------------------------------------\n \n-  .. code-block:: javascript\n+It is possible to use the ``l3fwd-power`` application (for example) with the\n+``vm_power_manager``.\n \n-    \"workload\", \"MEDIUM\"\n+The distribution also provides a guest CLI for validating the setup.\n \n-:Pair Name: \"mac_list\"\n-:Description: When our policy is of type TRAFFIC, we need to specify the\n-  MAC addresses that the host needs to monitor\n-:Type: string\n-:Values: array with a list of mac address strings.\n-:Required: only for TRAFFIC policy types\n-:Example:\n+For both ``l3fwd-power`` and the guest CLI, the host application must use\n+the ``add_channels`` command to monitor the channels for the VM. To do this,\n+issue the following commands in the host application:\n \n-  .. code-block:: javascript\n+.. code-block:: console\n \n-    \"mac_list\":[ \"de:ad:be:ef:01:01\", \"de:ad:be:ef:01:02\" ]\n+   vm_power> add_vm vmname\n+   vm_power> add_channels vmname all\n+   vm_power> set_channel_status vmname all enabled\n+   vm_power> show_vm vmname\n \n-:Pair Name: \"unit\"\n-:Description: the type of power operation to apply in the command\n-:Type: string\n-:Values:\n+Compiling the Guest Application\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n \n-  :SCALE_MAX: Scale frequency of this core to maximum\n-  :SCALE_MIN: Scale frequency of this core to minimum\n-  :SCALE_UP: Scale up frequency of this core\n-  :SCALE_DOWN: Scale down frequency of this core\n-  :ENABLE_TURBO: Enable Turbo Boost for this core\n-  :DISABLE_TURBO: Disable Turbo Boost for this core\n-:Required: only for POWER instruction\n-:Example:\n+For information on compiling DPDK and the sample applications in general,\n+see :doc:`compiling`.\n \n-  .. code-block:: javascript\n+For compiling and running the ``l3fwd-power`` sample application, see\n+:doc:`l3_forward_power_man`.\n \n-    \"unit\", \"SCALE_MAX\"\n+The application is in the ``guest_cli`` subdirectory under ``vm_power_manager``.\n \n-JSON API Examples\n-~~~~~~~~~~~~~~~~~\n+To build just the ``guest_vm_power_manager`` application using ``make``, issue\n+the following commands:\n \n-Profile create example:\n+.. code-block:: console\n \n-  .. code-block:: javascript\n+   export RTE_SDK=/path/to/rte_sdk\n+   export RTE_TARGET=build\n+   cd ${RTE_SDK}/examples/vm_power_manager/guest_cli/\n+   make\n \n-    {\"policy\": {\n-      \"command\": \"create\",\n-      \"policy_type\": \"TIME\",\n-      \"busy_hours\":[ 17, 18, 19, 20, 21, 22, 23 ],\n-      \"quiet_hours\":[ 2, 3, 4, 5, 6 ]\n-    }}\n+The resulting binary is ``${RTE_SDK}/build/examples/guest_cli``.\n \n-Profile destroy example:\n+**Note**: This sample application conditionally links in the Jansson JSON\n+library. Consequently, if you are using a multilib or cross-compile\n+environment, you may need to set the ``PKG_CONFIG_LIBDIR`` environmental\n+variable to point to the relevant ``pkgconfig`` folder so that the correct\n+library is linked in.\n \n-  .. code-block:: javascript\n+For example, if you are building for a 32-bit target, you could find the\n+correct directory using the following find command:\n \n-    {\"policy\": {\n-      \"command\": \"destroy\"\n-    }}\n+.. code-block:: console\n \n-Power command example:\n+   # find /usr -type d -name pkgconfig\n+   /usr/lib/i386-linux-gnu/pkgconfig\n+   /usr/lib/x86_64-linux-gnu/pkgconfig\n \n-  .. code-block:: javascript\n+Then use:\n \n-    {\"instruction\": {\n-      \"command\": \"power\",\n-      \"unit\": \"SCALE_MAX\"\n-    }}\n+.. code-block:: console\n \n-To send a JSON string to the Power Manager application, simply paste the\n-example JSON string into a text file and cat it into the proper fifo:\n+   export PKG_CONFIG_LIBDIR=/usr/lib/i386-linux-gnu/pkgconfig\n \n-  .. code-block:: console\n+You then use the ``make`` command as normal, which should find the 32-bit\n+version of the library, if it installed. If not, the application builds\n+without the JSON interface functionality.\n \n-    cat file.json >/tmp/powermonitor/fifo[0..n]\n+To build just the ``vm_power_manager`` application using ``meson``/``ninja``:\n \n-The console of the Power Manager application should indicate the command that\n-was just received via the fifo.\n+.. code-block:: console\n \n-Compiling and Running the Guest Applications\n---------------------------------------------\n+   export RTE_SDK=/path/to/rte_sdk\n+   cd ${RTE_SDK}\n+   meson build\n+   cd build\n+   ninja\n+   meson configure -Dexamples=vm_power_manager/guest_cli\n+   ninja\n \n-l3fwd-power is one sample application that can be used with vm_power_manager.\n+The resulting binary is ``${RTE_SDK}/build/examples/guest_cli``.\n \n-A guest CLI is also provided for validating the setup.\n+Running the Guest Application\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n \n-For both l3fwd-power and guest CLI, the channels for the VM must be monitored by the\n-host application using the *add_channels* command on the host. This typically uses\n-the following commands in the host application:\n+The standard EAL command line parameters are necessary:\n \n .. code-block:: console\n \n-  vm_power> add_vm vmname\n-  vm_power> add_channels vmname all\n-  vm_power> set_channel_status vmname all enabled\n-  vm_power> show_vm vmname\n-\n+   ./build/vm_power_mgr [EAL options] -- [guest options]\n \n-Compiling\n-~~~~~~~~~\n+The guest example uses a channel for each lcore enabled. For example, to\n+run on cores 0, 1, 2 and 3:\n \n-For information on compiling DPDK and the sample applications\n-see :doc:`compiling`.\n+.. code-block:: console\n \n-For compiling and running l3fwd-power, see :doc:`l3_forward_power_man`.\n+   ./build/guest_vm_power_mgr -l 0-3\n \n-The application is located in the ``guest_cli`` sub-directory under ``vm_power_manager``.\n+.. _sending_policy:\n \n-To build just the ``guest_vm_power_manager`` application using ``make``:\n+Command Line Options Available When Sending a Policy to the Host\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n \n-.. code-block:: console\n+Optionally, there are several command line options for a user who needs\n+to send a power policy to the host application. The following table\n+describes these options.\n \n-  export RTE_SDK=/path/to/rte_sdk\n-  export RTE_TARGET=build\n-  cd ${RTE_SDK}/examples/vm_power_manager/guest_cli/\n-  make\n+Table 1 – Command Line Options Available When Sending a Policy to the Host\n \n-The resulting binary will be ${RTE_SDK}/build/examples/guest_cli\n+======================================= ======================================\n+**Command Line Option**                 **Description**\n+======================================= ======================================\n+``--vm-name {name of guest vm}``        | Allows the user to change the virtual machine name passed\n+                                        | down to the host application using the power policy. The\n+                                        | default is ubuntu2.\n+``--vcpu-list {list vm cores}``         | A comma-separated list of cores in the VM that the user\n+                                        | wants the host application to monitor. The list of cores\n+                                        | in any vm starts at zero, and the host application maps\n+                                        | these to the physical cores once the policy passes down\n+                                        | to the host. Valid syntax includes individual cores\n+                                        | 2,3,4, a range of cores 2-4, or a combination of both\n+                                        | 1,3,5-7.\n+``--busy-hours {list of busy hours}``   | A comma-separated list of hours in which to set the core\n+                                        | frequency to the maximum. Valid syntax includes\n+                                        | individual hours 2,3,4, a range of hours 2-4, or a\n+                                        | combination of both 1,3,5-7. Valid hour values are 0 to 23.\n+``--quiet-hours {list of quiet hours}`` | A comma-separated list of hours in which to set the core\n+                                        | frequency to minimum. Valid syntax includes individual\n+                                        | hours 2,3,4, a range of hours 2-4, or a combination of\n+                                        | both 1,3,5-7. Valid hour values are 0 to 23.\n+``--policy {policy type}``              | The type of policy. This can be one of the following values:\n \n-.. Note::\n-  This sample application conditionally links in the Jansson JSON\n-  library, so if you are using a multilib or cross compile environment you\n-  may need to set the ``PKG_CONFIG_LIBDIR`` environmental variable to point to\n-  the relevant pkgconfig folder so that the correct library is linked in.\n+                                        - | TRAFFIC Based on incoming traffic rates on the NIC.\n \n-  For example, if you are building for a 32-bit target, you could find the\n-  correct directory using the following ``find`` command:\n+                                        - | TIME - Uses a busy/quiet hours policy.\n \n-  .. code-block:: console\n+                                        - | BRANCH_RATIO - Uses branch ratio counters to determine\n+                                          | core busyness.\n \n-      # find /usr -type d -name pkgconfig\n-      /usr/lib/i386-linux-gnu/pkgconfig\n-      /usr/lib/x86_64-linux-gnu/pkgconfig\n+                                        - | WORKLOAD - Sets the frequency to low, medium or high\n+                                          | based on the received policy setting.\n \n-  Then use:\n+                                        | **Note**: Not all policy types need all parameters. For\n+                                        |           example, BRANCH_RATIO only needs the vcpu-list\n+                                        |           parameter.\n+======================================= ======================================\n \n-  .. code-block:: console\n+After successful initialization, the VM Power Manager Guest CLI prompt\n+appears:\n \n-      export PKG_CONFIG_LIBDIR=/usr/lib/i386-linux-gnu/pkgconfig\n+.. code-block:: console\n \n-  You then use the make command as normal, which should find the 32-bit\n-  version of the library, if it installed. If not, the application will\n-  be built without the JSON interface functionality.\n+   vm_power(guest)>\n \n-To build just the ``vm_power_manager`` application using ``meson/ninja``:\n+To change the frequency of an lcore, use a ``set_cpu_freq`` command similar\n+to the following:\n \n .. code-block:: console\n \n-  export RTE_SDK=/path/to/rte_sdk\n-  cd ${RTE_SDK}\n-  meson build\n-  cd build\n-  ninja\n-  meson configure -Dexamples=vm_power_manager/guest_cli\n-  ninja\n-\n-The resulting binary will be ${RTE_SDK}/build/examples/guest_cli\n+   set_cpu_freq {core_num} up|down|min|max\n \n-Running\n-~~~~~~~\n+where, ``{core_num}`` is the lcore and channel to change frequency by\n+scaling up/down/min/max.\n \n-The standard *EAL* command line parameters are required:\n+To start an application, configure the power policy, and send it to the\n+host, use a command like the following:\n \n .. code-block:: console\n \n- ./build/guest_vm_power_mgr [EAL options] -- [guest options]\n+   ./build/guest_vm_power_mgr -l 0-3 -n 4 -- --vm-name=ubuntu --policy=BRANCH_RATIO --vcpu-list=2-4\n \n-The guest example uses a channel for each lcore enabled. For example,\n-to run on cores 0,1,2,3:\n+Once the VM Power Manager Guest CLI appears, issuing the 'send_policy now' command\n+will send the policy to the host:\n \n .. code-block:: console\n \n- ./build/guest_vm_power_mgr -l 0-3\n-\n-Optionally, there is a list of command line parameter should the user wish to send a power\n-policy down to the host application. These parameters are as follows:\n+  send_policy now\n \n-  .. code-block:: console\n+Once the policy is sent to the host, the host application takes over the power monitoring\n+of the specified cores in the policy.\n \n-    --vm-name {name of guest vm}\n+.. _power_man_requests:\n \n-  This parameter allows the user to change the Virtual Machine name passed down to the\n-  host application via the power policy. The default is \"ubuntu2\"\n+JSON Interface for Power Management Requests and Policies\n+---------------------------------------------------------\n \n-  .. code-block:: console\n+In addition to the command line interface for the host command, and a\n+``virtio-serial`` interface for VM power policies, there is also a JSON\n+interface through which power commands and policies can be sent.\n \n-    --vcpu-list {list vm cores}\n+**Note**: This functionality adds a dependency on the Jansson library.\n+Install the Jansson development package on the system to avail of the\n+JSON parsing functionality in the app. Issue the ``apt-get install\n+libjansson-dev`` command to install the development package. The command\n+and package name may be different depending on your operating system. It\n+is worth noting that the app builds successfully if this package is not\n+present, but a warning displays during compilation, and the JSON parsing\n+functionality is not present in the app.\n \n-  A comma-separated list of cores in the VM that the user wants the host application to\n-  monitor. The list of cores in any vm starts at zero, and these are mapped to the\n-  physical cores by the host application once the policy is passed down.\n-  Valid syntax includes individual cores '2,3,4', or a range of cores '2-4', or a\n-  combination of both '1,3,5-7'\n+Send a request or policy to the VM Power Manager by simply opening a\n+fifo file at ``/tmp/powermonitor/fifo``, writing a JSON string to that file,\n+and closing the file.\n \n-  .. code-block:: console\n+The JSON string can be a power management request or a policy, and takes\n+the following format:\n \n-    --busy-hours {list of busy hours}\n+.. code-block:: javascript\n \n-  A comma-separated list of hours within which to set the core frequency to maximum.\n-  Valid syntax includes individual hours '2,3,4', or a range of hours '2-4', or a\n-  combination of both '1,3,5-7'. Valid hours are 0 to 23.\n+   {\"packet_type\": {\n+   \"pair_1\": value,\n+   \"pair_2\": value\n+   }}\n \n-  .. code-block:: console\n+The ``packet_type`` header can contain one of two values, depending on\n+whether a power management request or policy is being sent. The two\n+possible values are ``instruction`` and ``policy`` and the expected name-value\n+pairs are different depending on which type is sent.\n \n-    --quiet-hours {list of quiet hours}\n+The pairs are in the format of standard JSON name-value pairs. The value\n+type varies between the different name-value pairs, and may be integers,\n+strings, arrays, and so on. See :ref:`json_interface_ex`\n+for examples of policies and instructions and\n+:ref:`json_name_value_pair` for the supported names and value types.\n \n-  A comma-separated list of hours within which to set the core frequency to minimum.\n-  Valid syntax includes individual hours '2,3,4', or a range of hours '2-4', or a\n-  combination of both '1,3,5-7'. Valid hours are 0 to 23.\n+.. _json_interface_ex:\n \n-  .. code-block:: console\n+JSON Interface Examples\n+~~~~~~~~~~~~~~~~~~~~~~~\n \n-    --policy {policy type}\n+The following is an example JSON string that creates a time-profile\n+policy.\n \n-  The type of policy. This can be one of the following values:\n-  TRAFFIC - based on incoming traffic rates on the NIC.\n-  TIME - busy/quiet hours policy.\n-  BRANCH_RATIO - uses branch ratio counters to determine core busyness.\n-  Not all parameters are needed for all policy types. For example, BRANCH_RATIO\n-  only needs the vcpu-list parameter, not any of the hours.\n+.. code-block:: JSON\n \n+   {\"policy\": {\n+   \"name\": \"ubuntu\",\n+   \"command\": \"create\",\n+   \"policy_type\": \"TIME\",\n+   \"busy_hours\":[ 17, 18, 19, 20, 21, 22, 23 ],\n+   \"quiet_hours\":[ 2, 3, 4, 5, 6 ],\n+   \"core_list\":[ 11 ]\n+   }}\n \n-After successful initialization the user is presented with VM Power Manager Guest CLI:\n+The following is an example JSON string that removes the named policy.\n \n-.. code-block:: console\n+.. code-block:: JSON\n \n-  vm_power(guest)>\n+   {\"policy\": {\n+   \"name\": \"ubuntu\",\n+   \"command\": \"destroy\",\n+   }}\n \n-To change the frequency of a lcore, use the set_cpu_freq command.\n-Where {core_num} is the lcore and channel to change frequency by scaling up/down/min/max.\n+The following is an example JSON string for a power management request.\n \n-.. code-block:: console\n+.. code-block:: JSON\n \n-  set_cpu_freq {core_num} up|down|min|max\n+   {\"instruction\": {\n+   \"name\": \"ubuntu\",\n+   \"command\": \"power\",\n+   \"unit\": \"SCALE_MAX\",\n+   \"resource_id\": 10\n+   }}\n \n To query the available frequences of an lcore, use the query_cpu_freq command.\n Where {core_num} is the lcore to query.\n@@ -783,3 +697,215 @@ will send the policy to the host:\n \n Once the policy is sent to the host, the host application takes over the power monitoring\n of the specified cores in the policy.\n+\n+.. _json_name_value_pair:\n+\n+JSON Name-value Pairs\n+~~~~~~~~~~~~~~~~~~~~~\n+\n+The following are the name-value pairs supported by the JSON interface:\n+\n+-  `avg_packet_thresh`_\n+-  `busy_hours`_\n+-  `command`_\n+-  `core_list`_\n+-  `mac_list`_\n+-  `max_packet_thresh`_\n+-  `name`_\n+-  `policy_type`_\n+-  `quiet_hours`_\n+-  `resource_id`_\n+-  `unit`_\n+-  `workload`_\n+\n+avg_packet_thresh\n+^^^^^^^^^^^^^^^^^\n+\n+================== ===========================================================\n+ **Pair Name:**     \"avg_packet_thresh\"\n+================== ===========================================================\n+ **Description:**   | The threshold below which the frequency is set to the minimum value for the\n+                    | TRAFFIC policy. If the traffic rate is above this value and below the\n+                    | maximum value, the frequency is set to medium.\n+ **Type:**          integer\n+ **Values:**        | The number of packets below which the TRAFFIC policy applies the minimum\n+                    | frequency, or the medium frequency if between the average and maximum\n+                    | thresholds.\n+ **Required:**      Yes\n+ **Example:**       ``\"avg_packet_thresh\": 100000``\n+================== ===========================================================\n+\n+busy_hours\n+^^^^^^^^^^\n+\n+================== ===========================================================\n+ **Pair Name:**     \"busy_hours\"\n+================== ===========================================================\n+ **Description:**   The hours of the day in which we scale up the cores for busy times.\n+ **Type:**          array of integers\n+ **Values:**        An array with a list of hour values (0-23).\n+ **Required:**      For the TIME policy only.\n+ **Example:**       ``\"busy_hours\":[ 17, 18, 19, 20, 21, 22, 23 ]``\n+================== ===========================================================\n+\n+command\n+^^^^^^^\n+\n+================== ===========================================================\n+ **Pair Name:**     \"command\"\n+================== ===========================================================\n+ **Description:**   | The type of packet to send to the VM Power Manager. It is possible to create\n+                    | or destroy a policy or send a direct command to adjust the frequency of a core,\n+                    | as is possible on the command line interface.\n+ **Type:**          | string\n+ **Values:**        Possible values are:\n+\n+                    - CREATE: Create a new policy.\n+                    - DESTROY: Remove an existing policy.\n+                    - POWER: Send an immediate command, max, min, and so on.\n+\n+ **Required:**       Yes\n+ **Example:**        ``\"command\": \"CREATE\"``\n+================== ===========================================================\n+\n+core_list\n+^^^^^^^^^\n+\n+================== ===========================================================\n+ **Pair Name:**     \"core_list\"\n+================== ===========================================================\n+ **Description:**   The cores to which to apply a policy.\n+ **Type:**          array of integers\n+ **Values:**        An array with a list of virtual CPUs.\n+ **Required:**      For CREATE/DESTROY policy requests only.\n+ **Example:**       ``\"core_list\":[ 10, 11 ]``\n+================== ===========================================================\n+\n+mac_list\n+^^^^^^^^\n+\n+================== ===========================================================\n+ **Pair Name:**     \"mac_list\"\n+================== ===========================================================\n+ **Description:**   | When the policy is of type TRAFFIC, it is necessary to specify the MAC addresses\n+                    | that the host must monitor.\n+ **Type:**          | array of strings\n+ **Values:**        An array with a list of mac address strings.\n+ **Required:**      For TRAFFIC policy types only.\n+ **Example:**       ``\"mac_list\":[ \"de:ad:be:ef:01:01\",\"de:ad:be:ef:01:02\" ]``\n+================== ===========================================================\n+\n+\n+max_packet_thresh\n+^^^^^^^^^^^^^^^^^\n+\n+================== ===========================================================\n+ **Pair Name:**     \"max_packet_thresh\"\n+================== ===========================================================\n+ **Description:**   | In a policy of type TRAFFIC, the threshold value above which the frequency is set\n+                    | to a maximum.\n+ **Type:**          | integer\n+ **Values:**        | The number of packets per interval above which the TRAFFIC\n+                    | policy applies the maximum frequency.\n+ **Required:**      For the TRAFFIC policy only.\n+ **Example:**       ``\"max_packet_thresh\": 500000``\n+================== ===========================================================\n+\n+name\n+^^^^\n+\n+================== ===========================================================\n+ **Pair Name:**     \"name\"\n+================== ===========================================================\n+ **Description:**   | The name of the VM or host. Allows the parser to associate the policy with the\n+                    | relevant VM or host OS.\n+ **Type:**          | string\n+ **Values:**        Any valid string.\n+ **Required:**      Yes\n+ **Example:**       ``\"name\": \"ubuntu2\"``\n+================== ===========================================================\n+\n+policy_type\n+^^^^^^^^^^^\n+\n+================== ===========================================================\n+ **Pair Name:**     \"policy_type\"\n+================== ===========================================================\n+ **Description:**   | The type of policy to apply. See the ``--policy`` option description for more\n+                    | information.\n+ **Type:**          string\n+ **Values:**        Possible values are:\n+\n+                    - | TIME: Time-of-day policy. Scale the frequencies of the relevant cores up/down\n+                      | depending on busy and quiet hours.\n+                    - | TRAFFIC: Use statistics from the NIC and scale up and down accordingly.\n+                    - | WORKLOAD: Determine how heavily loaded the cores are and scale up and down\n+                      | accordingly.\n+                    - | BRANCH_RATIO: An out-of-band policy that looks at the ratio between branch\n+                      | hits and misses on a core and uses that information to determine how much\n+                      | packet processing a core is doing.\n+\n+ **Required:**       For ``CREATE`` and ``DESTROY`` policy requests only.\n+ **Example:**        ``\"policy_type\": \"TIME\"``\n+================== ===========================================================\n+\n+quiet_hours\n+^^^^^^^^^^^\n+\n+================== ===========================================================\n+ **Pair Name:**     \"quiet_hours\"\n+================== ===========================================================\n+ **Description:**   | The hours of the day to scale down the cores for quiet times.\n+ **Type:**          array of integers\n+ **Values:**        | An array with a list of hour numbers with values in the range 0 to 23.\n+ **Required:**      For the TIME policy only.\n+ **Example:**       ``\"quiet_hours\":[ 2, 3, 4, 5, 6 ]``\n+================== ===========================================================\n+\n+resource_id\n+^^^^^^^^^^^\n+\n+================== ===========================================================\n+ **Pair Name:**     \"resource_id\"\n+================== ===========================================================\n+ **Description:**   The core to which to apply a power command.\n+ **Type:**          integer\n+ **Values:**        A valid core ID for the VM or host OS.\n+ **Required:**      For the ``POWER`` instruction only.\n+ **Example:**       ``\"resource_id\": 10``\n+================== ===========================================================\n+\n+unit\n+^^^^\n+\n+================== ===========================================================\n+ **Pair Name:**     \"unit\"\n+================== ===========================================================\n+ **Description:**   The type of power operation to apply in the command.\n+ **Type:**          string\n+ **Values:**         - SCALE_MAX: Scale the frequency of this core to the maximum.\n+                     - SCALE_MIN: Scale the frequency of this core to the minimum.\n+                     - SCALE_UP: Scale up the frequency of this core.\n+                     - SCALE_DOWN: Scale down the frequency of this core.\n+                     - ENABLE_TURBO: Enable Intel® Turbo Boost Technology for this core.\n+                     - DISABLE_TURBO: Disable Intel® Turbo Boost Technology for this core.\n+ **Required:**      For the ``POWER`` instruction only.\n+ **Example:**       ``\"unit\": \"SCALE_MAX\"``\n+================== ===========================================================\n+\n+workload\n+^^^^^^^^\n+\n+================== ===========================================================\n+ **Pair Name:**     \"workload\"\n+================== ===========================================================\n+ **Description:**   In a policy of type WORKLOAD, it is necessary to specify\n+                    how heavy the workload is.\n+ **Type:**          string\n+ **Values:**         - HIGH: Scale the frequency of this core to maximum.\n+                     - MEDIUM: Scale the frequency of this core to minimum.\n+                     - LOW: Scale up the frequency of this core.\n+ **Required:**       For the ``WORKLOAD`` policy only.\n+ **Example:**        ``\"workload\": \"MEDIUM\"``\n+================== ===========================================================\n+\n",
    "prefixes": [
        "v1"
    ]
}