Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965120AbeALSp3 (ORCPT + 1 other); Fri, 12 Jan 2018 13:45:29 -0500 Received: from mout.gmx.net ([212.227.15.18]:62590 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964967AbeALSp1 (ORCPT ); Fri, 12 Jan 2018 13:45:27 -0500 Message-ID: <1515782670.7007.3.camel@gmx.de> Subject: Re: [RFC 1/2] softirq: Defer net rx/tx processing to ksoftirqd context From: Mike Galbraith To: Linus Torvalds Cc: Peter Zijlstra , Eric Dumazet , Dmitry Safonov , Frederic Weisbecker , LKML , Dmitry Safonov <0x7f454c46@gmail.com>, Andrew Morton , David Miller , Frederic Weisbecker , Hannes Frederic Sowa , Ingo Molnar , "Levin, Alexander (Sasha Levin)" , Paolo Abeni , "Paul E. McKenney" , Radu Rendec , Rik van Riel , Stanislaw Gruszka , Thomas Gleixner , Wanpeng Li Date: Fri, 12 Jan 2018 19:44:30 +0100 In-Reply-To: <1515780912.21898.45.camel@gmx.de> References: <20180111163204.GE6176@hirez.programming.kicks-ass.net> <1515734588.10188.36.camel@gmx.de> <20180112101336.GT3040@hirez.programming.kicks-ass.net> <1515779049.21898.23.camel@gmx.de> <1515780912.21898.45.camel@gmx.de> Content-Type: text/plain; charset="ISO-8859-15" X-Mailer: Evolution 3.20.5 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:tUKgRLSKZ6JjoZnjNAAiFaOsm1Jl+vO8uIlk270ySHVfw5yh+3W R7nkaLYj2v4PsM6YPFJRk8WzDLCzgHws9a3Oes7Pc5IZiFOzDtBuWB3hmBOWTlOSwwCvrkl tLX5R6nAsbeCJcBFqMY6quSy7CtuZKSsLLQV8Htlc7iW5og6VIwRF8N5Vj2Os3dqD8Iaoig 1gSjlNn+eGCPqWnDFluRA== X-UI-Out-Filterresults: notjunk:1;V01:K0:LZn2SwT2LxA=:u4J33EphbZrGAdwVRf0WFx mony7cg4XA5rPedG112HRk+5e/EoFGh0Ws8bv38B9TQfNxqnwzIKMMUpFLPMiky20TSyYH1ve KiJhZIU4oPDPA8PvvWEm3LiPzneqDAQ3u88MHcLmxWJI7gxh3kxZx7llrcil89ROWKLgw9HVD s/E8vKSx0lzXMZDMPfIGAG2DECFb3cimIqsJIBEbwZB79WEaDGyWE2+c9iOmiZwpddA9t53ys 9wjEb/M/Z60avCWoYOUUaM9jOVquAfROo21OhpxGPyu2/m60aS2jGrHpb5vBj2/M7HjXlc+jI SedyEDRbMoHW7KIcVIlplWsOyaLC8M40btONb1eKZheI3+1RlXpeYx2xsONOair8z1KR4/JM/ TtbpOK68AXdnRZiPVStHr/xLT4O2uhmWir+Td/1ngmWMN576SJGQymRFvgkCenjWL+FeaXThg AqrfEx8Oa7UmWFL0A+ZUM3Hz+hI8AyF3gUCC+rhMsUlmSujkq+dPr0RhT9DYWuzZ5J3Ochg8B 3qjk1xwdKLUm0M+WXEwk6W/cOTO4Oatp0Da6cHsvc/na0evKD+IstpP8berdqJQO3uyC4IgvE cHnzqHEaM0o2SZ0e6wv6zI88yzS6bgCtCUZmYbxTy0slgX/Dubz2/YW2MMXKNWrvq3Z6+QkT0 R4RcrMaptClWPi90ocVStEOLeUpIwVqVrS9dUghjGFpyrx7VxR8J/qsL8PR30XiuMCehaXpxu KSd7Hk7SV8p9ipLyw1e60ubpsJdJ5/t33PBwxXE+ARjgOeSZsnsyZlST1mYyvO7JEkZ/p4ERa fpidLPTaPQX0H9VlRHZRedRNeW7UYClXfZKKEuvxY5DuWhwcfE= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On Fri, 2018-01-12 at 19:15 +0100, Mike Galbraith wrote: > On Fri, 2018-01-12 at 09:51 -0800, Linus Torvalds wrote: > > On Fri, Jan 12, 2018 at 9:44 AM, Mike Galbraith wrote: > > > > > > Nah, a misunderstanding happened. RT that still offers full threading > > > creates per-softirq threads per cpu. The regular trees split ksoftirqd > > > into only two threads per cpu, one processes timer/hrtimer softriqs, > > > the other processes the rest. > > > > Ok, that sounds like it should work, but it also sounds like it's very > > specific to RT itself. > > > > For example, the dvb issue was not about the timer softirqs, but about > > the tasklet ones. > > > > So maybe we wouldn't need to split it for _every_ softirq, but we'd > > need to split it more than just along the timer case. > > > > And it does sound a bit excessive to have ten fixed threads for every > > CPU. The days when tens of CPU's meant "huge system" are gone. These > > days it can be a phone. > > Yeah, it is excessive more often than not. You get to prioritize, and > segregate, which is nice, but you pay for it. BTW, much of the softirq load in RT is processed by the raising task. tbench_srv-6985 [000] d...112 293.902511: softirq_raise: vec=3 [action=NET_RX] tbench_srv-6985 [000] .....13 293.902511: softirq_entry: vec=3 [action=NET_RX] tbench_srv-6985 [000] .....13 293.902515: softirq_exit: vec=3 [action=NET_RX] tbench-6984 [003] d...112 293.902520: softirq_raise: vec=3 [action=NET_RX] tbench-6984 [003] .....13 293.902520: softirq_entry: vec=3 [action=NET_RX] tbench-6984 [003] .....13 293.902523: softirq_exit: vec=3 [action=NET_RX]