Le 14/09/2020 à 10:19, Oscar Salvador a écrit :
On Mon, Sep 14, 2020 at 09:57:46AM +0200, David Hildenbrand wrote:
  /* register memory section under specified node if it spans that node */
+struct rmsun_args {
+       int nid;
+       enum memplug_context context;
+};

Uhmf, that is a not so descriptive name.

I do agree, but didn't have a better idea.
Anyway this will disappear since the choosen direction is to have 2 callbacks.


Instead of handling this in register_mem_sect_under_node(), I
think it would be better two have two separate
register_mem_sect_under_node() implementations.

static int register_mem_sect_under_node_hotplug(struct memory_block *mem_blk,
                                                void *arg)
{
        const int nid = *(int *)arg;
        int ret;

        /* Hotplugged memory has no holes and belongs to a single node. */
        mem_blk->nid = nid;
        ret = sysfs_create_link_nowarn(&node_devices[nid]->dev.kobj,
                                       &mem_blk->dev.kobj,
                                       kobject_name(&mem_blk->dev.kobj));
        if (ret)
                returnr et;
        return sysfs_create_link_nowarn(&mem_blk->dev.kobj,
                                        &node_devices[nid]->dev.kobj,
                                        
kobject_name(&node_devices[nid]->dev.kobj));

}

Cleaner, right? :) No unnecessary checks.

I tend to agree here, I like more a simplistic version for hotplug.

One could argue if link_mem_section_hotplug() would be better than passing 
around the context.

I am not sure if I would duplicate the code there.
We could just pass the pointer of the function we want to call to
link_mem_sections? either register_mem_sect_under_node_hotplug or
register_mem_sect_under_node_early?
Would not that be clean and clear enough?

That would expose the register_mem_sect_under_node*() prototype to the caller.

I'm wondering if that would be cleaner than passing a MEMPLUG_* constant value to link_mem_sections() and let it choose the right callback.

Reply via email to