]> git.baikalelectronics.ru Git - kernel.git/commit
Revert "mm, page_alloc: only use per-cpu allocator for irq-safe requests"
authorMel Gorman <mgorman@techsingularity.net>
Thu, 20 Apr 2017 21:37:43 +0000 (14:37 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 20 Apr 2017 22:30:18 +0000 (15:30 -0700)
commit80b95847261373d05b8caea926102ee5c61c4492
treebe8888f6aa5fd72319414f5fae54bfebcb418387
parentf68541e8633450e824abd67f8a306dfe7f4bac45
Revert "mm, page_alloc: only use per-cpu allocator for irq-safe requests"

This reverts commit f323d9a65ff.

While the patch worked great for userspace allocations, the fact that
softirq loses the per-cpu allocator caused problems.  It needs to be
redone taking into account that a separate list is needed for hard/soft
IRQs or alternatively find a cheap way of detecting reentry due to an
interrupt.  Both are possible but sufficiently tricky that it shouldn't
be rushed.

Jesper had one method for allowing softirqs but reported that the cost
was high enough that it performed similarly to a plain revert.  His
figures for netperf TCP_STREAM were as follows

  Baseline v4.10.0  : 60316 Mbit/s
  Current 4.11.0-rc6: 47491 Mbit/s
  Jesper's patch    : 60662 Mbit/s
  This patch        : 60106 Mbit/s

As this is a regression, I wish to revert to noirq allocator for now and
go back to the drawing board.

Link: http://lkml.kernel.org/r/20170415145350.ixy7vtrzdzve57mh@techsingularity.net
Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
Reported-by: Tariq Toukan <ttoukan.linux@gmail.com>
Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/page_alloc.c