[PATCH 0/9] Add support for configure and control of Hardware Trace Macro(HTM)

Athira Rajeev atrajeev at linux.ibm.com
Fri Mar 21 01:51:00 AEDT 2025


> On 20 Mar 2025, at 6:43 PM, Venkat Rao Bagalkote <venkat88 at linux.ibm.com> wrote:
> 
> On 14/03/25 7:25 pm, Athira Rajeev wrote:
>> H_HTM (Hardware Trace Macro) hypervisor call is an HCALL to export
>> data from Hardware Trace Macro (HTM) function. The debugfs interface
>> to export the HTM function data in a partition currently supports only
>> dumping of HTM data in an lpar. Patchset add support for configuration
>> and control of HTM function via debugfs interface.
>> 
>> With the patchset, after loading htmdump module,
>> below files are present:
>> 
>> ls /sys/kernel/debug/powerpc/htmdump/
>>   coreindexonchip  htmcaps  htmconfigure  htmflags  htminfo  htmsetup
>>   htmstart  htmstatus  htmtype  nodalchipindex  nodeindex  trace
>> 
>> - nodeindex, nodalchipindex, coreindexonchip specifies which
>>   partition to configure the HTM for.
>> - htmtype: specifies the type of HTM. Supported target is
>>   hardwareTarget.
>> - trace: is to read the HTM data.
>> - htmconfigure: Configure/Deconfigure the HTM. Writing 1 to
>>   the file will configure the trace, writing 0 to the file
>>   will do deconfigure.
>> - htmstart: start/Stop the HTM. Writing 1 to the file will
>>   start the tracing, writing 0 to the file will stop the tracing.
>> - htmstatus: get the status of HTM. This is needed to understand
>>   the HTM state after each operation.
>> - htmsetup: set the HTM buffer size. Size of HTM buffer is in
>>   power of 2.
>> - htminfo: provides the system processor configuration details.
>>   This is needed to understand the appropriate values for nodeindex,
>>   nodalchipindex, coreindexonchip.
>> - htmcaps : provides the HTM capabilities like minimum/maximum buffer
>>   size, what kind of tracing the HTM supports etc.
>> - htmflags : allows to pass flags to hcall. Currently supports
>>   controlling the wrapping of HTM buffer.
>> 
>> Example usage:
>> To collect HTM traces for a partition represented by nodeindex as
>> zero, nodalchipindex as 1 and coreindexonchip as 12.
>> 
>>   # cd /sys/kernel/debug/powerpc/htmdump/
>>   # echo 2 > htmtype
>>   # echo 0 > nodeindex
>>   # echo 1 > nodalchipindex
>>   # echo 12 > coreindexonchip
>>   # echo 1 > htmflags     # to set noWrap for HTM buffers
>>   # echo 1 > htmconfigure # Configure the HTM
>>   # echo 1 > htmstart     # Start the HTM
>>   # echo 0 > htmstart     # Stop the HTM
>>   # echo 0 > htmconfigure # Deconfigure the HTM
>>   # cat htmstatus         # Dump the status of HTM entries as data
>> 
>> Athira Rajeev (9):
>>   powerpc/pseries/htmdump: Add htm_hcall_wrapper to integrate other htm
>>     operations
>>   powerpc/pseries/htmdump: Add htm configure support to htmdump module
>>   powerpc/pseries/htmdump: Add htm start support to htmdump module
>>   powerpc/pseries/htmdump: Add htm status support to htmdump module
>>   powerpc/pseries/htmdump: Add htm info support to htmdump module
>>   powerpc/pseries/htmdump: Add htm setup support to htmdump module
>>   powerpc/pseries/htmdump: Add htm flags support to htmdump module
>>   powerpc/pseries/htmdump: Add htm capabilities support to htmdump
>>     module
>>   powerpc/pseries/htmdump: Add documentation for H_HTM debugfs interface
>> 
>>  Documentation/arch/powerpc/htm.rst        | 104 ++++++
>>  arch/powerpc/include/asm/plpar_wrappers.h |  20 +-
>>  arch/powerpc/platforms/pseries/htmdump.c  | 370 +++++++++++++++++++++-
>>  3 files changed, 475 insertions(+), 19 deletions(-)
>>  create mode 100644 Documentation/arch/powerpc/htm.rst
>> 
> Hello Athira,
> 
> I tried to apply this patch set on powerpc-next repo, but pacth 007 failed. Please refer the failure below.
> 
> 
> Signed-off-by: Athira Rajeev <atrajeev at linux.ibm.com>
> --------------------------
> Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: a
> Applying: powerpc/pseries/htmdump: Add htm_hcall_wrapper to integrate other htm operations
> Applying: powerpc/pseries/htmdump: Add htm configure support to htmdump module
> Applying: powerpc/pseries/htmdump: Add htm start support to htmdump module
> Applying: powerpc/pseries/htmdump: Add htm status support to htmdump module
> Applying: powerpc/pseries/htmdump: Add htm info support to htmdump module
> Applying: powerpc/pseries/htmdump: Add htm setup support to htmdump module
> Applying: powerpc/pseries/htmdump: Add htm flags support to htmdump module
> error: patch failed: arch/powerpc/platforms/pseries/htmdump.c:180
> error: arch/powerpc/platforms/pseries/htmdump.c: patch does not apply
> Patch failed at 0007 powerpc/pseries/htmdump: Add htm flags support to htmdump module
> hint: Use 'git am --show-current-patch=diff' to see the failed patch
> When you have resolved this problem, run "git am --continue".
> If you prefer to skip this patch, run "git am --skip" instead.
> To restore the original branch and stop patching, run "git am --abort”.
Hi Venkat

Thanks for checking the patch series. I will be posting a V2 with changes soon to address above issue.

Thanks
Athira
> 
> 
> Regards,
> 
> Venkat.




More information about the Linuxppc-dev mailing list