STANNIX Community


Manual: perf-daemon

PERF-DAEMON(1)						 perf Manual					      PERF-DAEMON(1)

NAME
       perf-daemon - Run record sessions on background

SYNOPSIS
       perf daemon
       perf daemon []
       perf daemon start  []
       perf daemon stop	  []
       perf daemon signal []
       perf daemon ping	  []

DESCRIPTION
       This command allows to run simple daemon process that starts and monitors configured record sessions.

       You can imagine perf daemon of background process with several perf record child tasks, like:

	   # ps axjf
	   ...
		1  916507 ... perf daemon start
	   916507  916508 ...  \_ perf record --control=fifo:control,ack -m 10M -e cycles --overwrite --switch-output -a
	   916507  916509 ...  \_ perf record --control=fifo:control,ack -m 20M -e sched:* --overwrite --switch-output -a

       Not every perf record session is suitable for running under daemon. User need perf session that either produces data
       on query, like the flight recorder sessions in above example or session that is configured to produce data
       periodically, like with --switch-output configuration for time and size.

       Each session is started with control setup (with perf record --control options).

       Sessions are configured through config file, see CONFIG FILE section with EXAMPLES.

OPTIONS
       -v, --verbose
	   Be more verbose.

       --config=
	   Config file path. If not provided, perf will check system and default locations (/etc/perfconfig,
	   $HOME/.perfconfig).

       --base=
	   Base directory path. Each daemon instance is running on top of base directory. Only one instance of server can
	   run on top of one directory at the time.

       All generic options are available also under commands.

START COMMAND
       The start command creates the daemon process.

       -f, --foreground
	   Do not put the process in background.

STOP COMMAND
       The stop command stops all the session and the daemon process.

SIGNAL COMMAND
       The signal command sends signal to configured sessions.

       --session
	   Send signal to specific session.

PING COMMAND
       The ping command sends control ping to configured sessions.

       --session
	   Send ping to specific session.

CONFIG FILE
       The daemon is configured within standard perf config file by following new variables:

       daemon.base: Base path for daemon data. All sessions data are stored under this path.

       session-.run: Defines new record session. The value is record’s command line without the record keyword.

       Each perf record session is run in daemon.base/ directory.

EXAMPLES
       Example with 2 record sessions:

	   # cat ~/.perfconfig
	   [daemon]
	   base=/opt/perfdata

	   [session-cycles]
	   run = -m 10M -e cycles --overwrite --switch-output -a

	   [session-sched]
	   run = -m 20M -e sched:* --overwrite --switch-output -a

       Starting the daemon:

	   # perf daemon start

       Check sessions:

	   # perf daemon
	   [603349:daemon] base: /opt/perfdata
	   [603350:cycles] perf record -m 10M -e cycles --overwrite --switch-output -a
	   [603351:sched] perf record -m 20M -e sched:* --overwrite --switch-output -a

       First line is daemon process info with configured daemon base.

       Check sessions with more info:

	   # perf daemon -v
	   [603349:daemon] base: /opt/perfdata
	     output:  /opt/perfdata/output
	     lock:    /opt/perfdata/lock
	     up:      1 minutes
	   [603350:cycles] perf record -m 10M -e cycles --overwrite --switch-output -a
	     base:    /opt/perfdata/session-cycles
	     output:  /opt/perfdata/session-cycles/output
	     control: /opt/perfdata/session-cycles/control
	     ack:     /opt/perfdata/session-cycles/ack
	     up:      1 minutes
	   [603351:sched] perf record -m 20M -e sched:* --overwrite --switch-output -a
	     base:    /opt/perfdata/session-sched
	     output:  /opt/perfdata/session-sched/output
	     control: /opt/perfdata/session-sched/control
	     ack:     /opt/perfdata/session-sched/ack
	     up:      1 minutes

       The base path is daemon/session base. The lock file is daemon’s lock file guarding that no other daemon is running on
       top of the base. The output file is perf record output for specific session. The control and ack files are perf
       control files. The up number shows minutes daemon/session is running.

       Make sure control session is online:

	   # perf daemon ping
	   OK	cycles
	   OK	sched

       Send USR2 signal to session cycles to generate perf.data file:

	   # perf daemon signal --session cycles
	   signal 12 sent to session 'cycles [603452]'

	   # tail -2  /opt/perfdata/session-cycles/output
	   [ perf record: dump data: Woken up 1 times ]
	   [ perf record: Dump perf.data.2020123017013149 ]

       Send USR2 signal to all sessions:

	   # perf daemon signal
	   signal 12 sent to session 'cycles [603452]'
	   signal 12 sent to session 'sched [603453]'

	   # tail -2  /opt/perfdata/session-cycles/output
	   [ perf record: dump data: Woken up 1 times ]
	   [ perf record: Dump perf.data.2020123017024689 ]
	   # tail -2  /opt/perfdata/session-sched/output
	   [ perf record: dump data: Woken up 1 times ]
	   [ perf record: Dump perf.data.2020123017024713 ]

       Stop daemon:

	   # perf daemon stop

SEE ALSO
       perf-record(1), perf-config(1)

perf							 07/31/2026					      PERF-DAEMON(1)