mm, page_alloc: remove unnecessary taking of a seqlock when cpusets are disabled
authorMel Gorman <[email protected]>
Sat, 7 Nov 2015 00:28:15 +0000 (16:28 -0800)
committerLinus Torvalds <[email protected]>
Sat, 7 Nov 2015 01:50:42 +0000 (17:50 -0800)
There is a seqcounter that protects against spurious allocation failures
when a task is changing the allowed nodes in a cpuset.  There is no need
to check the seqcounter until a cpuset exists.

Signed-off-by: Mel Gorman <[email protected]>
Acked-by: Christoph Lameter <[email protected]>
Acked-by: David Rientjes <[email protected]>
Acked-by: Vlastimil Babka <[email protected]>
Acked-by: Michal Hocko <[email protected]>
Acked-by: Johannes Weiner <[email protected]>
Cc: Vitaly Wool <[email protected]>
Cc: Rik van Riel <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
include/linux/cpuset.h

index 5a1311942358bd433899f63e51751bce493e7f37..85a868ccb4931d374a1ee9fb4e4036bb84399561 100644 (file)
@@ -104,6 +104,9 @@ extern void cpuset_print_current_mems_allowed(void);
  */
 static inline unsigned int read_mems_allowed_begin(void)
 {
+       if (!cpusets_enabled())
+               return 0;
+
        return read_seqcount_begin(&current->mems_allowed_seq);
 }
 
@@ -115,6 +118,9 @@ static inline unsigned int read_mems_allowed_begin(void)
  */
 static inline bool read_mems_allowed_retry(unsigned int seq)
 {
+       if (!cpusets_enabled())
+               return false;
+
        return read_seqcount_retry(&current->mems_allowed_seq, seq);
 }