Hello,
On Tuesday, January 17, 2012 10:54 PM sandeep patil wrote:
I am running a CMA test where I keep allocating from a CMA region as long as the allocation fails due to lack of space.
However, I am seeing failures much before I expect them to happen. When the allocation fails, I see a warning coming from __alloc_contig_range(), because test_pages_isolated() returned "true".
The new retry code does try a new range and eventually succeeds.
(snipped)
From the log it looks like the warning showed up because page->private is set to MIGRATE_CMA instead of MIGRATE_ISOLATED.
I've also had a test case where it failed because (page_count() != 0)
This means that the page is temporarily used by someone else (like for example io subsystem or a driver).
Have you or anyone else seen this during the CMA testing?
Yes, we observed such issues and we are also working on fixing them. However we gave higher priority to get the basic CMA patches merged to mainline. Once this happen the above issues can be fixed incrementally.
Also, could this be because we are finding a page within (start, end) that actually belongs to a higher order Buddy block ?
No, such pages should be correctly handled.
Best regards