• Greg Thelen's avatar
    mm: grab rcu read lock in move_pages() · a879bf58
    Greg Thelen authored
    The move_pages() usage of find_task_by_vpid() requires rcu_read_lock() to
    prevent free_pid() from reclaiming the pid.
    
    Without this patch, RCU warnings are printed in v2.6.38-rc4 move_pages()
    with:
    
      CONFIG_LOCKUP_DETECTOR=y
      CONFIG_PREEMPT=y
      CONFIG_LOCKDEP=y
      CONFIG_PROVE_LOCKING=y
      CONFIG_PROVE_RCU=y
    
    Previously, migrate_pages() went through a similar transformation
    replacing usage of tasklist_lock with rcu read lock:
    
      commit 55cfaa3c
      Author: Zeng Zhaoming <zengzm.kernel@gmail.com>
      Date:   Thu Dec 2 14:31:13 2010 -0800
    
          mm/mempolicy.c: add rcu read lock to protect pid structure
    
      commit 1e50df39
      Author: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Date:   Thu Jan 13 15:46:14 2011 -0800
    
          mempolicy: remove tasklist_lock from migrate_pages
    Signed-off-by: default avatarGreg Thelen <gthelen@google.com>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Minchan Kim <minchan.kim@gmail.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
    Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Zeng Zhaoming <zengzm.kernel@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    a879bf58
migrate.c 31.4 KB