]> 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)
commit7236e772d55f9068076632e9dd45ee51e0dcf9f2
treebe8888f6aa5fd72319414f5fae54bfebcb418387
parentab0390a6c3a29004abf0a9ac5225ae9926c5d066
Revert "mm, page_alloc: only use per-cpu allocator for irq-safe requests"

This reverts commit 2da2a22c2e8.

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