PAPI_set_multiplex(3)
π NAME π
okay so bestie, welcome to the PAPI manual (section 3, iykyk) β this page is all about PAPI_set_multiplex, and it does exactly one iconic thing: it converts a standard event set to a multiplexed event set. periodt π
β¨
β¨ SYNOPSIS β¨
π« Detailed Description π«
π C Interface π
#include <papi.h>
int PAPI_set_multiplex( int EventSet );
π«Ά Parameters π«Ά
EventSetβ an integer handle for a PAPI event set as created byPAPI_create_eventsetπ«Ά
π Return values π
PAPI_OKβ β¨ the happy path β¨PAPI_EINVALβ one or more of the arguments is invalid, or theEventSetis already multiplexed. πPAPI_ENOCMPβ theEventSetspecified is not yet bound to a component.PAPI_ENOEVSTβ theEventSetspecified does not exist.PAPI_EISRUNβ theEventSetis currently counting events.PAPI_ENOMEMβ insufficient memory to complete the operation. π
PAPI_set_multiplex converts a standard PAPI event set created by a call to PAPI_create_eventset into an event set capable of handling multiplexed events. The way that works is: you gotta do this after calling PAPI_multiplex_init, and either PAPI_add_event or PAPI_assign_eventset_component, but prior to calling PAPI_start(). no cap π¦
Events can be added to an event set either before or after converting it into a multiplexed set, but the conversion must be done prior to using it as a multiplexed set. literally the glow-up has to happen before the main character moment, bestie π
Note π Multiplexing can't be enabled until PAPI knows which component is targeted. Due to the late binding nature of PAPI event sets, this only happens after adding an event to an event set or explicitly binding the component with a call to PAPI_assign_eventset_component. so yeah, PAPI needs the deets first π₯
π§ͺ Example π§ͺ
int EventSet = PAPI_NULL;
int ret;
// Create an empty EventSet
ret = PAPI_create_eventset(&EventSet);
if (ret != PAPI_OK) handle_error(ret);
// Bind it to the CPU component
ret = PAPI_assign_eventset_component(EventSet, 0);
if (ret != PAPI_OK) handle_error(ret);
// Check current multiplex status
ret = PAPI_get_multiplex(EventSet);
if (ret == TRUE) printf("This event set is ready for multiplexing\n.")
if (ret == FALSE) printf("This event set is not enabled for multiplexing\n.")
if (ret < 0) handle_error(ret);
// Turn on multiplexing
ret = PAPI_set_multiplex(EventSet);
if ((ret == PAPI_EINVAL) && (PAPI_get_multiplex(EventSet) == TRUE))
printf("This event set already has multiplexing enabled\n");
else if (ret != PAPI_OK) handle_error(ret);
π See also π
PAPI_multiplex_initPAPI_get_multiplexPAPI_set_optPAPI_create_eventset
βοΈ Author βοΈ
ngl, the author line is literally: Generated automatically by Doxygen for PAPI from the source code. π«Ά
xoxo, this was PAPI_set_multiplex(3) from PAPI, version 7.2.0.0, dated Wed Jun 25 2025 19:30:49 β slay and stay multiplexed, bestie ππ¦π
π¦ where this page comes from
- nixos 26.05: papi 7.2.0
- nixpkgs unstable: papi 7.2.0
- opensuse-leap 16.0: papi-devel 7.2.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: papi-devel 7.2.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: papi-devel 7.2.0-160000.2.2 Β· BSD-3-Clause
- ubuntu resolute: libpapi-dev 7.2.0-2 Β· BSD-3-Clause
- ubuntu stonking: libpapi-dev 7.2.0-2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms