Same program, same environment, When I use User-Mode Sampling, I got this result with callstack info
But when I use H/W Event-Based Sampling, I got the result like this

Vtune Binary/Symbol Search setting is same in both mode
Is defualt H/W Event-Based Sampling do not collect callstack? Is there some config I can set to enable callstack collection?
My analysis configuration:
vtune-self-checker.bat check reuslt report is ok:


By default only user-mode sampling collects stacks. If you are trying out in H/W event based sampling, you have to explicitly check that option. Please confirm that you have enabled the collect stack option.
For Linux* targets, make sure your kernel is configured to support event-based stack sampling collection. https://www.intel.com/content/www/us/en/develop/documentation/vtune-help/top/set-up-analysis-target/linux-targets/build-install-sampling-drivers-for-linux-targets.html
Configure the event-based sampling collector to analyze call stacks for your functions and identify performance, parallelism and power consumption issues.
To Configure Stack Collection
please refer the below link to get an idea on Hardware Event-based Sampling Collection with Stacks. https://www.intel.com/content/www/us/en/develop/documentation/vtune-help/top/analyze-performance/hw-event-based-sampling-collection/hw-event-based-sampling-collection-with-stacks.html
Also, You can try to run vtune self checker script which is available in vtune installed directory, to validate whether the appropriate drivers are installed and system is set up properly to collect performance data. It is available as vtune-self-checker.sh script in /bin64.