On Tue, Dec 18, 2018 at 12:47:08PM +0100, Sebastian Andrzej Siewior wrote: > On 2018-12-18 12:37:00 [+0100], Peter Zijlstra wrote: > > On Tue, Dec 18, 2018 at 12:31:19PM +0100, Peter Zijlstra wrote: > > > On Tue, Dec 18, 2018 at 12:16:37PM +0100, Sebastian Andrzej Siewior wrote: > > > > On 2018-12-18 12:02:09 [+0100], Peter Zijlstra wrote: > > > > > On Tue, Dec 18, 2018 at 06:30:33PM +0800, zhe.he@xxxxxxxxxxxxx wrote: > > > > > > Besides, in preempt-rt full mode, the freeing can happen in atomic context and > > > > > > thus cause the following BUG. > > > > > > > > > > Hurm, I though we fixed all those long ago.. > > > > > > > > > > And no, the patch is horrible; that's what we have things like > > > > > x86_pmu::cpu_dead() for. > > > > > > > > ehm, you say we keep memory allocation +free on CPU up/down? > > > > > > Sure, why not? > > It does not seem to be useful to allocate & free memory which you need > anyway. So you could avoid the refcnt for instance. It makes the code simpler and hotplug is not what you'd call a fast path anyway. > Also I doubt the memory will remain unallocated for a longer period of > time (like you would remove the CPU for good and not boot it again a > minute later). SMT disable comes to mind... > *Maybe* it is different in cloud environment where you attach vcpus > depending on guest load at runtime but still… And that..