Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
fi_hook(7)			   @VERSION@			    fi_hook(7)

NAME
       fi_hook - The Hook Fabric Provider Utility

OVERVIEW
       The  hooking provider is	a utility function that	can intercept calls to
       any provider.  The hook provider	is always available, but has zero  im-
       pact  on	 calls unless enabled.	It is useful for providing performance
       data on selected	calls or debugging information.

SUPPORTED FEATURES
       Hooking support is enabled through the  FI_HOOK	environment  variable.
       To  enable  hooking,  FI_HOOK must be set to the	name of	one or more of
       the available hooking providers.	 When multiple	hooks  are  specified,
       the names must be separated by a	semi-colon.  To	obtain a list of hook-
       ing providers available on the current system, one can use the  fi_info
       utility	with  the  '--env' command line	option.	 Hooking providers are
       usually identified by 'hook' appearing in the provider name.

       Known hooking providers include the following:

       ofi_hook_perf
	      This hooks 'fast path' data operation calls.   Performance  data
	      is  captured  on	call entrance and exit,	in order to provide an
	      average of how long each call takes to complete.	See  the  PER-
	      FORMANCE HOOKS section for available performance data.

PERFORMANCE HOOKS
       The hook	provider allows	capturing inline performance data by accessing
       the CPU Performance Management Unit (PMU).  PMU data is only  available
       on  Linux  systems.  Additionally, access to PMU	data may be restricted
       to privileged (super-user) applications.

       Performance data	is captured for	critical data transfer calls:  fi_msg,
       fi_rma,	fi_tagged,  fi_cq, and fi_cntr.	 Captured data is displayed as
       logged data using the FI_LOG_LEVEL trace	level.	 Performance  data  is
       logged when the associated fabric is destroyed.

       The environment variable	FI_PERF_CNTR is	used to	identify which perfor-
       mance counter is	tracked.  The following	counters are available:

       cpu_cycles
	      Counts the number	of CPU cycles each function takes to complete.

       cpu_instr
	      Counts the number	of CPU instructions  each  function  takes  to
	      complete.	  This	is  the	default	performance counter if none is
	      specified.

LIMITATIONS
       Hooking functionality is	not available for providers  built  using  the
       FI_FABRIC_DIRECT	feature.  That is, directly linking to a provider pre-
       vents hooking.

       The hooking provider does not work with triggered operations.  Applica-
       tion  that  use	FI_TRIGGER  operations that attempt to hook calls will
       likely crash.

SEE ALSO
       fabric(7), fi_provider(7)

AUTHORS
       OpenFabrics.

Libfabric Programmer's Manual	  2019-07-19			    fi_hook(7)

NAME | OVERVIEW | SUPPORTED FEATURES | PERFORMANCE HOOKS | LIMITATIONS | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=fi_hook&sektion=7&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help