Table of Contents |
---|
This document describes first phase of WindowsPerf GUI design and implementation.
...
wperf-relay is later called “relay”.
wperf-gui is later called “GUI”.
Description of Phase 1
wperf
User Story | Description / TODO |
---|---|
Required to maintain control over error states in relay and wperf. | |
This additional data is required by GUI to control how many elements GUI widgets can include in relay query. | |
This additional data is required by GUI to print additional information in GUI-13. |
wperf-gui
User Story | Description / TODO |
---|---|
n/a | |
Building widget to select host (IP/URL/port) to connect to. | |
Listing all available events and metrics ( | |
Listing of wperf version number (
| |
Listing additional data about host ( | |
Building widget to save/load host information. | |
Building widget to connect to host. This may include indicator if we are connected to host For example small “traffic lights” icon indicating if we are connected, connecting or disconnected). | |
n/a | |
Separate text window with scroll option to see consecutive outputs from wperf console. | |
Building widget to prepare list of events and event groups for
| |
Building widget to prepare list of metrics
| |
| |
| |
Widget which will show error messages from relay. This may include messages after each response from relay to GUI. It may be a widget, modal window etc. |
wperf-relay
User Story | Description / TODO |
---|---|
n/a | |
This is a protocol payload which will be sent as text from wperf via relay to GUI. | |
n/a | |
To ease testing and GUI development relay will be able to hide missing WindowsPerf by mocking responses to all GUI requests. | |
Basic error handling by relay and GUI.
|
Protocol between Relay and GUI
Protocol between Relay and GUI must include communication:
Payload for
wperf list
Payload for
wperf test
Payload for
wperf stat ... -e ... -m ... -c ... sleep ...
Payload for
wperf -version
Payload for console output from wperf.
Goals of Phase 1
Building first version of relay.
Building first version of GUI.
Update wperf with all missing meta-data we want to sent to GUI to enable data driven GUI behaviour.
Visualize counting model for one host.
Summary of Phase 1
Building initial GUI (wperf-gui).
Building widget to select host (IP/URL/port) to connect to.
Building widget to save/load host information.
Building widget to prepare list of events and event groups for
wperf stat
command line option-e <events>
Build list of CORE events and event groups.
[Nice-to-have]Widget would also prepare list of DSU and DMC events.
Make sure events and groups are sent to relay (as protocol payload) in the same order as defined by user. Please note that group numbers are assigned by
wperf
from left to right. For example:-e {inst_spec,vfp_spec},ase_spec,{dp_spec,ld_spec,st_spec},br_immed_spec,crypto_spec
group 0 (
g0
) is{inst_spec,vfp_spec}
group 1 (
g1
) is{dp_spec,ld_spec,st_spec}
Building widget to prepare list of metrics
wperf stat
command line option-m <metrics>
Listing all available events and metrics (
wperf list
) - for example separate tab.Listing additional data about host (
wperf test
) - for example separate tab.Listing of wperf version number (
wperf -version -json
).For example in modal window “about” and
in bottom status bar.
Support visualization (table) of output of
wperf stat -e <events> -m <metrics> -c <cpu_list> sleep <N>
.
Support counting model (wperf pov) JSON output for (below all done):
wperf stat -e <events>
wperf stat -m <metrics>
wperf stat -e <events> -m <metrics>
Command line option
-c <cpu_list>
Command line option
sleep <N>
Building first version of relay.
- Building first version of GUI.
Establishing common protocol between relay and GUI.
Event and metrics list fetch. Output from
wperf list -json
.Host system and wperf application configuration. Output from
wperf test -json
.Counting with
wperf stat ... -json
.Basic “real time” wperf stdout logging in GUI.
We would like to see
wperf
screen output in GUI during counting execution.
Basic error handling by relay and GUI.
Relay-GUI protocol must be able to send error information to GUI.
Relay-GUI protocol must provide “busy” state to GUI from relay.
GUI should report errors but is not responsible to error recovery of the relay and wperf.
Note: relay will execute and have control over wperf process and will be responsible for executing, stopping and error handling wperf.
...