Messages in this thread | | | From | Fuqian Huang <> | Date | Mon, 5 Aug 2019 19:57:54 +0800 | Subject | Is it safe to kmalloc a large size of memory in interrupt handler? |
| |
In the implementation of kmalloc. when the allocated size is larger than KMALLOC_MAX_CACHE_SIZE, it will call kmalloc_large to allocate the memory. kmalloc_large -> kmalloc_order_trace->kmalloc_order->alloc_pages->alloc_pages_current->alloc_pages_nodemask->get_page_from_freelist->node_reclaim->__node_reclaim->shrink_node->shrink_node_memcg->get_scan_count
get_scan_count will call spin_unlock_irq which enables local interrupt. As the local interrupt should be disabled in the interrupt handler. It is safe to use kmalloc to allocate a large size of memory in interrupt handler?
| |