Messages in this thread | | | Subject | Re: [PATCH 4/5] x86/mm: Provide helpers for unaccepted memory | From | Dave Hansen <> | Date | Tue, 10 Aug 2021 11:16:26 -0700 |
| |
On 8/9/21 11:26 PM, Kirill A. Shutemov wrote: > +void accept_memory(phys_addr_t start, phys_addr_t end) > +{ > + if (!boot_params.unaccepted_memory) > + return; > + > + spin_lock(&unaccepted_memory_lock); > + __accept_memory(start, end); > + spin_unlock(&unaccepted_memory_lock); > +}
Isn't this taken in the:
del_page_from_free_list()-> clear_page_offline()-> accept_memory()
call path?
That's underneath:
spin_lock_irqsave(&zone->lock, flags);
Which means that accept_memory() can happen from interrupt context. Is it always covered by another spin_lock_irqsave() which means that it can use a plain spin_lock()?
If so, it would be nice to call out that logic. It *looks* like a spinlock that we would want to be spin_lock_irqsave().
| |