On 2016/3/18 22:10, Vlastimil Babka wrote:
OK, here it is. Hanjun can you please retest this, as I'm not sure if you hadThanks in advance!
Oh, ok, will try to send proper patch, once I figure out what to write in
the changelog :)
I tested this new patch with stress for more than one hour, and it works!
Since Lucas has comments on it, I'm willing to test further versions if needed.
One minor comments below,
the same code due to the followup one-liner patches in the thread. Lucas, see if[...]
it helps with your issue as well. Laura and Joonsoo, please also test and review
and check changelog if my perception of the problem is accurate :)
Thanks
+ if (max_order < MAX_ORDER) {
+ /* If we are here, it means order is >= pageblock_order.
+ * We want to prevent merge between freepages on isolate
+ * pageblock and normal pageblock. Without this, pageblock
+ * isolation could cause incorrect freepage or CMA accounting.
+ *
+ * We don't want to hit this code for the more frequent
+ * low-order merging.
+ */
+ if (unlikely(has_isolate_pageblock(zone))) {
In the first version of your patch, it's
+ if (IS_ENABLED(CONFIG_CMA) &&
+ unlikely(has_isolate_pageblock(zone))) {
Why remove the IS_ENABLED(CONFIG_CMA) in the new version?
Thanks
Hanjun