Hi Maintainers, We are profiling VPP with MAP (a software profile suite on Arm CPUs, see details in https://www.arm.com/products/development-tools/server-and-hpc/forge/map) on Arm CPUs.
The MAP sampler runs inside target process as a library because it does a lot more things that require access to the program's memory like matching up OpenMP threads etc. So it is a lot more invasive and uses the SIGPROF signal to control the sample rate. VPP will receive SIGPROF signal because MAP uses SIGPROF signal to drive its sampler to do profiling on VPP. However, the default action of SIGPROF signal handler in VPP such as unix_signal_handler() is process termination. To profile VPP with MAP, We need to change VPP signal handler to ignore SIGPROF signal. Can we upstream a patch to simply ignore the SIGPROF in VPP? diff --git a/src/vlib/unix/main.c b/src/vlib/unix/main.c index e40a462..6138a6f 100755 --- a/src/vlib/unix/main.c +++ b/src/vlib/unix/main.c @@ -218,6 +218,7 @@ /* ignore SIGPIPE, SIGCHLD */ case SIGPIPE: case SIGCHLD: + case SIGPROF: sa.sa_sigaction = (void *) SIG_IGN; break; Thanks.
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#15741): https://lists.fd.io/g/vpp-dev/message/15741 Mute This Topic: https://lists.fd.io/mt/71898718/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-