On 04/10/2018 08:28, Michal Hocko wrote: > On Wed 03-10-18 19:00:29, David Hildenbrand wrote: > [...] >> Let me rephrase: You state that user space has to make the decision and >> that user should be able to set/reconfigure rules. That is perfectly fine. >> >> But then we should give user space access to sufficient information to >> make a decision. This might be the type of memory as we learned (what >> some part of this patch proposes), but maybe later more, e.g. to which >> physical device memory belongs (e.g. to hotplug it all movable or all >> normal) ... > > I am pretty sure that user knows he/she wants to use ballooning in > HyperV or Xen, or that the memory hotplug should be used as a "RAS" > feature to allow add and remove DIMMs for reliability. Why shouldn't we > have a package to deploy an appropriate set of udev rules for each of > those usecases? I am pretty sure you need some other plumbing to enable > them anyway (e.g. RAS would require to have movable_node kernel > parameters, ballooning a kernel module etc.). > > Really, one udev script to rule them all will simply never work. > I am on your side. We will need multiple ones. But we need sane defaults. And a default rule will always exist. And users will expect that the defaults somewhat match their expectation unless they really have some special use cases. All I am saying is, again, that if user space is to make decisions, it should get sufficient information to make sane decision. And in my point of view, the type of memory allows us to make these decision and to provide a "single udev script to rule them all" with sane defaults. I at least think the distinction between "auto-online" and "standby" is required (what Dave suggested). The we can make a simple rule if (auto-online memory) { if (virtual environment) { "online" } else { "online_movable" } } /* standby memory not onlined as default */ We are able to provide sane defaults. -- Thanks, David / dhildenb