All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: speck@linutronix.de
Subject: Re: [PATCH v5 22/27] MDSv5 24
Date: Tue, 22 Jan 2019 19:56:20 +0100 (CET)	[thread overview]
Message-ID: <alpine.DEB.2.21.1901221858480.1628@nanos.tec.linutronix.de> (raw)
In-Reply-To: <20190122175614.GV6118@tassilo.jf.intel.com>

On Tue, 22 Jan 2019, speck for Andi Kleen wrote:
> On Tue, Jan 22, 2019 at 05:09:05PM +0100, speck for Thomas Gleixner wrote:
> At least in my limited testing the patch doesn't cause that
> actually, even though it may be counterintuitive.
> 
> See the numbers for Chrome for example in the last EBPF patch. That's
> a complex workload with many context switches, and it gets
> a clear roughly every third syscall

I'd rather see numbers with the switch_to hackery actually using
thread_info::flags.

> So this only leaves some latency sensitive workloads,
> which cannot mitigate interrupts, but the interrupt handlers for those can
> be fixed over time based on profiling results. Overall I suspect it
> will be only a small subset of the total number of drivers.

Ah, and who is going to that analysis and who is going to fix that?

> Of course that really needs to be validated with more testing.
> 
> > The only sane way IMO is to have mds=cond just handle context switching and
> > then have proper
> 
> It's only sane if you have a good way to find and maintain all these places.
> 
> So far nobody has proposed a scalable way to do that. I personally
> don't know how to do it. 

If you look at the interrupts which actually are related to data which
might be sensible, then you'll notice that most of them do absolutely
nothing except scheduling softirqs, worker threads etc. The actual data
handling happens there. If it's a worker thread, then the context switch
covers it.

Softirqs are a different story, but most of that is probably networking and
perhaps tasklets.

Just for the numbers:

   hrtimer_init():    170 instances
   timer_setup():    1129 instances
   DEFINE_TIMER():     46 instances
   tasklet_init():    361 instances
   request.*irq():   1462 instances

Now just for request_irq. Removing all threaded interrupt requests and only
looking at drivers reduces the number to 1118. Just going through the
matching files and removing the obvious non x86 and non interesting drivers
which obviously do not touch sensititve data, thermal, watchdog and lots of
others, reduces the number to less than 500. Remove 185 instances of
drivers/net/ethernet which all do merily napi_schedule() then it shrinks
very fast to something which can be easily managed to look at.

Thanks,

	tglx

  reply	other threads:[~2019-01-22 18:56 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-19  0:50 [MODERATED] [PATCH v5 00/27] MDSv5 19 Andi Kleen
2019-01-19  0:50 ` [MODERATED] [PATCH v5 01/27] MDSv5 26 Andi Kleen
2019-01-22  4:17   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-22 12:46   ` Thomas Gleixner
2019-01-19  0:50 ` [MODERATED] [PATCH v5 02/27] MDSv5 14 Andi Kleen
2019-01-22  4:20   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-22 12:51   ` Thomas Gleixner
2019-01-19  0:50 ` [MODERATED] [PATCH v5 03/27] MDSv5 16 Andi Kleen
2019-01-22  4:23   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-22 12:55   ` Thomas Gleixner
2019-01-27 21:58   ` Thomas Gleixner
2019-01-28  3:30     ` [MODERATED] " Andi Kleen
2019-01-19  0:50 ` [MODERATED] [PATCH v5 04/27] MDSv5 15 Andi Kleen
2019-01-22  4:33   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-22 12:59   ` Thomas Gleixner
2019-01-19  0:50 ` [MODERATED] [PATCH v5 05/27] MDSv5 21 Andi Kleen
2019-01-22  4:35   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-22 13:01   ` Thomas Gleixner
2019-02-21 12:06   ` Thomas Gleixner
2019-01-19  0:50 ` [MODERATED] [PATCH v5 06/27] MDSv5 18 Andi Kleen
2019-01-21 22:41   ` [MODERATED] " Josh Poimboeuf
2019-01-22  1:16     ` Andi Kleen
2019-01-19  0:50 ` [MODERATED] [PATCH v5 07/27] MDSv5 0 Andi Kleen
2019-01-22  4:39   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-27 22:09   ` Thomas Gleixner
2019-01-28  3:33     ` [MODERATED] " Andi Kleen
2019-01-28  8:29       ` Thomas Gleixner
2019-02-13 22:26   ` [MODERATED] " Tyler Hicks
2019-01-19  0:50 ` [MODERATED] [PATCH v5 08/27] MDSv5 13 Andi Kleen
2019-01-22  4:40   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-19  0:50 ` [MODERATED] [PATCH v5 09/27] MDSv5 23 Andi Kleen
2019-01-22  4:56   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-22  7:26   ` Greg KH
2019-01-22 13:07   ` Thomas Gleixner
2019-01-19  0:50 ` [MODERATED] [PATCH v5 10/27] MDSv5 7 Andi Kleen
2019-01-19  0:50 ` [MODERATED] [PATCH v5 11/27] MDSv5 2 Andi Kleen
2019-01-22 13:11   ` Thomas Gleixner
2019-01-19  0:50 ` [MODERATED] [PATCH v5 12/27] MDSv5 6 Andi Kleen
2019-01-22 14:01   ` Thomas Gleixner
2019-01-22 15:42     ` Thomas Gleixner
2019-01-22 18:01     ` [MODERATED] " Andi Kleen
2019-01-19  0:50 ` [MODERATED] [PATCH v5 13/27] MDSv5 17 Andi Kleen
2019-01-19  0:50 ` [MODERATED] [PATCH v5 14/27] MDSv5 3 Andi Kleen
2019-01-22  4:48   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-22 15:58   ` Thomas Gleixner
2019-01-22 17:57     ` Thomas Gleixner
2019-01-23  1:35       ` [MODERATED] " Andi Kleen
2019-01-23  9:27         ` Thomas Gleixner
2019-01-23 16:02           ` [MODERATED] " Andi Kleen
2019-01-23 22:40             ` Josh Poimboeuf
2019-01-23 22:57               ` Josh Poimboeuf
2019-01-24  0:25                 ` Josh Poimboeuf
2019-01-24  2:26               ` Andi Kleen
2019-01-24 12:04             ` Thomas Gleixner
2019-01-28  3:42               ` [MODERATED] " Andi Kleen
2019-01-28  8:33                 ` Thomas Gleixner
2019-02-16  2:00       ` [MODERATED] " Andi Kleen
2019-02-16 10:32         ` Thomas Gleixner
2019-02-16 16:58           ` [MODERATED] " Andi Kleen
2019-02-16 17:12             ` Andi Kleen
2019-01-19  0:50 ` [MODERATED] [PATCH v5 15/27] MDSv5 1 Andi Kleen
2019-01-22  4:48   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-19  0:50 ` [MODERATED] [PATCH v5 16/27] MDSv5 10 Andi Kleen
2019-01-22  4:54   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-22  7:33   ` Greg KH
2019-01-19  0:50 ` [MODERATED] [PATCH v5 17/27] MDSv5 9 Andi Kleen
2019-01-19  0:50 ` [MODERATED] [PATCH v5 18/27] MDSv5 8 Andi Kleen
2019-01-22  5:07   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-19  0:50 ` [MODERATED] [PATCH v5 19/27] MDSv5 12 Andi Kleen
2019-01-22  5:09   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-19  0:50 ` [MODERATED] [PATCH v5 20/27] MDSv5 27 Andi Kleen
2019-01-19  0:50 ` [MODERATED] [PATCH v5 21/27] MDSv5 20 Andi Kleen
2019-01-22  5:11   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-19  0:50 ` [MODERATED] [PATCH v5 22/27] MDSv5 24 Andi Kleen
2019-01-21 21:24   ` [MODERATED] " Linus Torvalds
2019-01-22  1:22     ` Andi Kleen
2019-01-22 16:09       ` Thomas Gleixner
2019-01-22 17:56         ` [MODERATED] " Andi Kleen
2019-01-22 18:56           ` Thomas Gleixner [this message]
2019-01-23  1:39             ` Andi Kleen
2019-01-23  6:39               ` Greg KH
2019-01-24  9:55               ` Thomas Gleixner
2019-01-19  0:50 ` [MODERATED] [PATCH v5 23/27] MDSv5 22 Andi Kleen
2019-01-19  0:50 ` [MODERATED] [PATCH v5 24/27] MDSv5 5 Andi Kleen
2019-01-21 21:20   ` [MODERATED] " Linus Torvalds
2019-01-19  0:50 ` [MODERATED] [PATCH v5 25/27] MDSv5 4 Andi Kleen
2019-01-22  5:15   ` [MODERATED] " Konrad Rzeszutek Wilk
2019-01-19  0:50 ` [MODERATED] [PATCH v5 26/27] MDSv5 11 Andi Kleen
2019-01-19  0:50 ` [MODERATED] [PATCH v5 27/27] MDSv5 25 Andi Kleen
2019-01-21 21:18 ` [MODERATED] Re: [PATCH v5 00/27] MDSv5 19 Linus Torvalds
2019-01-22  1:14   ` Andi Kleen
2019-01-22  7:38     ` Greg KH
2019-01-28 11:34 ` Thomas Gleixner
2019-02-13 22:33   ` [MODERATED] " Tyler Hicks
2019-02-14 13:09     ` Jiri Kosina
2019-02-14 13:51       ` Greg KH
2019-02-14 16:53       ` Andi Kleen
2019-02-14 18:00         ` Greg KH
2019-02-14 18:05           ` Andrew Cooper
2019-02-14 18:33           ` Andi Kleen
2019-02-14 18:52             ` Greg KH
2019-02-14 19:50               ` Andi Kleen
2019-02-15  7:06                 ` Greg KH
2019-02-15 13:06                   ` Andi Kleen
2019-02-19 12:12                     ` Greg KH

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=alpine.DEB.2.21.1901221858480.1628@nanos.tec.linutronix.de \
    --to=tglx@linutronix.de \
    --cc=speck@linutronix.de \
    /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: link
Be 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.