spring cleanup
|
Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 472 KiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 772 KiB After Width: | Height: | Size: 772 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 772 KiB After Width: | Height: | Size: 772 KiB |
11
README.md
|
|
@ -1,11 +0,0 @@
|
|||
# Presentations
|
||||
|
||||
This repo contain all my presentations. Do not read stuff you are not supposed to.
|
||||
|
||||
|
||||
## Usage:
|
||||
|
||||
```
|
||||
tlmgr install `cat requirements.txt`
|
||||
latexmk main.tex -pdf
|
||||
```
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
#import "@preview/acrostiche:0.3.1": *
|
||||
|
||||
|
||||
#init-acronyms((
|
||||
"PSU": ("Power Supply Unit","Power Supplu Units"),
|
||||
"PCB": ("Printed Circuit Board",),
|
||||
))
|
||||
|
||||
= Exploration of the retrofitting of HP Power Supplies to EET
|
||||
|
||||
The objective is the build a proof-of-concept for using an EET capture card on the 12V rail of a server #acr("PSU") without changing the form factor.
|
||||
The targets are as many HP server-grade #acr("PSU") as possible.
|
||||
At the time of writing this note, we have access to three #acrpl("PSU"):
|
||||
- // fill with infos
|
||||
|
||||
|
||||
= Current Share ISHARE pin
|
||||
Because the server #acrpl("PSU") are tightly integrated, it is very difficult to tap into their 12V rail.
|
||||
The difficulty comes from the fact that the current gets generated directly on the #acr("PCB") and is not carried over a wire that we can cut.
|
||||
Cutting a trace of tampering with the #acr("PCB") is completely out of the question.
|
||||
|
||||
Fortunately, server #acr("PSU") have a feature called ~Current Sharing~ that enables using multiple sources to provide more current to a system.
|
||||
The simplest implementation would be to connect multiple #acr("PSU") in parallel to the same 12V rail.
|
||||
This solution is presented to be non-robust by many sources although they all recomend to use an external system that share the load between the sources, which is exactly what this solution is doing.
|
||||
In any case, the server #acr("PSU") often include an analog output that is proportional to their current and enables an external circuit to adjust their voltage based on their current to spread the load.
|
||||
This analog output can also serve as an information source for remote monitoring system.
|
||||
The actual reason why this output is there remain somewhat hidden but the important fact is that the #acrpl("PSU") provides us with their current information, which is all we nned.
|
||||
|
|
@ -1,137 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="192.0601mm"
|
||||
height="74.389984mm"
|
||||
viewBox="0 0 192.0601 74.389983"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
sodipodi:docname="l3-setup.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview7"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#b5b5b5"
|
||||
inkscape:document-units="mm"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.80824699"
|
||||
inkscape:cx="332.20043"
|
||||
inkscape:cy="477.57679"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs2" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-5.5078843,-8.7827511)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 125.79958,67.680376 V 23.965394 H 72.512916 L 87.624289,59.836806 H 51.034552 L 65.604944,23.965394 H 21.351482"
|
||||
id="path696"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 125.79958,23.965394 h 12.17811"
|
||||
id="path794" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 125.79958,67.680376 h 12.17811"
|
||||
id="path796" />
|
||||
<rect
|
||||
style="fill:#808080;fill-opacity:1;stroke-width:0.396875;stroke-linecap:square;stroke-dasharray:1.5875, 1.5875;stop-color:#000000"
|
||||
id="rect478"
|
||||
width="59.590294"
|
||||
height="30.365286"
|
||||
x="137.97769"
|
||||
y="8.7827511"
|
||||
rx="3.9252319"
|
||||
ry="3.9252319" />
|
||||
<rect
|
||||
style="fill:#808080;fill-opacity:1;stroke-width:0.396875;stroke-linecap:square;stroke-dasharray:1.5875, 1.5875;stop-color:#000000"
|
||||
id="rect640"
|
||||
width="59.590294"
|
||||
height="30.365286"
|
||||
x="137.97769"
|
||||
y="52.497734"
|
||||
rx="3.9252319"
|
||||
ry="3.9252319" />
|
||||
<path
|
||||
style="fill:#5599ff;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 11.949391,13.390089 5.5078843,24.378877 H 10.364585 L 8.7743913,32.997957 15.742239,22.644076 H 9.9280383 Z"
|
||||
id="path1569"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-weight:bold;font-size:7px;line-height:1.25;font-family:'STIX Two Text';-inkscape-font-specification:'STIX Two Text Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;stroke-width:0.264583"
|
||||
x="167.80084"
|
||||
y="22.061394"
|
||||
id="text1573"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1571"
|
||||
style="text-align:center;text-anchor:middle;fill:#ffffff;stroke-width:0.264583"
|
||||
x="167.80084"
|
||||
y="22.061394">Machine 1</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
style="text-align:center;text-anchor:middle;fill:#ffffff;stroke-width:0.264583"
|
||||
x="167.80084"
|
||||
y="30.811394"
|
||||
id="tspan1631">IDLE</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-weight:bold;font-size:7px;line-height:1.25;font-family:'STIX Two Text';-inkscape-font-specification:'STIX Two Text Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;stroke-width:0.264583"
|
||||
x="167.79384"
|
||||
y="65.006378"
|
||||
id="text1627"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1625"
|
||||
style="text-align:center;text-anchor:middle;fill:#ffffff;stroke-width:0.264583"
|
||||
x="167.79384"
|
||||
y="65.006378">Machine 2</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
style="text-align:center;text-anchor:middle;fill:#ffffff;stroke-width:0.264583"
|
||||
x="167.79384"
|
||||
y="73.756378"
|
||||
id="tspan1629">to protect</tspan></text>
|
||||
<rect
|
||||
style="fill:#808080;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stop-color:#000000"
|
||||
id="rect1689"
|
||||
width="21.035084"
|
||||
height="12.211226"
|
||||
x="58.857655"
|
||||
y="53.731194"
|
||||
rx="0"
|
||||
ry="0" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-weight:bold;font-size:7px;line-height:1.25;font-family:'STIX Two Text';-inkscape-font-specification:'STIX Two Text Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;stroke-width:0.264583"
|
||||
x="70.697151"
|
||||
y="74.324738"
|
||||
id="text1745"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1743"
|
||||
style="text-align:center;text-anchor:middle;stroke-width:0.264583"
|
||||
x="70.697151"
|
||||
y="74.324738">Power </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
style="text-align:center;text-anchor:middle;stroke-width:0.264583"
|
||||
x="70.697151"
|
||||
y="83.074738"
|
||||
id="tspan1747">Measurement</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 5.5 KiB |
|
|
@ -1,57 +0,0 @@
|
|||
#let title = "Overview of the Bell System Architecture"
|
||||
|
||||
|
||||
#set page("us-letter",
|
||||
header: [
|
||||
#set text(8pt)
|
||||
#smallcaps[#title]
|
||||
#h(1fr) Arthur Grisel-Davy for Palitronica Inc.
|
||||
],
|
||||
footer: [
|
||||
#set align(right)
|
||||
#set text(8pt)
|
||||
#counter(page).display(
|
||||
"1",
|
||||
)
|
||||
]
|
||||
)
|
||||
|
||||
#align(center)[#text(weight:"bold",size:20pt)[#title]]
|
||||
|
||||
#v(2cm)
|
||||
#outline(indent: 1em)
|
||||
|
||||
#pagebreak()
|
||||
= Schematic
|
||||
#align(center)[
|
||||
#figure(
|
||||
image("schematic.svg",width:100%)
|
||||
)
|
||||
]
|
||||
|
||||
#pagebreak()
|
||||
= Technical Information
|
||||
|
||||
Here is the information that we have or suppose about the different components of the system.
|
||||
|
||||
== Chassi
|
||||
The chassi of the VMC is an ELMA COTS 3u VPX Tower Enclosure.
|
||||
The chassi include a backpane and an integrated PSU that provides DC power to the boards.
|
||||
The PSU accepts from 90 to 264 VAC and inclued Power Factor Control technology (limit reactive power).
|
||||
|
||||
#text(fill:red)[Q: It would be helpful to get a schematic or a photo of how the boards are installed in the chassi, and how they receive power.]
|
||||
|
||||
== 68PPC2 SBC
|
||||
The board in the first slot of the chassi is a 68PPC2.
|
||||
This board is connected to the Mission Computer (via the Comm. Converter Board).
|
||||
It is unclear if this board processes some data or if it is only responsible for communication.
|
||||
This board does have a quad-core CPU so it might be procesing data.
|
||||
|
||||
#text(fill:red)[Q: Info about the role of this card would be helpful in identifying the points of interest.]
|
||||
|
||||
== 68G5
|
||||
The second board, installed in slot 3, is a 68G5.
|
||||
The role of this board needs to be clarified. It is connected to the Software Control Module (SCM) but the role of both these components is unclear.
|
||||
|
||||
|
||||
#text(fill:red)[Q: Info about the role of this card would be helpful in identifying the points of interest. In particular this board can be equipped with up to 3 modules. Knowing which module is installed can help assessing the interest.]
|
||||
|
Before Width: | Height: | Size: 85 KiB |
|
|
@ -1,529 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="202.59859mm"
|
||||
height="165.99785mm"
|
||||
viewBox="0 0 202.59858 165.99785"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
inkscape:version="1.3.1 (91b66b0783, 2023-11-16, custom)"
|
||||
sodipodi:docname="schematic.svg"
|
||||
inkscape:export-filename="schematic.png"
|
||||
inkscape:export-xdpi="175.618"
|
||||
inkscape:export-ydpi="175.618"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview7"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#b5b5b5"
|
||||
inkscape:document-units="mm"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.69728115"
|
||||
inkscape:cx="471.11556"
|
||||
inkscape:cy="218.70661"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1020"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="32"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:connector-spacing="1" />
|
||||
<defs
|
||||
id="defs2" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,0.14470562)">
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 189.51969,41.516392 12.4674,0"
|
||||
id="path12"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path8"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#g8"
|
||||
inkscape:connection-end="#g5"
|
||||
d="M 65.592024,145.37218 H 40.625229 v -30.78" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#ff7f2a;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 136.21676,49.784208 h 12.83666 v 0"
|
||||
id="path15"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#g3" />
|
||||
<g
|
||||
id="g1"
|
||||
transform="matrix(0.7774054,0,0,0.7774054,-8.8657992,-12.270526)">
|
||||
<rect
|
||||
style="fill:none;stroke:#000000;stroke-width:0.7;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="rect1"
|
||||
width="237.50931"
|
||||
height="76.264534"
|
||||
x="17.774929"
|
||||
y="25.447985"
|
||||
ry="4.083704" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:4.93889px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;stroke-width:0.264583"
|
||||
x="17.173046"
|
||||
y="24.05094"
|
||||
id="text1"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1"
|
||||
style="font-size:4.93889px;stroke-width:0.264583"
|
||||
x="17.173046"
|
||||
y="24.05094">Vehicule Management Computer (VMC)</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 136.21676,43.798821 h 12.83666"
|
||||
id="path1"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#ff7f2a;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 70.507117,31.866617 78.546293,0"
|
||||
id="path19"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#g6"
|
||||
inkscape:connection-end="#g7" />
|
||||
<g
|
||||
id="g3"
|
||||
transform="matrix(0.7774054,0,0,0.7774054,56.530354,-9.6037029)"
|
||||
inkscape:connector-avoid="true">
|
||||
<g
|
||||
id="g4">
|
||||
<rect
|
||||
style="fill:none;stroke:#000000;stroke-width:0.7;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="rect3"
|
||||
width="76.875946"
|
||||
height="37.696693"
|
||||
x="25.627077"
|
||||
y="57.544113"
|
||||
ry="4.083704" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:4.58611px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;stroke-width:0.264583"
|
||||
x="30.276194"
|
||||
y="64.748756"
|
||||
id="text3"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3"
|
||||
style="font-size:4.58611px;stroke-width:0.264583"
|
||||
x="30.276194"
|
||||
y="64.748756">68G5 (SBC)</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g5"
|
||||
transform="matrix(0.7774054,0,0,0.7774054,-9.1766134,40.551463)">
|
||||
<rect
|
||||
style="fill:none;stroke:#000000;stroke-width:0.7;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="rect4"
|
||||
width="76.875946"
|
||||
height="37.696693"
|
||||
x="25.627077"
|
||||
y="57.544113"
|
||||
ry="4.083704" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:4.58611px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;fill:#000000;stroke-width:0.264583"
|
||||
x="24.990446"
|
||||
y="56.27689"
|
||||
id="text4"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4"
|
||||
style="font-size:4.58611px;fill:#000000;stroke:none;stroke-width:0.264583"
|
||||
x="24.990446"
|
||||
y="56.27689">Comm. Converter</tspan></text>
|
||||
</g>
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.777405;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 40.625229,46.519424 V 85.286567"
|
||||
id="path6"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-end="#g5"
|
||||
inkscape:connection-start="#g6" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:2.46826px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.226258px;word-spacing:0px;stroke-width:0.205688"
|
||||
x="41.991734"
|
||||
y="75.106819"
|
||||
id="text7"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7"
|
||||
style="font-size:2.46826px;stroke-width:0.205688"
|
||||
x="41.991734"
|
||||
y="75.106819">micro HDMI</tspan></text>
|
||||
<g
|
||||
id="g8"
|
||||
transform="matrix(0.7774054,0,0,0.7774054,45.669396,87.532081)">
|
||||
<rect
|
||||
style="fill:none;stroke:#000000;stroke-width:0.7;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="rect7"
|
||||
width="76.875946"
|
||||
height="37.696693"
|
||||
x="25.627077"
|
||||
y="57.544113"
|
||||
ry="4.083704" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:4.0841px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;fill:#000000;stroke-width:0.264583"
|
||||
x="24.944223"
|
||||
y="56.377293"
|
||||
id="text8"><tspan
|
||||
sodipodi:role="line"
|
||||
style="font-size:4.0841px;fill:#000000;stroke:none;stroke-width:0.264583"
|
||||
x="24.944223"
|
||||
y="56.377293"
|
||||
id="tspan15">Mission Computer / ControlePC</tspan></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:2.46826px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.226258px;word-spacing:0px;stroke-width:0.205688"
|
||||
x="10.801327"
|
||||
y="123.76359"
|
||||
id="text9"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan9"
|
||||
style="font-size:2.46826px;stroke-width:0.205688"
|
||||
x="10.801327"
|
||||
y="123.76359">Serial COMM + Ethernet</tspan></text>
|
||||
<g
|
||||
id="g31"
|
||||
transform="translate(-59.317881,-4.7118683)"
|
||||
inkscape:connector-avoid="true">
|
||||
<rect
|
||||
style="fill:none;stroke:#000000;stroke-width:0.544184;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="rect12"
|
||||
width="59.763775"
|
||||
height="29.305613"
|
||||
x="135.77086"
|
||||
y="89.998436"
|
||||
ry="3.1746936" />
|
||||
<g
|
||||
id="g14"
|
||||
transform="matrix(0.7774054,0,0,0.7774054,99.865176,53.938422)"
|
||||
inkscape:connector-avoid="true">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:4.58611px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;fill:#000000;stroke-width:0.264583"
|
||||
x="45.570568"
|
||||
y="33.652584"
|
||||
id="text13"><tspan
|
||||
sodipodi:role="line"
|
||||
style="font-size:4.58611px;fill:#000000;stroke:none;stroke-width:0.264583"
|
||||
x="45.570568"
|
||||
y="33.652584"
|
||||
id="tspan30">Software </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
style="font-size:4.58611px;fill:#000000;stroke:none;stroke-width:0.264583"
|
||||
x="45.570568"
|
||||
y="39.385223"
|
||||
id="tspan32">Control </tspan><tspan
|
||||
sodipodi:role="line"
|
||||
style="font-size:4.58611px;fill:#000000;stroke:none;stroke-width:0.264583"
|
||||
x="45.570568"
|
||||
y="45.117859"
|
||||
id="tspan31">Module (SCM)</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
d="m 106.33487,64.437014 v 4.053079 h 0 v 16.796475"
|
||||
id="path13"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#g3"
|
||||
inkscape:connection-end="#g31" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;stroke-width:0.264583"
|
||||
x="7.1766901"
|
||||
y="12.595784"
|
||||
id="text14"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan14"
|
||||
style="font-size:3.175px;stroke-width:0.264583"
|
||||
x="7.1766901"
|
||||
y="12.595784">Chassi: ELMA COTS 3U VPX Portable Tower</tspan></text>
|
||||
<path
|
||||
style="fill:none;fill-rule:evenodd;stroke:#2a7fff;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 70.507117,25.524325 H 149.05341"
|
||||
id="path2"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g7"
|
||||
transform="translate(-19.043893,-11.35223)">
|
||||
<rect
|
||||
style="fill:none;stroke:#000000;stroke-width:0.499999;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect15"
|
||||
width="40.540134"
|
||||
height="59.28846"
|
||||
x="168.09731"
|
||||
y="18.865105"
|
||||
ry="2.8742421" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:7px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;white-space:pre;inline-size:44.1728;display:inline;stroke-width:0.264583"
|
||||
x="172.19102"
|
||||
y="27.31638"
|
||||
id="text17"
|
||||
transform="translate(-2.2546398,-0.96482326)"><tspan
|
||||
x="172.19102"
|
||||
y="27.31638"
|
||||
id="tspan13">PSU/ </tspan><tspan
|
||||
x="172.19102"
|
||||
y="36.066379"
|
||||
id="tspan21">Backplane</tspan></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:2.46826px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.226258px;word-spacing:0px;stroke-width:0.205688"
|
||||
x="107.75723"
|
||||
y="75.091393"
|
||||
id="text18"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan18"
|
||||
style="font-size:2.46826px;stroke-width:0.205688"
|
||||
x="107.75723"
|
||||
y="75.091393">RS 485</tspan></text>
|
||||
<g
|
||||
id="g2"
|
||||
transform="translate(34.408301,-10.349323)">
|
||||
<rect
|
||||
style="fill:#000000;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect22"
|
||||
width="3.5545728"
|
||||
height="6.7665911"
|
||||
x="155.45734"
|
||||
y="29.722128"
|
||||
ry="0" />
|
||||
<rect
|
||||
style="fill:#000000;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect23"
|
||||
width="5.681284"
|
||||
height="1.7895392"
|
||||
x="118.31499"
|
||||
y="106.38655"
|
||||
ry="0.49357378"
|
||||
transform="rotate(-30)" />
|
||||
</g>
|
||||
<g
|
||||
id="g30"
|
||||
transform="translate(1.7846898,-9.6441805)">
|
||||
<g
|
||||
id="g28"
|
||||
transform="rotate(90,140.1807,168.44137)">
|
||||
<rect
|
||||
style="fill:#000000;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect26"
|
||||
width="3.5545728"
|
||||
height="6.7665911"
|
||||
x="126.96308"
|
||||
y="157.1212"
|
||||
ry="0" />
|
||||
<g
|
||||
id="g27">
|
||||
<rect
|
||||
style="fill:#000000;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0"
|
||||
id="rect27"
|
||||
width="5.681284"
|
||||
height="1.7895392"
|
||||
x="29.938698"
|
||||
y="202.47026"
|
||||
ry="0.49357378"
|
||||
transform="rotate(-30)" />
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;fill:#000000;stroke-width:0.264583"
|
||||
x="137.95621"
|
||||
y="154.16043"
|
||||
id="text28"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan28"
|
||||
style="font-size:3.175px;fill:#000000;stroke-width:0.264583"
|
||||
x="137.95621"
|
||||
y="154.16043">Power Switch</tspan></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;white-space:pre;inline-size:11.0272;display:inline;fill:#000000;stroke-width:0.264583"
|
||||
x="200.71542"
|
||||
y="39.604935"
|
||||
id="text29"
|
||||
transform="translate(-10.110158,-26.134458)"><tspan
|
||||
x="200.71542"
|
||||
y="39.604935"
|
||||
id="tspan22">Power </tspan><tspan
|
||||
x="200.71542"
|
||||
y="43.573684"
|
||||
id="tspan23">Switch</tspan></text>
|
||||
<g
|
||||
id="g6"
|
||||
transform="matrix(0.7774054,0,0,0.7774054,-9.7506434,-26.687916)">
|
||||
<rect
|
||||
style="fill:none;stroke:#000000;stroke-width:0.7;stroke-linecap:round;stroke-linejoin:round"
|
||||
id="rect2"
|
||||
width="76.875946"
|
||||
height="37.696693"
|
||||
x="26.36203"
|
||||
y="56.472115"
|
||||
ry="4.083704" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:4.58611px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;stroke-width:0.264583"
|
||||
x="27.939848"
|
||||
y="62.727749"
|
||||
id="text2"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2"
|
||||
style="font-size:4.58611px;stroke-width:0.264583"
|
||||
x="27.939848"
|
||||
y="62.727749">68PPC2 (SBC)</tspan></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;stroke-width:0.264583"
|
||||
x="138.96844"
|
||||
y="35.054829"
|
||||
id="text16"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan16"
|
||||
style="font-size:3.175px;stroke-width:0.264583"
|
||||
x="138.96844"
|
||||
y="35.054829">5V DC</tspan></text>
|
||||
<path
|
||||
style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 149.92737,146.75067 h 29.68559 V 66.801334"
|
||||
id="path20"
|
||||
inkscape:connector-type="orthogonal"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:connection-start="#g30" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;stroke-width:0.264583"
|
||||
x="137.58676"
|
||||
y="43.094906"
|
||||
id="text10"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8"
|
||||
style="font-size:3.175px;stroke-width:0.264583"
|
||||
x="137.58676"
|
||||
y="43.094906">12V DC</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;stroke-width:0.264583"
|
||||
x="139.26422"
|
||||
y="52.836372"
|
||||
id="text11"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan10"
|
||||
style="font-size:3.175px;stroke-width:0.264583"
|
||||
x="139.26422"
|
||||
y="52.836372">5V DC</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;stroke-width:0.264583"
|
||||
x="137.29099"
|
||||
y="24.625904"
|
||||
id="text12"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan11"
|
||||
style="font-size:3.175px;stroke-width:0.264583"
|
||||
x="137.29099"
|
||||
y="24.625904">12V DC</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.175px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.291042px;word-spacing:0px;stroke-width:0.264583"
|
||||
x="190.83963"
|
||||
y="39.926701"
|
||||
id="text15"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan12"
|
||||
style="font-size:3.175px;stroke-width:0.264583"
|
||||
x="190.83963"
|
||||
y="39.926701">28V DC</tspan></text>
|
||||
<g
|
||||
id="g9"
|
||||
transform="translate(-25.253597)">
|
||||
<rect
|
||||
style="fill:#808080;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
|
||||
id="rect17"
|
||||
width="8.7060614"
|
||||
height="8.7060614"
|
||||
x="54.936989"
|
||||
y="-18.741207"
|
||||
ry="0.73393339"
|
||||
rx="0.73393339"
|
||||
transform="rotate(45)" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:2.27667px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.0946579px;word-spacing:0px;stroke-width:0.0860526"
|
||||
x="48.750286"
|
||||
y="32.581383"
|
||||
id="text19"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan19"
|
||||
style="stroke-width:0.0860526"
|
||||
x="48.750286"
|
||||
y="32.581383">T2080</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g20"
|
||||
transform="translate(0.66060985,-1.4223469)">
|
||||
<g
|
||||
id="g15"
|
||||
transform="translate(2.4438896,-7.8339016)">
|
||||
<rect
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
|
||||
id="rect9"
|
||||
width="24.073837"
|
||||
height="1.8715513"
|
||||
x="40.67028"
|
||||
y="48.361397" />
|
||||
<rect
|
||||
style="fill:none;stroke:#000000;stroke-width:0.3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
|
||||
id="rect10"
|
||||
width="24.073837"
|
||||
height="1.8715513"
|
||||
x="76.129929"
|
||||
y="61.253609" />
|
||||
<path
|
||||
id="path10"
|
||||
style="fill:#999999;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 41.548361,49.17367 c 0,8.778617 34.730105,-0.663246 35.111035,13.166121 0.686787,-0.148334 22.387774,0 22.387774,0 C 98.71511,50.284299 64.1444,57.212637 63.936141,49.17367 Z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:3.73387px;line-height:1.25;font-family:'Monaspace Neon Var';-inkscape-font-specification:'Monaspace Neon Var';letter-spacing:-0.155245px;word-spacing:0px;stroke-width:0.141131"
|
||||
x="86.529465"
|
||||
y="53.806416"
|
||||
id="text20"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan20"
|
||||
style="stroke-width:0.141131"
|
||||
x="86.529465"
|
||||
y="53.806416">PCI</tspan></text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 359 KiB After Width: | Height: | Size: 359 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 485 KiB After Width: | Height: | Size: 485 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 370 KiB After Width: | Height: | Size: 370 KiB |
|
Before Width: | Height: | Size: 197 KiB After Width: | Height: | Size: 197 KiB |
|
Before Width: | Height: | Size: 950 KiB After Width: | Height: | Size: 950 KiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 171 KiB After Width: | Height: | Size: 171 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 987 KiB After Width: | Height: | Size: 987 KiB |
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 249 KiB After Width: | Height: | Size: 249 KiB |
35079
procver/lv/ongoing_notes/example_logs_lag.svg
Normal file
|
After Width: | Height: | Size: 987 KiB |
1519
procver/lv/ongoing_notes/graph_init_2.svg
Normal file
|
After Width: | Height: | Size: 77 KiB |
10070
procver/lv/ongoing_notes/lag.svg
Normal file
|
After Width: | Height: | Size: 249 KiB |
66
procver/lv/ongoing_notes/notes.typ
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
/*#set text(font: "Essays1743")*/
|
||||
|
||||
= Redundancy Check
|
||||
|
||||
To cut through the noise in the logs, I am bringing back from retirement the log verification algorithm.
|
||||
This algorithm applies hierarchical clustering to the logs using a custom distance metric.
|
||||
The main thing to remember is that the only parameter is the ~distance threshold~ that is expressed as a number of second.
|
||||
This threshold represents the maximum average time two logs can be apart to be considered redundant.
|
||||
A value around 1s should be a pretty good value for this type of data.
|
||||
|
||||
Quick stats.: as of April 16, the machine b-06 generated 9002 log entries across 170 unique logs.
|
||||
This number is missleading because the uniqueness of the logs is determined based on the path of the application that starts or stops.
|
||||
However, this path changes for two may reason:
|
||||
|
||||
- When the user changes, the same application start from a different user directory. It is not clear if the same application runing from two different user directory should be considered different applications or not.
|
||||
- Sometimes, an application will have a change in capitalization in its name. For example, `C:\\[...]\BackgroundTaskHost.exe` exists also as `C:\\[...]\backgroundTaskHost.exe` or even simply `backgroundTaskHost.exe` without absolute path. This makes it difficult to combine back together the different version of the same app.
|
||||
|
||||
#figure(caption: "Initial redundancy graph with threshold 2s",
|
||||
image("graph_init_2.svg", width:100%)
|
||||
)<graph_init>
|
||||
|
||||
The initial exploration does not try to clean the logs.
|
||||
The log selection algo runs with a distance threshold of 2 seconds and produces the result in #label("graph_init").
|
||||
There are some good results in this graph.
|
||||
Mostly, most clusters seems to make sense. For example cluster Z groups together maple-related apps, cluster L groups chrome-related apps, and cluster Q groups things I don't know about but have similar names.
|
||||
However, we can identify a number of issues and mainly:
|
||||
|
||||
- Some apps name appear twice or more. This is likely due to inconsistencies in the path or user sessions.
|
||||
- The clusters do not take into accound the type of log --- starting or stoping the app.
|
||||
|
||||
The initial idea would be to clean to logs to get a better or more clustering.
|
||||
However I have made this mistake too many time so I first need to assess if the clustering is good or not.
|
||||
No need to leak info into the data if the clustering is good.
|
||||
If it is not, I need a quantitative way of evaluating if I make it better or not.
|
||||
How do you evaluate if a clustering is good? No idea.
|
||||
Lets start by visualizing what these clusters look like in a time series.
|
||||
|
||||
|
||||
= Lag
|
||||
If only this was lab data, we would make sure the timings a synced up before the experiment.
|
||||
However, this is the real world and in the real world the university does not consult me when setting up their log collection system.
|
||||
As a result, the logs seems to lag behind the power traces (or the other way around, but let's say its them).
|
||||
Given that we are considering patterns of logs in the order of < 1s, any lag of more than one second is game breaking.
|
||||
Visually, we can estimate that the lag is around 1h (so game is so broken there is no game anymore).
|
||||
We can also hypothesized that, for each machine, the lag is constant in time (but may not be constant accross machines).
|
||||
|
||||
#figure(caption: "Example of log vs power lag",
|
||||
image("example_logs_lag.svg", width:100%)
|
||||
)<graph_init>
|
||||
|
||||
To estimate a constant lag, the cross-correlation is an obvious choice.
|
||||
The cross correlation presents the corelation of two signals for all possible values of lag between them.
|
||||
With the strong assumption that the density of logs should be exactly correlated with the power consumption, we can compute the correlation between the log series and the time series.
|
||||
|
||||
#align(center)[~Hold up a minute, the log series is not a time series, so it cannot be compared with the power consumption data trivially.~]
|
||||
That is true. We first need to convert the log series in a time series to compute the cross-correlation.
|
||||
There are many ways to do that so I started with the simplest:
|
||||
1. Create an array of all zeros with the same shape as the power trace.
|
||||
2. Place a one at each time stamps where a log happens. Add thelm if multiple.
|
||||
3. Apply a moving average filter multiple times to smooth the data.
|
||||
4. Compute the cross correlation between the power trace and the logs.
|
||||
|
||||
|
||||
#figure(caption: "Lag computation using cross correlation.",
|
||||
image("lag.svg", width:100%)
|
||||
)<graph_init>
|
||||
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
|
|
@ -1,4 +0,0 @@
|
|||
ulem
|
||||
pgfplots
|
||||
dateplot
|
||||
|
||||
|
Before Width: | Height: | Size: 35 KiB |
|
|
@ -1,61 +0,0 @@
|
|||
#import "@preview/acrostiche:0.3.2": *
|
||||
|
||||
#init-acronyms((
|
||||
"EBS": ("Equation-Based Scheduling",),
|
||||
))
|
||||
|
||||
#align(center)[#text(size:2em)[Equation-Based Scheduling]]
|
||||
|
||||
|
||||
The principle of #acr("EBS") is to use a function to determine which task is allowed to communicate at anypoint in time.
|
||||
This principle provide a mathematically proovable way for each task to determine when to communicate without collision.
|
||||
|
||||
*Problem Statement:*
|
||||
#grid(
|
||||
columns: (1fr,15fr,1fr),
|
||||
[],[
|
||||
Given $n$ tasks $t_i, i in [0,n-1]$,
|
||||
and a schedule array of $m$ time periods $A = [x_0, dots.h.c, x_(m-1)]$
|
||||
where each element $x_i in [t_0,dots.h.c, t_(n-1)]$ is the task allowed to communicate at time $tau_i$,
|
||||
provide a scheduling functions $s$ such that,
|
||||
for each time period $tau_i$, $s(tau_i) = A[tau_i]$.
|
||||
],
|
||||
[]
|
||||
)
|
||||
|
||||
= Polynomials
|
||||
|
||||
Contrary to popular beliefs, polynomials are not boring.
|
||||
Let us consider a problem with four tasks $(t_0,t_1,t_2,t_3)$ and a schedule array of 20 time periods
|
||||
$
|
||||
A = [0,1,2,3,0,0,1,2,0,1,2,3,0,3,0,2,3,2,0,1]
|
||||
$
|
||||
|
||||
#figure(
|
||||
image("images/polyfit.svg", width:100%),
|
||||
caption: "Scheduling function defined as a polynomial fit of the scheduling array."
|
||||
)<fig-polyfit>
|
||||
|
||||
== Clock Sensitivity
|
||||
In order for every task to know when they can transmit, they all need to evaluate the scheduling function at the same times.
|
||||
In the real world, that could be very difficult as the clock of each task can drift over time.
|
||||
Some people suggested to use atomic clock chips as the RTC of clock so that, after a syncronisation phase, all timings across tasks would remain exact #footnote[Atomic clocks drift is estimated at one second per hunred million year (Wikipedia).].
|
||||
However, I suspect that the person proposing this solution have atomic clock in their office drawer and don't think of us, mere students, that do not have 6k to invest in a fancy clock.
|
||||
|
||||
This raises the question; How sensitive is a scheduling function to clock imprecision?
|
||||
After all, the function is exact on the start of the period but has no constraint during the period.
|
||||
We define the clock sensitivity of a scheduling function $"cs"(s)$ as the maximum time delta around any period start without an incorrect task decision.
|
||||
$
|
||||
"cs"(s) = max_(delta t)(s(tau_i plus.minus delta t) = A[tau_i]; forall tau_i)
|
||||
$
|
||||
|
||||
Let us consider again the example displayed in @fig-polyfit.
|
||||
As the degree of the polynomial grows to perfectly fit the schedul, extreme variations appear during the periods.
|
||||
These extreme variations induce high derivative of the function at the sampling time that makes the clock sensitivity very small.
|
||||
|
||||
== Problems with Polynomials
|
||||
A single polynomial fitted to the schedul does not seem like a good approach as it require a very precise clock to obtain the correct values.
|
||||
Moreover, storing the polynomial coefficient for the function requires at least as much memory as storing the schedule itself.
|
||||
Finally, evaluating the function is more computation-intensive than looking up a value in a table.
|
||||
|
||||
= Regression, imprefect fit, and flatten scheduling array.
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
bpv:
|
||||
type: Article
|
||||
title: Independent Boot Process Verification using Side-Channel Power Analysis
|
||||
author:
|
||||
- Grisel-Davy, Arthur
|
||||
- Fischmeister, Sebastian
|
||||
date: 2023-10-22
|
||||
parent:
|
||||
- type: Conference
|
||||
title:
|
||||
value: IEEE International Conference on Software Quality, Reliability and Security
|
||||
short: QRS 2023
|
||||
location: Chiang Mai, Thailand
|
||||
|
||||
wip-bpv:
|
||||
type: Article
|
||||
title: "Work-in-Progress: Boot Sequence Integrity Verification with Power Analysis"
|
||||
author:
|
||||
- Grisel-Davy, Arthur
|
||||
- Bhogayata, Amrita Milan
|
||||
- Pabbi, Srijan
|
||||
- Narayan, Apurva
|
||||
- Fischmeister, Sebastian
|
||||
date: 2022-10-07
|
||||
parent:
|
||||
- type: Conference
|
||||
title:
|
||||
value: 2022 International Conference on Embedded Software
|
||||
short: EMSOFT 2022
|
||||
location: Shanghai, China
|
||||
|
||||
|
||||
|
||||
eet1:
|
||||
type: Article
|
||||
title: "Side-channel Based Runtime Intrusion Detection for Network Equipment"
|
||||
author:
|
||||
- Grisel-Davy, Arthur
|
||||
- Guler, Goksen
|
||||
- Dicket, Julian
|
||||
- Vibien, Philippe,
|
||||
- Khan, Waleed,
|
||||
- Morgan, Jack,
|
||||
- Moreno, Carlos,
|
||||
- Fischmeister, Sebastian
|
||||
date: 2023-09-22
|
||||
parent:
|
||||
- type: Conference
|
||||
title:
|
||||
value: 5th Workshop on Machine Learning for CyberSecurity
|
||||
short: MLCS 2023
|
||||
location: Torino, Italy
|
||||
|
||||
|
||||
|
||||
mad:
|
||||
type: Article
|
||||
title: "MAD: One-Shot Machine Activity Detector for Physics-Based Cyber Security"
|
||||
author:
|
||||
- Grisel-Davy, Arthur
|
||||
- Fischmeister, Sebastian
|
||||
date: 2023-10-22
|
||||
parent:
|
||||
- type: Conference
|
||||
title:
|
||||
value: IEEE International Conference on Software Quality, Reliability and Security
|
||||
short: QRS 2023
|
||||
location: Chiang Mai, Thailand
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
#import "@preview/acrostiche:0.3.0": *
|
||||
|
||||
#init-acronyms((
|
||||
"IDS": ("Intrusion Detection System"),
|
||||
"BPV": ("Boot Process Verification"),
|
||||
))
|
||||
|
||||
|
||||
#set page("us-letter")
|
||||
|
||||
|
||||
|
||||
I am recommending Arthur Grisel-Davy for the Cybersecurity and Privacy Excellence Graduate Scholarships.
|
||||
|
||||
I supervised Arthur first in 2019 when he was a visiting student discovering the world of research, and then again in 2021 during his doctoral studies.
|
||||
Building on all the previous projects he was involved in, he decided to dedicate his studies to the use of side-channel information for intrusion detection. He is now a third-year Ph.D. candidate.
|
||||
|
||||
The first project Arthur took part in explored the potential of side-channel analysis for defensive applications on embedded systems.
|
||||
This work led to the publication of a paper in @eet1.
|
||||
The results from this first project highlighted several axis for future work on bootup verification, runtime analysis and log verification.
|
||||
Arthur dedicated his Ph.D. to this topic and eventually explored all these branches of phycis-based defense.
|
||||
|
||||
After the exploration phase, Arthur worked on bootup verification.
|
||||
He proposed an approach for the problem of assessing the integrity of a machine using only a few known-good examples of bootup traces.
|
||||
This approach led to two publications: first a work-in-progress paper in @wip-bpv and then an aticle presented in @bpv that present the approach in more details and use-cases.
|
||||
For each of these articles, Arthur was the main author and had to write all the publications, integrate reviewers comments, and travel to the conferences to present his work.
|
||||
These were his first experiences with the presentation of research work.
|
||||
|
||||
The second axis of research that Arthur explored was the runtime verification of embedded systems.
|
||||
Arthur developed a few-shot pattern recognition algorithm for univariate time series to bridge the gap between raw side-channel information and rule-based intrusion detection systems.
|
||||
His work was published at @mad and received the best paper award for this edition.
|
||||
|
||||
Arthur's current project aims to verify the logs emitted by a machine using power consumption, providing more trust to the log for later evaluation.
|
||||
|
||||
Along with his studies, Arthur also undertook the advisor role for younger students.
|
||||
He shares his experience of conducting experiments and writing articles with a few students each term.
|
||||
This role led to multiple collaborations on topics like the study of power consumption patterns from battery-powered devices or pattern mining algorithms.
|
||||
Collaborations naturally arise with other students, for example, on the topic of trust management.
|
||||
|
||||
Arthur also took the opportunity of his Ph.D. studies to learn new topics for personal research projects.
|
||||
He proposed to learn PCB design to build a new power trace capture system for USB-C charging cables.
|
||||
He also reached out to other labs in the university to explore his idea of using power cables as bi-directional covert channels.
|
||||
Outside of the university, Arthur often collaborates with the Palitronica Inc. startup on designing detection algorithms or evaluating applications in the domain of side-channel defense.
|
||||
|
||||
Arthur has consistently demonstrated dedication, creativity, and scholarly achievement throughout his studies in our research group.
|
||||
His commitment to advancing the field of cybersecurity and privacy is evident in his motivation, ideas, accomplishments, and publications in reputable conferences.
|
||||
|
||||
Arthur is a person of integrity, professionalism, and a collaborative spirit, making him a valuable member of our academic community.
|
||||
|
||||
Arthur Grisel-Davy would be a deserving recipient of this scholarship.
|
||||
|
||||
#pagebreak()
|
||||
#bibliography("biblio.yml")
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
#import "@preview/acrostiche:0.3.0": *
|
||||
|
||||
#set page("us-letter",
|
||||
margin: (x:1.8cm, top:2cm, bottom:1cm),
|
||||
header: [
|
||||
#set text(8pt)
|
||||
#smallcaps[Arthur Grisel-Davy]
|
||||
#h(1fr) _CPI Scholarship Application_
|
||||
],
|
||||
|
||||
)
|
||||
|
||||
#init-acronyms((
|
||||
"IDS": ("Intrusion Detection System"),
|
||||
))
|
||||
|
||||
#let cn = {text(fill:purple, weight:"bold")[#smallcaps[\[citation needed\]]]}
|
||||
|
||||
#set par(
|
||||
first-line-indent: 1em,
|
||||
justify: true,
|
||||
)
|
||||
|
||||
#text(weight: "bold", size: 2em)[Areas of Research]
|
||||
#v(0pt)
|
||||
#line(length:100%, stroke: 2pt)
|
||||
|
||||
As a Ph.D. student, my research projects revolve around enforcing security policies or detecting abnormal behaviour
|
||||
using embedded systems’ power consumption. The power consumption, like other side-channel emissions — noise,
|
||||
temperature, or timing information for example —, are, from a computation point of view, a necessary but useless by-product that the machine has to deal with. However, for a few decades, researchers have found ways to leverage theseseemingly useless information channels to extract insights about machine states and activities. Although primarily
|
||||
leveraging this information to design attacks, the research on side-channel analysis also proposes considering them
|
||||
as a source of information to power defense mechanisms with their own intrinsic characteristics. These mechanisms
|
||||
require the use or development of a processing algorithm to overcome the non-actionable nature of raw time series
|
||||
and extract the information embedded in the collected data. My projects focus on exploring the applicability of side-channel (or physics-based) Intrusion Detection System (IDS) through the development of processing algorithms and
|
||||
decision models.
|
||||
|
||||
= Boot Process Verification
|
||||
The boot sequence of a machine is a critical state for the machine’s security. The bootloader and firmware that executes
|
||||
during this sequence control the lowest level of software, which sets important security parameters. Moreover, this
|
||||
is a particularly vulnerable sequence as no host-based IDS is running. There are hardware-based mechanisms, often
|
||||
leveraging cryptographic signatures, that strive to prevent firmware tampering, but studies illustrated the possibility of bypassing them. One of my research projects was the development of a boot sequence verifier based on power traces.
|
||||
This approach is fully independent from the target system — and thus not bypassable —, can leverage data even before
|
||||
the machine starts and provides an additional layer of protection against firmware tampering.
|
||||
|
||||
= Device State Detection
|
||||
Once the machine starts, the power consumption is a useful runtime monitoring input. The ability to detect a machine’s
|
||||
state is crucial for anomaly detection, rule mining, policy enforcement, and predictive maintenance. However, log collection systems can be the target of attackers, suffer malfunction, or simply not be compatible with bespoke embedded
|
||||
systems. The power consumption, on the other hand, is ubiquitous across all embedded systems, easy and reliable to
|
||||
measure, and contains information about the target state. Leveraging this power consumption to infer the state of a
|
||||
machine requires the development of a pattern recognition algorithm. I proposed an approach to this problem in the
|
||||
context of rare events in which training data is reduced to a single sample per label.
|
||||
|
||||
= Log Verification
|
||||
Logs from applications and operating systems are a valuable source of information for host-based IDS. However, logs
|
||||
are not reliable as they are produced and reported by software running on the machine to protect. This means that the
|
||||
logs that help detect intrusions are only trustworthy when there is no intrusion. Once again, power consumption can
|
||||
provide a secondary, independent and trusted source of information for validating the integrity of a log journal. This
|
||||
problem is complex due to the high dimensionality of both time and event series and the intrinsic hybrid nature of the
|
||||
input data. It is, however, a compelling problem to study with broad applications that I am currently working on.
|
||||
|
||||
= Miscellaneous
|
||||
In addition to these broad projects, my studies led me to explore satellite projects and domains such as a power-cable-based bidirectional covert channel, the design of a PCB for the automated capture and analysis of USB-C power
|
||||
for laptops and mobile devices, and the collaboration on a trust-management system leveraging physics-based state
|
||||
recognition.
|
||||