Skip to end of banner
Go to start of banner

GUI design & implementation Phase 1

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

This document describes first phase of WindowsPerf GUI design and implementation.

Introduction

As designed wperf-gui will be data-driven application. By definition we will not “hardcode” in GUI source any information related to WindowsPerf application workflows. For example we will not store event names, number or descriptions in GUI. GUI will fetch list of events and all relevant data from wperf. wperf application is ready to emit (almost) all information needed to generate user interface. Current limitations are:

  • maximum number of events user can specify with wperf stats's -e <events> command line switch.

    • This can be mitigated to hard limit in GUI for now. In the future wperf test command will emit this value for GUI.

  • Extra description of the event.

Disclaimer

  • wperf-relay is later called “relay”.

  • wperf-gui is later called “GUI”.

Description of Phase 1

This phase will focus on

  • Building initial 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 events and event groups.

      • Make sure events and groups are sent to relay 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.

This phase will skip

  • Authentication between relay and GUI.

  • GUI will connect only to one relay. No multiple host connections are part of phase 1.

  • No labels