Re: [RFC 4/4] mm, page_alloc: fix premature OOM when racing with cpuset mems update

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01/18/2017 08:12 AM, Hillf Danton wrote:

On Wednesday, January 18, 2017 6:16 AM Vlastimil Babka wrote:

@@ -3802,13 +3811,8 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
 	 * Also recalculate the starting point for the zonelist iterator or
 	 * we could end up iterating over non-eligible zones endlessly.
 	 */
Is the newly added comment still needed?

You're right that it's no longer true. I think we can even remove most of the zoneref trickery and non-NULL checks in the fastpath (as a cleanup patch on top), as the loop in get_page_from_freelist() should handle it just fine. IIRC Mel even did this in the microopt series, but I pointed out that NULL preferred_zoneref pointer would be dangerous in get_page_from_freelist(). We didn't realize that we check the wrong pointer (i.e. patch 1/4 here).

Vlastimil


-	if (unlikely(ac.nodemask != nodemask)) {
-no_zone:
+	if (unlikely(ac.nodemask != nodemask))
 		ac.nodemask = nodemask;
-		ac.preferred_zoneref = first_zones_zonelist(ac.zonelist,
-						ac.high_zoneidx, ac.nodemask);
-		/* If we have NULL preferred zone, slowpath wll handle that */
-	}

 	page = __alloc_pages_slowpath(alloc_mask, order, &ac);

--
2.11.0


--
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>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]