cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

perf-daemon.txt (5169B)


      1perf-daemon(1)
      2==============
      3
      4
      5NAME
      6----
      7perf-daemon - Run record sessions on background
      8
      9
     10SYNOPSIS
     11--------
     12[verse]
     13'perf daemon'
     14'perf daemon' [<options>]
     15'perf daemon start'  [<options>]
     16'perf daemon stop'   [<options>]
     17'perf daemon signal' [<options>]
     18'perf daemon ping'   [<options>]
     19
     20
     21DESCRIPTION
     22-----------
     23This command allows to run simple daemon process that starts and
     24monitors configured record sessions.
     25
     26You can imagine 'perf daemon' of background process with several
     27'perf record' child tasks, like:
     28
     29  # ps axjf
     30  ...
     31       1  916507 ... perf daemon start
     32  916507  916508 ...  \_ perf record --control=fifo:control,ack -m 10M -e cycles --overwrite --switch-output -a
     33  916507  916509 ...  \_ perf record --control=fifo:control,ack -m 20M -e sched:* --overwrite --switch-output -a
     34
     35Not every 'perf record' session is suitable for running under daemon.
     36User need perf session that either produces data on query, like the
     37flight recorder sessions in above example or session that is configured
     38to produce data periodically, like with --switch-output configuration
     39for time and size.
     40
     41Each session is started with control setup (with perf record --control
     42options).
     43
     44Sessions are configured through config file, see CONFIG FILE section
     45with EXAMPLES.
     46
     47
     48OPTIONS
     49-------
     50-v::
     51--verbose::
     52	Be more verbose.
     53
     54--config=<PATH>::
     55	Config file path. If not provided, perf will check system and default
     56	locations (/etc/perfconfig, $HOME/.perfconfig).
     57
     58--base=<PATH>::
     59	Base directory path. Each daemon instance is running on top
     60	of base directory. Only one instance of server can run on
     61	top of one directory at the time.
     62
     63All generic options are available also under commands.
     64
     65
     66START COMMAND
     67-------------
     68The start command creates the daemon process.
     69
     70-f::
     71--foreground::
     72	Do not put the process in background.
     73
     74
     75STOP COMMAND
     76------------
     77The stop command stops all the session and the daemon process.
     78
     79
     80SIGNAL COMMAND
     81--------------
     82The signal command sends signal to configured sessions.
     83
     84--session::
     85	Send signal to specific session.
     86
     87
     88PING COMMAND
     89------------
     90The ping command sends control ping to configured sessions.
     91
     92--session::
     93	Send ping to specific session.
     94
     95
     96CONFIG FILE
     97-----------
     98The daemon is configured within standard perf config file by
     99following new variables:
    100
    101daemon.base:
    102	Base path for daemon data. All sessions data are
    103	stored under this path.
    104
    105session-<NAME>.run:
    106	Defines new record session. The value is record's command
    107	line without the 'record' keyword.
    108
    109Each perf record session is run in daemon.base/<NAME> directory.
    110
    111
    112EXAMPLES
    113--------
    114Example with 2 record sessions:
    115
    116  # cat ~/.perfconfig
    117  [daemon]
    118  base=/opt/perfdata
    119
    120  [session-cycles]
    121  run = -m 10M -e cycles --overwrite --switch-output -a
    122
    123  [session-sched]
    124  run = -m 20M -e sched:* --overwrite --switch-output -a
    125
    126
    127Starting the daemon:
    128
    129  # perf daemon start
    130
    131
    132Check sessions:
    133
    134  # perf daemon
    135  [603349:daemon] base: /opt/perfdata
    136  [603350:cycles] perf record -m 10M -e cycles --overwrite --switch-output -a
    137  [603351:sched] perf record -m 20M -e sched:* --overwrite --switch-output -a
    138
    139First line is daemon process info with configured daemon base.
    140
    141
    142Check sessions with more info:
    143
    144  # perf daemon -v
    145  [603349:daemon] base: /opt/perfdata
    146    output:  /opt/perfdata/output
    147    lock:    /opt/perfdata/lock
    148    up:      1 minutes
    149  [603350:cycles] perf record -m 10M -e cycles --overwrite --switch-output -a
    150    base:    /opt/perfdata/session-cycles
    151    output:  /opt/perfdata/session-cycles/output
    152    control: /opt/perfdata/session-cycles/control
    153    ack:     /opt/perfdata/session-cycles/ack
    154    up:      1 minutes
    155  [603351:sched] perf record -m 20M -e sched:* --overwrite --switch-output -a
    156    base:    /opt/perfdata/session-sched
    157    output:  /opt/perfdata/session-sched/output
    158    control: /opt/perfdata/session-sched/control
    159    ack:     /opt/perfdata/session-sched/ack
    160    up:      1 minutes
    161
    162The 'base' path is daemon/session base.
    163The 'lock' file is daemon's lock file guarding that no other
    164daemon is running on top of the base.
    165The 'output' file is perf record output for specific session.
    166The 'control' and 'ack' files are perf control files.
    167The 'up' number shows minutes daemon/session is running.
    168
    169
    170Make sure control session is online:
    171
    172  # perf daemon ping
    173  OK   cycles
    174  OK   sched
    175
    176
    177Send USR2 signal to session 'cycles' to generate perf.data file:
    178
    179  # perf daemon signal --session cycles
    180  signal 12 sent to session 'cycles [603452]'
    181
    182  # tail -2  /opt/perfdata/session-cycles/output
    183  [ perf record: dump data: Woken up 1 times ]
    184  [ perf record: Dump perf.data.2020123017013149 ]
    185
    186
    187Send USR2 signal to all sessions:
    188
    189  # perf daemon signal
    190  signal 12 sent to session 'cycles [603452]'
    191  signal 12 sent to session 'sched [603453]'
    192
    193  # tail -2  /opt/perfdata/session-cycles/output
    194  [ perf record: dump data: Woken up 1 times ]
    195  [ perf record: Dump perf.data.2020123017024689 ]
    196  # tail -2  /opt/perfdata/session-sched/output
    197  [ perf record: dump data: Woken up 1 times ]
    198  [ perf record: Dump perf.data.2020123017024713 ]
    199
    200
    201Stop daemon:
    202
    203  # perf daemon stop
    204
    205
    206SEE ALSO
    207--------
    208linkperf:perf-record[1], linkperf:perf-config[1]