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 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. -- Mel Gorman SUSE Labs -- 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>