On 2015/6/30 9:01, Kamezawa Hiroyuki wrote:
On 2015/06/30 8:11, Luck, Tony wrote:
@@ -814,7 +814,7 @@ int __init_memblock memblock_clear_hotplug(phys_addr_t base, phys_addr_t size)
*/
int __init_memblock memblock_mark_mirror(phys_addr_t base, phys_addr_t size)
{
- system_has_some_mirror = true;
+ static_key_slow_inc(&system_has_mirror);
return memblock_setclr_flag(base, size, 1, MEMBLOCK_MIRROR);
}
This generates some WARN_ON noise when called from efi_find_mirror():
It seems jump_label_init() is called after memory initialization. (init/main.c::start_kernel())
So, it may be difficut to use static_key function for our purpose because
kernel memory allocation may occur before jump_label is ready.
Thanks,
-Kame
Hi Kame,
How about like this? Use static bool in bootmem, and use jump label in buddy system.
This means we use two variable to do it.