Re: [PATCH v4, part3 11/15] mm: use a dedicated lock to protect totalram_pagesand zone->managed_pages

From: Jiang Liu
Date: Mon Apr 08 2013 - 12:06:13 EST


On 04/08/2013 09:39 PM, Rik van Riel wrote:
> On 04/06/2013 09:55 AM, Jiang Liu wrote:
>
>> @@ -5186,6 +5189,22 @@ early_param("movablecore", cmdline_parse_movablecore);
>>
>> #endif /* CONFIG_HAVE_MEMBLOCK_NODE_MAP */
>>
>> +void adjust_managed_page_count(struct page *page, long count)
>> +{
>> + bool lock = (system_state != SYSTEM_BOOTING);
>> +
>> + /* No need to acquire the lock during boot */
>> + if (lock)
>> + spin_lock(&managed_page_count_lock);
>> +
>> + page_zone(page)->managed_pages += count;
>> + totalram_pages += count;
>> +
>> + if (lock)
>> + spin_unlock(&managed_page_count_lock);
>> +}
>
> While I agree the boot code currently does not need the lock, is
> there any harm to removing that conditional?
>
> That would simplify the code, and protect against possible future
> cleverness of initializing multiple memory things simultaneously.
>
Hi Rik,
Thanks for you comments.
I'm OK with that. Acquiring/releasing the lock should be lightweight
because there shouldn't be contention during boot. Will remove the logic in
next version.
Regards!
Gerry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/