On Mon, Jan 09 2023 at 12:33, Byungchul Park wrote: > +/* > + * sdt_might_sleep() and its family will be committed in __schedule() > + * when it actually gets to __schedule(). Both dept_request_event() and > + * dept_wait() will be performed on the commit. > + */ > + > +/* > + * Use the code location as the class key if an explicit map is not used. > + */ > +#define sdt_might_sleep_strong(m) \ > + do { \ > + struct dept_map *__m = m; \ > + static struct dept_key __key; \ > + dept_stage_wait(__m, __m ? NULL : &__key, _THIS_IP_, __func__, true);\ > + } while (0) > + > +/* > + * Use the code location as the class key if an explicit map is not used. > + */ > +#define sdt_might_sleep_weak(m) \ > + do { \ > + struct dept_map *__m = m; \ > + static struct dept_key __key; \ > + dept_stage_wait(__m, __m ? NULL : &__key, _THIS_IP_, __func__, false);\ > + } while (0) > + > +#define sdt_might_sleep_finish() dept_clean_stage() > + > +#define sdt_ecxt_enter(m) dept_ecxt_enter(m, 1UL, _THIS_IP_, "start", "event", 0) > +#define sdt_event(m) dept_event(m, 1UL, _THIS_IP_, __func__) > +#define sdt_ecxt_exit(m) dept_ecxt_exit(m, 1UL, _THIS_IP_) None of the above comes with a proper documentation of the various macros/functions. How should anyone aside of you understand what this is about and how this should be used? Thanks, tglx