1 #pragma once 2 3 #if defined(__ELF__) && (defined(__x86_64__) || defined(__i386__)) && \ 4 !(defined(TORCH_DISABLE_SDT) && TORCH_DISABLE_SDT) 5 6 #define TORCH_HAVE_SDT 1 7 8 #include <c10/util/static_tracepoint_elfx86.h> 9 10 #define TORCH_SDT(name, ...) \ 11 TORCH_SDT_PROBE_N( \ 12 pytorch, name, 0, TORCH_SDT_NARG(0, ##__VA_ARGS__), ##__VA_ARGS__) 13 // Use TORCH_SDT_DEFINE_SEMAPHORE(name) to define the semaphore 14 // as global variable before using the TORCH_SDT_WITH_SEMAPHORE macro 15 #define TORCH_SDT_WITH_SEMAPHORE(name, ...) \ 16 TORCH_SDT_PROBE_N( \ 17 pytorch, name, 1, TORCH_SDT_NARG(0, ##__VA_ARGS__), ##__VA_ARGS__) 18 #define TORCH_SDT_IS_ENABLED(name) (TORCH_SDT_SEMAPHORE(pytorch, name) > 0) 19 20 #else 21 22 #define TORCH_HAVE_SDT 0 23 24 #define TORCH_SDT(name, ...) \ 25 do { \ 26 } while (0) 27 #define TORCH_SDT_WITH_SEMAPHORE(name, ...) \ 28 do { \ 29 } while (0) 30 #define TORCH_SDT_IS_ENABLED(name) (false) 31 #define TORCH_SDT_DEFINE_SEMAPHORE(name) 32 #define TORCH_SDT_DECLARE_SEMAPHORE(name) 33 34 #endif 35