lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Fri, 5 Jan 2024 16:39:55 +0800
From: Pin-yen Lin <treapking@...omium.org>
To: Eugen Hristev <eugen.hristev@...labora.com>, 
	AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>
Cc: Michael Turquette <mturquette@...libre.com>, Stephen Boyd <sboyd@...nel.org>, 
	Matthias Brugger <matthias.bgg@...il.com>, Chen-Yu Tsai <wenst@...omium.org>, 
	linux-arm-kernel@...ts.infradead.org, linux-clk@...r.kernel.org, 
	linux-kernel@...r.kernel.org, Weiyi Lu <weiyi.lu@...iatek.com>, 
	linux-mediatek@...ts.infradead.org
Subject: Re: [PATCH v2 1/2] clk: mediatek: Introduce need_pm_runtime to mtk_clk_desc

On Thu, Jan 4, 2024 at 10:51 PM Pin-yen Lin <treapking@...omium.org> wrote:
>
> Hi Eugen and Angelo,
>
> Unfortunately, I don't have a way to reliably reproduce this either.
>
> We notice this issue from the automatic crash reports sent from the
> users, but we are still not able to reproduce this locally.  So our
> plan is to ship this patch to the users and see if the crash rate goes
> down after a month or so.
>
> Regards,
> Pin-yen
>
> On Wed, Jan 3, 2024 at 9:20 PM Eugen Hristev
> <eugen.hristev@...labora.com> wrote:
> >
> > On 1/3/24 14:19, AngeloGioacchino Del Regno wrote:
> > > Il 02/01/24 09:12, Pin-yen Lin ha scritto:
> > >> Introduce a new need_pm_runtime variable to mtk_clk_desc to indicate
> > >> this clock needs a runtime PM get on the clock controller during the
> > >> probing stage.
> > >>
> > >> Signed-off-by: Pin-yen Lin <treapking@...omium.org>
> > >
> > > Hello Pin-yen,
> > >
> > > We have experienced something similar, but it was really hard to reproduce after
> > > some changes.
> > >
> > > In an effort to try to solve this issue (but again, reproducing is really hard),
> > > Eugen has sent a commit in the hope that someone else found a way to easily
> > > reproduce. Please look at [1].
> > >
> > > I'm also adding Eugen to the Cc's of this email.
> > >
> > > Cheers,
> > > Angelo
> > >
> > > [1]:
> > > https://patchwork.kernel.org/project/linux-pm/patch/20231225133615.78993-1-eugen.hristev@collabora.com/
> >
> > Hello Pin-yen,
> >
> > Can you try my patch and let me know if this changes anything for you ?
> >
> > If it does not change anything, can you also try this one as well ? It's another
> > attempt to fix the synchronization with genpd.
> >
> > https://lore.kernel.org/linux-arm-kernel/20231129113120.4907-1-eugen.hristev@collabora.com/
> >
> > Thanks,
> > Eugen

Hi Eugen and Angelo,

After the offline discussion with Chen-yu, we think this series is
solving a different issue from the patches you mentioned. This one is
trying to resolve a deadlock in the probe stage, and more details can
be found in the commit message of the next patch. The referenced
patches seem to be fixing other race conditions on powering on/off the
power domain. Sorry for adding the wrong commit message and maybe
leading to incorrect understanding on this series.

By the way, sorry for the top posting in the previous mail.

Regards,
Pin-yen
> >
> > >
> > >> ---
> > >>
> > >> Changes in v2:
> > >> - Fix the order of error handling
> > >> - Update the commit message and add a comment before the runtime PM call
> > >>
> > >>   drivers/clk/mediatek/clk-mtk.c | 15 +++++++++++++++
> > >>   drivers/clk/mediatek/clk-mtk.h |  2 ++
> > >>   2 files changed, 17 insertions(+)
> > >>
> > >> diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c
> > >> index 2e55368dc4d8..c31e535909c8 100644
> > >> --- a/drivers/clk/mediatek/clk-mtk.c
> > >> +++ b/drivers/clk/mediatek/clk-mtk.c
> > >> @@ -13,6 +13,7 @@
> > >>   #include <linux/of.h>
> > >>   #include <linux/of_address.h>
> > >>   #include <linux/platform_device.h>
> > >> +#include <linux/pm_runtime.h>
> > >>   #include <linux/slab.h>
> > >>
> > >>   #include "clk-mtk.h"
> > >> @@ -494,6 +495,14 @@ static int __mtk_clk_simple_probe(struct platform_device *pdev,
> > >>                      return IS_ERR(base) ? PTR_ERR(base) : -ENOMEM;
> > >>      }
> > >>
> > >> +
> > >> +    if (mcd->need_runtime_pm) {
> > >> +            devm_pm_runtime_enable(&pdev->dev);
> > >> +            r = pm_runtime_resume_and_get(&pdev->dev);
> > >> +            if (r)
> > >> +                    return r;
> > >> +    }
> > >> +
> > >>      /* Calculate how many clk_hw_onecell_data entries to allocate */
> > >>      num_clks = mcd->num_clks + mcd->num_composite_clks;
> > >>      num_clks += mcd->num_fixed_clks + mcd->num_factor_clks;
> > >> @@ -574,6 +583,9 @@ static int __mtk_clk_simple_probe(struct platform_device *pdev,
> > >>                      goto unregister_clks;
> > >>      }
> > >>
> > >> +    if (mcd->need_runtime_pm)
> > >> +            pm_runtime_put(&pdev->dev);
> > >> +
> > >>      return r;
> > >>
> > >>   unregister_clks:
> > >> @@ -604,6 +616,9 @@ static int __mtk_clk_simple_probe(struct platform_device *pdev,
> > >>   free_base:
> > >>      if (mcd->shared_io && base)
> > >>              iounmap(base);
> > >> +
> > >> +    if (mcd->need_runtime_pm)
> > >> +            pm_runtime_put(&pdev->dev);
> > >>      return r;
> > >>   }
> > >>
> > >> diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h
> > >> index 22096501a60a..c17fe1c2d732 100644
> > >> --- a/drivers/clk/mediatek/clk-mtk.h
> > >> +++ b/drivers/clk/mediatek/clk-mtk.h
> > >> @@ -237,6 +237,8 @@ struct mtk_clk_desc {
> > >>
> > >>      int (*clk_notifier_func)(struct device *dev, struct clk *clk);
> > >>      unsigned int mfg_clk_idx;
> > >> +
> > >> +    bool need_runtime_pm;
> > >>   };
> > >>
> > >>   int mtk_clk_pdev_probe(struct platform_device *pdev);
> > >
> > >
> > >
> > >
> >

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ