Spdk/include/spdk_internal/usdt.h
Richael Zhuang e7a09f7c3f usdt: fix bpftrace parse error on arm64
bpftrace reports parse error on arm64:
"parse error:
8@x0 4@[x21, #:lo12:.LANCHOR2]
"
using "nr" to override the default constraints string can fix this.

//the default is:
 stapsdt              0x0000004b       NT_STAPSDT (SystemTap probe descriptors)
    Provider: spdk
    Name: nvmf_tgt_state
    Location: 0x000000000006e664, Base: 0x00000000001ca6f0, Semaphore: 0x0000000000000000
    Arguments: 8@x0 4@[x21, #:lo12:.LANCHOR2]

//using "nr" as the constraints string:
 stapsdt              0x00000036       NT_STAPSDT (SystemTap probe descriptors)
    Provider: spdk
    Name: nvmf_tgt_state
    Location: 0x000000000006f680, Base: 0x00000000001cb730, Semaphore: 0x0000000000000000
    Arguments: 8@x0 4@x1

Change-Id: I25736dcf5a8593d2c156da41a2e28532ab8fa570
Signed-off-by: Richael Zhuang <richael.zhuang@arm.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14642
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
2022-10-03 08:48:54 +00:00

37 lines
1023 B
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright (c) Intel Corporation.
* All rights reserved.
*/
#ifndef SPDK_INTERNAL_USDT_H
#define SPDK_INTERNAL_USDT_H
#include "spdk/config.h"
#include "spdk/env.h"
#if defined(SPDK_CONFIG_USDT) && !defined(SPDK_UNIT_TEST)
#if defined(__aarch64__)
#define STAP_SDT_ARG_CONSTRAINT nr
#endif
#include <sys/sdt.h>
#define SPDK_DTRACE_PROBE(name) DTRACE_PROBE1(spdk,name,spdk_get_ticks())
#define SPDK_DTRACE_PROBE1(name,a1) DTRACE_PROBE2(spdk,name,spdk_get_ticks(),a1)
#define SPDK_DTRACE_PROBE2(name,a1,a2) DTRACE_PROBE3(spdk,name,spdk_get_ticks(),a1,a2)
#define SPDK_DTRACE_PROBE3(name,a1,a2,a3) DTRACE_PROBE4(spdk,name,spdk_get_ticks(),a1,a2,a3)
#define SPDK_DTRACE_PROBE4(name,a1,a2,a3,a4) DTRACE_PROBE5(spdk,name,spdk_get_ticks(),a1,a2,a3,a4)
#else
#define SPDK_DTRACE_PROBE(...)
#define SPDK_DTRACE_PROBE1(...)
#define SPDK_DTRACE_PROBE2(...)
#define SPDK_DTRACE_PROBE3(...)
#define SPDK_DTRACE_PROBE4(...)
#endif
#endif /* SPDK_INTERNAL_USDT_H */