Re: [PATCH] rtas_errd: Add support for cpu and memory hotplugging via RTAS event
Vasant Hegde <[email protected]> Fri, 07 Nov 2014 11:10:19 +0530
| Newsgroups | gmane.linux.tools.diag.devel |
|---|---|
| Message-ID | <[email protected]> |
On 11/05/2014 12:03 AM, Thomas Falcon wrote: > This patch adds support for handling RTAS hotplug events for cpus and memory > blocks in addition to such events for pci devices. It includes additional > support for events indicating an addition or a removal of multiple cpus or > logical memory blocks. Finally, for debugging purposes, it includes the option > to handle the event without calling the drmgr command. > Thomas, Patch looks good. Could you please describe how to test this patch? @Nathan, Could you please Ack this one ? -Vasant > Signed-off-by: Thomas Falcon <[email protected]> > --- > rtas_errd/hotplug.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/rtas_errd/hotplug.c b/rtas_errd/hotplug.c > index 0f84f8d..91036b2 100644 > --- a/rtas_errd/hotplug.c > +++ b/rtas_errd/hotplug.c > @@ -24,6 +24,7 @@ void handle_hotplug_event(struct event *re) > pid_t child; > int status, rc; > char drc_index[11]; > + char count[4]; > char *drmgr_args[] = { DRMGR_PROGRAM_NOPATH, "-c", NULL, NULL, NULL, > NULL, NULL, "-d4", "-V", NULL}; > > @@ -39,6 +40,12 @@ void handle_hotplug_event(struct event *re) > drmgr_args[2] = "pci"; > drmgr_args[6] = "-n"; > break; > + case RTAS_HP_TYPE_CPU: > + drmgr_args[2] = "cpu"; > + break; > + case RTAS_HP_TYPE_MEMORY: > + drmgr_args[2] = "mem"; > + break; > default: > dbg("Unknown or unsupported hotplug type %d\n", > hotplug->type); > @@ -63,6 +70,11 @@ void handle_hotplug_event(struct event *re) > snprintf(drc_index, 11, "%#x", hotplug->u1.drc_index); > drmgr_args[5] = drc_index; > break; > + case RTAS_HP_ID_DRC_COUNT: > + drmgr_args[4] = "-q"; > + snprintf(count, 4, "%u", hotplug->u1.count); > + drmgr_args[5] = count; > + break; > default: > dbg("Unknown or unsupported hotplug identifier %d\n", > hotplug->identifier); > @@ -73,6 +85,10 @@ void handle_hotplug_event(struct event *re) > drmgr_args[1], drmgr_args[2], drmgr_args[3], > drmgr_args[4], drmgr_args[5], drmgr_args[6]); > > +#ifdef DEBUG > + if(no_drmgr) > + return; > +#endif > /* invoke drmgr */ > dbg("Invoke drmgr command\n"); > ------------------------------------------------------------------------------