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
| ||
|
Message-ID: <CAL+tcoDY11sSO8_h1DKCWgAXOjQwM1JR5cx7cpmotWVj28m_fg@mail.gmail.com> Date: Mon, 8 May 2023 12:08:04 +0800 From: Jason Xing <kerneljasonxing@...il.com> To: Liu Jian <liujian56@...wei.com> Cc: corbet@....net, paulmck@...nel.org, frederic@...nel.org, quic_neeraju@...cinc.com, joel@...lfernandes.org, josh@...htriplett.org, boqun.feng@...il.com, rostedt@...dmis.org, mathieu.desnoyers@...icios.com, jiangshanlai@...il.com, qiang1.zhang@...el.com, jstultz@...gle.com, tglx@...utronix.de, sboyd@...nel.org, davem@...emloft.net, edumazet@...gle.com, kuba@...nel.org, pabeni@...hat.com, peterz@...radead.org, frankwoo@...gle.com, Rhinewuwu@...gle.com, linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org, rcu@...r.kernel.org, netdev@...r.kernel.org Subject: Re: [PATCH 2/9] softirq: Use sched_clock() based timeout On Fri, May 5, 2023 at 7:25 PM Liu Jian <liujian56@...wei.com> wrote: > > From: Peter Zijlstra <peterz@...radead.org> > > Replace the jiffies based timeout with a sched_clock() based one. > > Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org> > Signed-off-by: Liu Jian <liujian56@...wei.com> > --- > kernel/softirq.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/kernel/softirq.c b/kernel/softirq.c > index bff5debf6ce6..59f16a9af5d1 100644 > --- a/kernel/softirq.c > +++ b/kernel/softirq.c > @@ -27,6 +27,7 @@ > #include <linux/tick.h> > #include <linux/irq.h> > #include <linux/wait_bit.h> > +#include <linux/sched/clock.h> > > #include <asm/softirq_stack.h> > > @@ -489,7 +490,7 @@ asmlinkage __visible void do_softirq(void) > * we want to handle softirqs as soon as possible, but they > * should not be able to lock up the box. > */ > -#define MAX_SOFTIRQ_TIME msecs_to_jiffies(2) > +#define MAX_SOFTIRQ_TIME (2 * NSEC_PER_MSEC) I wonder if it affects those servers that set HZ to some different values rather than 1000 as default. Thanks, Jason > #define MAX_SOFTIRQ_RESTART 10 > > #ifdef CONFIG_TRACE_IRQFLAGS > @@ -527,9 +528,9 @@ static inline void lockdep_softirq_end(bool in_hardirq) { } > > asmlinkage __visible void __softirq_entry __do_softirq(void) > { > - unsigned long end = jiffies + MAX_SOFTIRQ_TIME; > unsigned long old_flags = current->flags; > int max_restart = MAX_SOFTIRQ_RESTART; > + u64 start = sched_clock(); > struct softirq_action *h; > unsigned long pending; > unsigned int vec_nr; > @@ -584,7 +585,7 @@ asmlinkage __visible void __softirq_entry __do_softirq(void) > > pending = local_softirq_pending(); > if (pending) { > - if (time_before(jiffies, end) && !need_resched() && > + if (sched_clock() - start < MAX_SOFTIRQ_TIME && !need_resched() && > --max_restart) > goto restart; > > -- > 2.34.1 > >
Powered by blists - more mailing lists