On Thu 11-04-19 11:11:05, David Hildenbrand wrote: > On 11.04.19 10:41, Michal Hocko wrote: > > On Wed 10-04-19 12:14:55, David Hildenbrand wrote: > >> While current node handling is probably terribly broken for memory block > >> devices that span several nodes (only possible when added during boot, > >> and something like that should be blocked completely), properly put the > >> device reference we obtained via find_memory_block() to get the nid. > > > > The changelog could see some improvements I believe. (Half) stating > > broken status of multinode memblock is not really useful without a wider > > context so I would simply remove it. More to the point, it would be much > > better to actually describe the actual problem and the user visible > > effect. > > > > " > > d0dc12e86b31 ("mm/memory_hotplug: optimize memory hotplug") has started > > using find_memory_block to get a nodeid for the beginnig of the onlined > > pfn range. The commit has missed that the memblock contains a reference > > counted object and a missing put_device will leak the kobject behind > > which ADD THE USER VISIBLE EFFECT HERE. > > " > > I don't think mentioning the commit a second time is really needed. > > " > Right now we are using find_memory_block() to get the node id for the > pfn range to online. We are missing to drop a reference to the memory > block device. While the device still gets unregistered via > device_unregister(), resulting in no user visible problem, the device is > never released via device_release(), resulting in a memory leak. Fix > that by properly using a put_device(). > " OK, sounds good to me. I was not sure about all the sysfs machinery and the kobj dependencies but if there are no sysfs files leaking and crashing upon a later access then a leak of a small amount of memory that is not user controlable then this is not super urgent. Thanks! -- Michal Hocko SUSE Labs