From: Geert Uytterhoeven <geert+renesas@glider.be> To: Michael Turquette <mturquette@baylibre.com>, Stephen Boyd <sboyd@kernel.org>, Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>, Magnus Damm <magnus.damm@gmail.com>, Joerg Roedel <joro@8bytes.org>, Robin Murphy <robin.murphy@arm.com> Cc: Tomasz Figa <tomasz.figa@gmail.com>, Sylwester Nawrocki <s.nawrocki@samsung.com>, Will Deacon <will@kernel.org>, Arnd Bergmann <arnd@arndb.de>, Wolfram Sang <wsa+renesas@sang-engineering.com>, Dejin Zheng <zhengdejin5@gmail.com>, Kai-Heng Feng <kai.heng.feng@canonical.com>, Nicholas Piggin <npiggin@gmail.com>, Heiko Carstens <hca@linux.ibm.com>, Peter Zijlstra <peterz@infradead.org>, Russell King <linux@armlinux.org.uk>, John Stultz <jstultz@google.com>, Thomas Gleixner <tglx@linutronix.de>, Tony Lindgren <tony@atomide.com>, Krzysztof Kozlowski <krzk@kernel.org>, Tero Kristo <tero.kristo@linux.intel.com>, Ulf Hansson <ulf.hansson@linaro.org>, "Rafael J . Wysocki" <rafael.j.wysocki@intel.com>, Vincent Guittot <vincent.guittot@linaro.org>, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-renesas-soc@vger.kernel.org, linux-pm@vger.kernel.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Geert Uytterhoeven <geert+renesas@glider.be> Subject: [PATCH v3 0/7] iopoll: Busy loop and timeout improvements + conversions Date: Fri, 2 Jun 2023 10:50:35 +0200 [thread overview] Message-ID: <cover.1685692810.git.geert+renesas@glider.be> (raw) Hi all, When implementing a polling loop, a common review comment is to use one of the read*_poll_timeout*() helpers. Unfortunately this is not always possible, or might introduce subtle bugs. This patch series aims to improve these helpers, so they can gain wider use. 1. The first patch improves busy-looping behavior of both the atomic and non-atomic read*_poll_timeout*() helpers. The issue addressed by this patch was discussed before[1-2], but I am not aware of any patches moving forward. 2. The second patch fixes timeout handling of the atomic variants. Some of the issues addressed by this patch were mitigated in various places[3-5], and some of these findings may be of interest to the authors of [6-8]. The first two patches were sent before, and already received some acks and reviews. I plan to queue these in an immutable and tagged branch after the weekend, for consumption by myself, and by other interested parties. The last five patches are new, and convert several Renesas-specific drivers from open-coded loops to the fixed read*_poll_timeout_atomic() helpers: - I plan to queue the clk and soc patches in renesas-devel resp. renesas-clk for v6.5, - The IOMMU patch can wait for v6.6, unless the IOMMU maintainers already want to merge the immutable branch, too. Thanks for your comments! Changes compared to v2[9]: - Add Acked-by, Reviewed-by, - Add comment about not using timekeeping, and its impact, - Add conversion patches 3-7. Changes compared to v1[10]: - Add Acked-by, - Add compiler barrier and inlining explanation (thanks, Peter!), - Add patch [2/2]. Thanks for your comments! [1] "Re: [PATCH 6/7] clk: renesas: rcar-gen3: Add custom clock for PLLs" https://lore.kernel.org/all/CAMuHMdWUEhs=nwP+a0vO2jOzkq-7FEOqcJ+SsxAGNXX1PQ2KMA@mail.gmail.com [2] "Re: [PATCH v2] clk: samsung: Prevent potential endless loop in the PLL set_rate ops" https://lore.kernel.org/all/20200811164628.GA7958@kozik-lap [3] b3e9431854e8f305 ("bus: ti-sysc: Fix timekeeping_suspended warning on resume") [4] 44a9e78f9242872c ("clk: samsung: Prevent potential endless loop in the PLL ops") [5] 3d8598fb9c5a7783 ("clk: ti: clkctrl: use fallback udelay approach if timekeeping is suspended") [6] bd40cbb0e3b37a4d ("PM: domains: Move genpd's time-accounting to ktime_get_mono_fast_ns()") [7] c155f6499f9797f2 ("PM-runtime: Switch accounting over to ktime_get_mono_fast_ns()") [8] 15efb47dc560849d ("PM-runtime: Fix deadlock with ktime_get()") [9] https://lore.kernel.org/all/cover.1683722688.git.geert+renesas@glider.be [10] https://lore.kernel.org/r/8d492ee4a391bd089a01c218b0b4e05cf8ea593c.1674729407.git.geert+renesas@glider.be/ Geert Uytterhoeven (7): iopoll: Call cpu_relax() in busy loops iopoll: Do not use timekeeping in read_poll_timeout_atomic() clk: renesas: cpg-mssr: Convert to readl_poll_timeout_atomic() clk: renesas: mstp: Convert to readl_poll_timeout_atomic() clk: renesas: rzg2l: Convert to readl_poll_timeout_atomic() soc: renesas: rmobile-sysc: Convert to readl_poll_timeout_atomic() iommu/ipmmu-vmsa: Convert to read_poll_timeout_atomic() drivers/clk/renesas/clk-mstp.c | 18 ++++++--------- drivers/clk/renesas/renesas-cpg-mssr.c | 31 +++++++++----------------- drivers/clk/renesas/rzg2l-cpg.c | 16 +++++-------- drivers/iommu/ipmmu-vmsa.c | 15 +++++-------- drivers/soc/renesas/rmobile-sysc.c | 31 +++++++++----------------- include/linux/iopoll.h | 24 +++++++++++++++----- 6 files changed, 58 insertions(+), 77 deletions(-) -- 2.34.1 Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
WARNING: multiple messages have this Message-ID (diff)
From: Geert Uytterhoeven <geert+renesas@glider.be> To: Michael Turquette <mturquette@baylibre.com>, Stephen Boyd <sboyd@kernel.org>, Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>, Magnus Damm <magnus.damm@gmail.com>, Joerg Roedel <joro@8bytes.org>, Robin Murphy <robin.murphy@arm.com> Cc: Tomasz Figa <tomasz.figa@gmail.com>, Sylwester Nawrocki <s.nawrocki@samsung.com>, Will Deacon <will@kernel.org>, Arnd Bergmann <arnd@arndb.de>, Wolfram Sang <wsa+renesas@sang-engineering.com>, Dejin Zheng <zhengdejin5@gmail.com>, Kai-Heng Feng <kai.heng.feng@canonical.com>, Nicholas Piggin <npiggin@gmail.com>, Heiko Carstens <hca@linux.ibm.com>, Peter Zijlstra <peterz@infradead.org>, Russell King <linux@armlinux.org.uk>, John Stultz <jstultz@google.com>, Thomas Gleixner <tglx@linutronix.de>, Tony Lindgren <tony@atomide.com>, Krzysztof Kozlowski <krzk@kernel.org>, Tero Kristo <tero.kristo@linux.intel.com>, Ulf Hansson <ulf.hansson@linaro.org>, "Rafael J . Wysocki" <rafael.j.wysocki@intel.com>, Vincent Guittot <vincent.guittot@linaro.org>, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-renesas-soc@vger.kernel.org, linux-pm@vger.kernel.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, Geert Uytterhoeven <geert+renesas@glider.be> Subject: [PATCH v3 0/7] iopoll: Busy loop and timeout improvements + conversions Date: Fri, 2 Jun 2023 10:50:35 +0200 [thread overview] Message-ID: <cover.1685692810.git.geert+renesas@glider.be> (raw) Hi all, When implementing a polling loop, a common review comment is to use one of the read*_poll_timeout*() helpers. Unfortunately this is not always possible, or might introduce subtle bugs. This patch series aims to improve these helpers, so they can gain wider use. 1. The first patch improves busy-looping behavior of both the atomic and non-atomic read*_poll_timeout*() helpers. The issue addressed by this patch was discussed before[1-2], but I am not aware of any patches moving forward. 2. The second patch fixes timeout handling of the atomic variants. Some of the issues addressed by this patch were mitigated in various places[3-5], and some of these findings may be of interest to the authors of [6-8]. The first two patches were sent before, and already received some acks and reviews. I plan to queue these in an immutable and tagged branch after the weekend, for consumption by myself, and by other interested parties. The last five patches are new, and convert several Renesas-specific drivers from open-coded loops to the fixed read*_poll_timeout_atomic() helpers: - I plan to queue the clk and soc patches in renesas-devel resp. renesas-clk for v6.5, - The IOMMU patch can wait for v6.6, unless the IOMMU maintainers already want to merge the immutable branch, too. Thanks for your comments! Changes compared to v2[9]: - Add Acked-by, Reviewed-by, - Add comment about not using timekeeping, and its impact, - Add conversion patches 3-7. Changes compared to v1[10]: - Add Acked-by, - Add compiler barrier and inlining explanation (thanks, Peter!), - Add patch [2/2]. Thanks for your comments! [1] "Re: [PATCH 6/7] clk: renesas: rcar-gen3: Add custom clock for PLLs" https://lore.kernel.org/all/CAMuHMdWUEhs=nwP+a0vO2jOzkq-7FEOqcJ+SsxAGNXX1PQ2KMA@mail.gmail.com [2] "Re: [PATCH v2] clk: samsung: Prevent potential endless loop in the PLL set_rate ops" https://lore.kernel.org/all/20200811164628.GA7958@kozik-lap [3] b3e9431854e8f305 ("bus: ti-sysc: Fix timekeeping_suspended warning on resume") [4] 44a9e78f9242872c ("clk: samsung: Prevent potential endless loop in the PLL ops") [5] 3d8598fb9c5a7783 ("clk: ti: clkctrl: use fallback udelay approach if timekeeping is suspended") [6] bd40cbb0e3b37a4d ("PM: domains: Move genpd's time-accounting to ktime_get_mono_fast_ns()") [7] c155f6499f9797f2 ("PM-runtime: Switch accounting over to ktime_get_mono_fast_ns()") [8] 15efb47dc560849d ("PM-runtime: Fix deadlock with ktime_get()") [9] https://lore.kernel.org/all/cover.1683722688.git.geert+renesas@glider.be [10] https://lore.kernel.org/r/8d492ee4a391bd089a01c218b0b4e05cf8ea593c.1674729407.git.geert+renesas@glider.be/ Geert Uytterhoeven (7): iopoll: Call cpu_relax() in busy loops iopoll: Do not use timekeeping in read_poll_timeout_atomic() clk: renesas: cpg-mssr: Convert to readl_poll_timeout_atomic() clk: renesas: mstp: Convert to readl_poll_timeout_atomic() clk: renesas: rzg2l: Convert to readl_poll_timeout_atomic() soc: renesas: rmobile-sysc: Convert to readl_poll_timeout_atomic() iommu/ipmmu-vmsa: Convert to read_poll_timeout_atomic() drivers/clk/renesas/clk-mstp.c | 18 ++++++--------- drivers/clk/renesas/renesas-cpg-mssr.c | 31 +++++++++----------------- drivers/clk/renesas/rzg2l-cpg.c | 16 +++++-------- drivers/iommu/ipmmu-vmsa.c | 15 +++++-------- drivers/soc/renesas/rmobile-sysc.c | 31 +++++++++----------------- include/linux/iopoll.h | 24 +++++++++++++++----- 6 files changed, 58 insertions(+), 77 deletions(-) -- 2.34.1 Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2023-06-02 8:52 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-06-02 8:50 Geert Uytterhoeven [this message] 2023-06-02 8:50 ` [PATCH v3 0/7] iopoll: Busy loop and timeout improvements + conversions Geert Uytterhoeven 2023-06-02 8:50 ` [PATCH v3 1/7] iopoll: Call cpu_relax() in busy loops Geert Uytterhoeven 2023-06-02 8:50 ` Geert Uytterhoeven 2023-06-02 8:50 ` [PATCH v3 2/7] iopoll: Do not use timekeeping in read_poll_timeout_atomic() Geert Uytterhoeven 2023-06-02 8:50 ` Geert Uytterhoeven 2024-03-26 1:31 ` Zong Li 2024-03-26 1:31 ` Zong Li 2024-04-18 9:20 ` Geert Uytterhoeven 2024-04-18 9:20 ` Geert Uytterhoeven 2023-06-02 8:50 ` [PATCH v3 3/7] clk: renesas: cpg-mssr: Convert to readl_poll_timeout_atomic() Geert Uytterhoeven 2023-06-02 8:50 ` Geert Uytterhoeven 2023-06-02 8:50 ` [PATCH v3 4/7] clk: renesas: mstp: " Geert Uytterhoeven 2023-06-02 8:50 ` Geert Uytterhoeven 2023-06-02 8:50 ` [PATCH v3 5/7] clk: renesas: rzg2l: " Geert Uytterhoeven 2023-06-02 8:50 ` Geert Uytterhoeven 2023-06-02 8:50 ` [PATCH v3 6/7] soc: renesas: rmobile-sysc: " Geert Uytterhoeven 2023-06-02 8:50 ` Geert Uytterhoeven 2023-06-02 13:51 ` kernel test robot 2023-06-02 13:51 ` kernel test robot 2023-06-05 13:15 ` Geert Uytterhoeven 2023-06-05 13:15 ` Geert Uytterhoeven 2023-06-02 8:50 ` [PATCH v3 7/7] iommu/ipmmu-vmsa: Convert to read_poll_timeout_atomic() Geert Uytterhoeven 2023-06-02 8:50 ` Geert Uytterhoeven 2023-06-05 15:08 ` [PATCH v3 0/7] iopoll: Busy loop and timeout improvements + conversions Geert Uytterhoeven 2023-06-05 15:08 ` Geert Uytterhoeven
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cover.1685692810.git.geert+renesas@glider.be \ --to=geert+renesas@glider.be \ --cc=arnd@arndb.de \ --cc=hca@linux.ibm.com \ --cc=iommu@lists.linux.dev \ --cc=joro@8bytes.org \ --cc=jstultz@google.com \ --cc=kai.heng.feng@canonical.com \ --cc=krzk@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=linux-renesas-soc@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=magnus.damm@gmail.com \ --cc=mturquette@baylibre.com \ --cc=npiggin@gmail.com \ --cc=peterz@infradead.org \ --cc=rafael.j.wysocki@intel.com \ --cc=robin.murphy@arm.com \ --cc=s.nawrocki@samsung.com \ --cc=sboyd@kernel.org \ --cc=tero.kristo@linux.intel.com \ --cc=tglx@linutronix.de \ --cc=tomasz.figa@gmail.com \ --cc=tony@atomide.com \ --cc=ulf.hansson@linaro.org \ --cc=vincent.guittot@linaro.org \ --cc=will@kernel.org \ --cc=wsa+renesas@sang-engineering.com \ --cc=yoshihiro.shimoda.uh@renesas.com \ --cc=zhengdejin5@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.