On Tue, 28 Mar 2017 10:32:19 +0300 Tariq Toukan <ttoukan.linux@xxxxxxxxx> wrote: > On 27/03/2017 4:32 PM, Mel Gorman wrote: > > On Mon, Mar 27, 2017 at 02:39:47PM +0200, Jesper Dangaard Brouer wrote: > >> On Mon, 27 Mar 2017 10:55:14 +0200 > >> Jesper Dangaard Brouer <brouer@xxxxxxxxxx> wrote: > >> > >>> A possible solution, would be use the local_bh_{disable,enable} instead > >>> of the {preempt_disable,enable} calls. But it is slower, using numbers > >>> from [1] (19 vs 11 cycles), thus the expected cycles saving is 38-19=19. > >>> > >>> The problematic part of using local_bh_enable is that this adds a > >>> softirq/bottom-halves rescheduling point (as it checks for pending > >>> BHs). Thus, this might affects real workloads. > >> > >> I implemented this solution in patch below... and tested it on mlx5 at > >> 50G with manually disabled driver-page-recycling. It works for me. > >> > >> To Mel, that do you prefer... a partial-revert or something like this? > >> > > > > If Tariq confirms it works for him as well, this looks far safer patch > > Great. > I will test Jesper's patch today in the afternoon. Good to hear :-) > > than having a dedicate IRQ-safe queue. Your concern about the BH > > scheduling point is valid but if it's proven to be a problem, there is > > still the option of a partial revert. I wanted to evaluate my own BH scheduling point concern, but I could not, because I ran into a softirq acct regression (which I bisected see[1]). AFAIK this should not affect Tariq's multi-TCP-stream test (netperf TCP stream testing works fine on my testlab). [1] http://lkml.kernel.org/r/20170328101403.34a82fbf@xxxxxxxxxx -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>