Is this exact backport from lttng-modules repo?

I came across this issue in
https://github.com/agherzan/meta-raspberrypi/pull/722
and
https://github.com/lttng/lttng-modules/commit/817e02f9e256b8f2cbb9e3125eb061757b83bd4a
+
https://github.com/lttng/lttng-modules/commit/b6af46d166c48c9e59600a60b5a2a7ead10f179a
look a bit different than this one (and are more correct with fixed kernel
ranges as not every > 5.4.62 kernel had this change).

On Mon, Sep 14, 2020 at 10:11 PM Bruce Ashfield <bruce.ashfi...@gmail.com>
wrote:

> In my latest round of linux-yocto reference updates, I ran into these
> same issues, but I needed to pull in more of the fixes on the 2.12
> branch than just this to get things building against 5.8.9.
>
> I didn't need to tweak any of the patches for v5.4.64+ here.
>
> I have 10 backported patches and confirmed my 5.8.9 and 5.4.65 both
> build with the changes.
>
> I can submit that patch along with my reference kernel bumps later today.
>
> Bruce
>
>
> On Mon, Sep 14, 2020 at 3:52 AM Jens Rehsack <rehs...@gmail.com> wrote:
> >
> > From: Jens Rehsack <s...@netbsd.org>
> >
> > Backport patch from lttng-modules/stable-2.12
> >     87b2aff fix: writeback: Fix sync livelock due to b_dirty_time
> processing (v5.9)
> >
> > with minor modfication to catch
> >     6623c19042b6 writeback: Fix sync livelock due to b_dirty_time
> processing
> >
> > from linux/stable-5.4 v5.4.62+
> >
> > Signed-off-by: Jens Rehsack <s...@netbsd.org>
> > ---
> >  ...x-sync-livelock-due-to-b_dirty_time-.patch | 117 ++++++++++++++++++
> >  .../lttng/lttng-modules_2.12.2.bb             |   1 +
> >  2 files changed, 118 insertions(+)
> >  create mode 100644
> meta/recipes-kernel/lttng/lttng-modules/0001-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch
> >
> > diff --git
> a/meta/recipes-kernel/lttng/lttng-modules/0001-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch
> b/meta/recipes-kernel/lttng/lttng-modules/0001-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch
> > new file mode 100644
> > index 0000000000..96a1c486ef
> > --- /dev/null
> > +++
> b/meta/recipes-kernel/lttng/lttng-modules/0001-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch
> > @@ -0,0 +1,117 @@
> > +From 87b2affc3eb06f3fb2d0923f18af37713eb6814b Mon Sep 17 00:00:00 2001
> > +From: Michael Jeanson <mjean...@efficios.com>
> > +Date: Mon, 31 Aug 2020 14:16:01 -0400
> > +Subject: [PATCH] fix: writeback: Fix sync livelock due to b_dirty_time
> > + processing (v5.9)
> > +
> > +See upstream commit:
> > +
> > +  commit f9cae926f35e8230330f28c7b743ad088611a8de
> > +  Author: Jan Kara <j...@suse.cz>
> > +  Date:   Fri May 29 16:08:58 2020 +0200
> > +
> > +    writeback: Fix sync livelock due to b_dirty_time processing
> > +
> > +    When we are processing writeback for sync(2), move_expired_inodes()
> > +    didn't set any inode expiry value (older_than_this). This can
> result in
> > +    writeback never completing if there's steady stream of inodes added
> to
> > +    b_dirty_time list as writeback rechecks dirty lists after each
> writeback
> > +    round whether there's more work to be done. Fix the problem by using
> > +    sync(2) start time is inode expiry value when processing
> b_dirty_time
> > +    list similarly as for ordinarily dirtied inodes. This requires some
> > +    refactoring of older_than_this handling which simplifies the code
> > +    noticeably as a bonus.
> > +
> > +Change-Id: I8b894b13ccc14d9b8983ee4c2810a927c319560b
> > +Signed-off-by: Michael Jeanson <mjean...@efficios.com>
> > +Signed-off-by: Mathieu Desnoyers <mathieu.desnoy...@efficios.com>
> > +---
> > + .../events/lttng-module/writeback.h           | 39 ++++++++++++-------
> > + 1 file changed, 26 insertions(+), 13 deletions(-)
> > +
> > +Upstream Status: Backport
> > +
> > +diff --git a/instrumentation/events/lttng-module/writeback.h
> b/instrumentation/events/lttng-module/writeback.h
> > +index ece67ad..e9018dd 100644
> > +--- a/instrumentation/events/lttng-module/writeback.h
> > ++++ b/instrumentation/events/lttng-module/writeback.h
> > +@@ -384,34 +384,48 @@
> LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_balance_dirty_wait,
> writeback_wbc_balanc
> > + #endif
> > + LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE(wbc_writepage,
> writeback_wbc_writepage)
> > +
> > +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
> > ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)) ||
> (LINUX_VERSION_CODE >= KERNEL_VERSION(5,4,62))
> > ++LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
> > ++      TP_PROTO(struct bdi_writeback *wb,
> > ++               struct wb_writeback_work *work,
> > ++               unsigned long dirtied_before,
> > ++               int moved),
> > ++      TP_ARGS(wb, work, dirtied_before, moved),
> > ++      TP_FIELDS(
> > ++              ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
> > ++              ctf_integer(unsigned long, older, dirtied_before)
> > ++              ctf_integer(int, moved, moved)
> > ++      )
> > ++)
> > ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
> > + LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
> > +       TP_PROTO(struct bdi_writeback *wb,
> > +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
> > +                struct wb_writeback_work *work,
> > +-#else
> > +-               unsigned long *older_than_this,
> > +-#endif
> > +                int moved),
> > +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
> > +       TP_ARGS(wb, work, moved),
> > +-#else
> > ++      TP_FIELDS(
> > ++              ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
> > ++              ctf_integer(int, moved, moved)
> > ++      )
> > ++)
> > ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
> > ++LTTNG_TRACEPOINT_EVENT(writeback_queue_io,
> > ++      TP_PROTO(struct bdi_writeback *wb,
> > ++               unsigned long *older_than_this,
> > ++               int moved),
> > +       TP_ARGS(wb, older_than_this, moved),
> > +-#endif
> > +       TP_FIELDS(
> > +               ctf_array_text(char, name, dev_name(wb->bdi->dev), 32)
> > +-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
> > +-#else
> > +               ctf_integer(unsigned long, older,
> > +                       older_than_this ? *older_than_this : 0)
> > +               ctf_integer(long, age,
> > +                       older_than_this ?
> > +                               (jiffies - *older_than_this) * 1000 / HZ
> > +                               : -1)
> > +-#endif
> > +               ctf_integer(int, moved, moved)
> > +       )
> > + )
> > ++#endif
> > +
> > + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,0))
> > + LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
> > +@@ -460,7 +474,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
> > +               ctf_integer(unsigned long, dirty_limit,
> global_dirty_limit)
> > +       )
> > + )
> > +-#else
> > ++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0))
> > + LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
> > +
> > +       writeback_global_dirty_state,
> > +@@ -485,7 +499,6 @@ LTTNG_TRACEPOINT_EVENT_MAP(global_dirty_state,
> > +       )
> > + )
> > + #endif
> > +-#endif
> > +
> > + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0))
> > +
> > +--
> > +2.17.1
> > +
> > diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb
> b/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb
> > index 0e1a209ce8..f58b3bf0d7 100644
> > --- a/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb
> > +++ b/meta/recipes-kernel/lttng/lttng-modules_2.12.2.bb
> > @@ -10,6 +10,7 @@ include lttng-platforms.inc
> >
> >  SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
> >
>  file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \
> > +
>  file://0001-fix-writeback-Fix-sync-livelock-due-to-b_dirty_time-.patch \
> >             file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \
> >             "
> >
> > --
> > 2.17.1
> >
> >
>
>
>
> --
> - Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#142552): 
https://lists.openembedded.org/g/openembedded-core/message/142552
Mute This Topic: https://lists.openembedded.org/mt/76837437/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to