[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87tu0ohu9e.ffs@tglx>
Date: Wed, 18 Jan 2023 14:01:01 +0100
From: Thomas Gleixner <tglx@...utronix.de>
To: Byungchul Park <byungchul.park@....com>,
linux-kernel@...r.kernel.org
Cc: torvalds@...ux-foundation.org, damien.lemoal@...nsource.wdc.com,
linux-ide@...r.kernel.org, adilger.kernel@...ger.ca,
linux-ext4@...r.kernel.org, mingo@...hat.com, peterz@...radead.org,
will@...nel.org, rostedt@...dmis.org, joel@...lfernandes.org,
sashal@...nel.org, daniel.vetter@...ll.ch, duyuyang@...il.com,
johannes.berg@...el.com, tj@...nel.org, tytso@....edu,
willy@...radead.org, david@...morbit.com, amir73il@...il.com,
gregkh@...uxfoundation.org, kernel-team@....com,
linux-mm@...ck.org, akpm@...ux-foundation.org, mhocko@...nel.org,
minchan@...nel.org, hannes@...xchg.org, vdavydov.dev@...il.com,
sj@...nel.org, jglisse@...hat.com, dennis@...nel.org, cl@...ux.com,
penberg@...nel.org, rientjes@...gle.com, vbabka@...e.cz,
ngupta@...are.org, linux-block@...r.kernel.org,
paolo.valente@...aro.org, josef@...icpanda.com,
linux-fsdevel@...r.kernel.org, viro@...iv.linux.org.uk,
jack@...e.cz, jlayton@...nel.org, dan.j.williams@...el.com,
hch@...radead.org, djwong@...nel.org,
dri-devel@...ts.freedesktop.org, rodrigosiqueiramelo@...il.com,
melissa.srw@...il.com, hamohammed.sa@...il.com,
42.hyeyoo@...il.com, chris.p.wilson@...el.com,
gwan-gyeong.mun@...el.com
Subject: Re: [PATCH RFC v7 03/23] dept: Add single event dependency tracker
APIs
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
Powered by blists - more mailing lists