Re: [RFC PATCH 4/4] [RESEND] Recomputing msgmni on memory add / remove

Yasunori Goto
2008-01-15T09:44:39Z

> Yasunori Goto wrote:
> > Hello Nadia-san.
> >
> >
> >>@@ -118,6 +122,10 @@ struct ipc_namespace {
> >> size_t shm_ctlall;
> >> int shm_ctlmni;
> >> int shm_tot;
> >>+
> >>+#ifdef CONFIG_MEMORY_HOTPLUG
> >>+ struct notifier_block ipc_memory_hotplug;
> >>+#endif
> >> };
> >
> >
> > I'm sorry, but I don't see why each ipc namespace must have each callbacks
> > of memory hotplug.
> > I prefer only one callback for each subsystem, not for each namespace.
> > In addition, the recompute_msgmni() calculation looks very similar for
> > all ipc namespace.
> > Or do you wish each ipc namespace have different callback for the future?
> >
>
> Actually, this is what I wanted to do at the very beginning: have a
> single callback that would recompute the msgmni for each ipc namespace.
> But the issue here is that the namespaces are not linked to each other,
> so I had no simple way to go through all the namespaces.
> I solved the issue by having a callback for any single ipc namespace and
> make it recompute the msgmni value for itslef.

The recompute_msg() must be called when new ipc_namespace is created/removed
as you mentioned. I think namespaces should be linked each other for it
in the end....

> >
> > BTW, have you ever tested this patch? If you don't have any test environment
> > for memory hotplug code, then I'll check it. :-)
>
> Well, I tested it but not in "real configuration": what I did is that I
> changed the status by hand under sysfs to offline. I also changed
> remove_memory() in mm/memory_hotplug.c in the following way (instead of
> returninf EINVAL):
> 1) decrease the total_ram pages
> 2) call memory_notify(MEM_OFFLINE, NULL)
>
> and checked that the msgmni was recomputed.

You can also online again after offline by writing sysfs.

> But sure, if you are candidate to test it, that would be great!

Ok. I'll check it too.
Bye.

--
Yasunori Goto