of: Keep the phandle cache around after boot
Phandle lookups still occur frequently after boot (like in the regulator subsystem), and they can be quite expensive if the device tree is complex. Lookups disable IRQs and have been observed to take over a millisecond on a mobile arm64 device, which is very bad for system latency. Keep the phandle cache around after boot to retain O(1) lookup times. Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com>
This commit is contained in:
parent
3f9503e8f6
commit
bbe528de02
@ -145,22 +145,6 @@ static void __of_free_phandle_cache(void)
|
||||
phandle_cache = NULL;
|
||||
}
|
||||
|
||||
int of_free_phandle_cache(void)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
raw_spin_lock_irqsave(&devtree_lock, flags);
|
||||
|
||||
__of_free_phandle_cache();
|
||||
|
||||
raw_spin_unlock_irqrestore(&devtree_lock, flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#if !defined(CONFIG_MODULES)
|
||||
late_initcall_sync(of_free_phandle_cache);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Caller must hold devtree_lock.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user