All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nadia Derbey <Nadia.Derbey@bull.net>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org, y-goto@jp.fujitsu.com,
	linux-mm@kvack.org, containers@lists.linux-foundation.org,
	matthltc@us.ibm.com, cmm@us.ibm.com
Subject: Re: [PATCH 8/8] Re-enable msgmni automatic recomputing msgmni if set to negative
Date: Tue, 12 Feb 2008 12:38:38 +0100	[thread overview]
Message-ID: <47B1853E.2070103@bull.net> (raw)
In-Reply-To: <20080211122748.64e7bc36.akpm@linux-foundation.org>

Andrew Morton wrote:
> On Mon, 11 Feb 2008 15:16:54 +0100
> Nadia.Derbey@bull.net wrote:
> 
> 
>>[PATCH 08/08]
>>
>>This patch is the enhancement as asked for by Yasunori: if msgmni is set to
>>a negative value, register it back into the ipcns notifier chain.
>>
>>A new interface has been added to the notification mechanism:
>>notifier_chain_cond_register() registers a notifier block only if not already
>>registered. With that new interface we avoid taking care of the states changes
>>in procfs.
>>
>>...
>>
>> static int proc_ipc_callback_dointvec(ctl_table *table, int write,
>> 	struct file *filp, void __user *buffer, size_t *lenp, loff_t *ppos)
>> {
>>+	struct ctl_table ipc_table;
>> 	size_t lenp_bef = *lenp;
>> 	int rc;
>> 
>>-	rc = proc_ipc_dointvec(table, write, filp, buffer, lenp, ppos);
>>+	memcpy(&ipc_table, table, sizeof(ipc_table));
>>+	ipc_table.data = get_ipc(table);
>>+
>>+	rc = proc_dointvec(&ipc_table, write, filp, buffer, lenp, ppos);
>> 
>> 	if (write && !rc && lenp_bef == *lenp)
>>-		/*
>>-		 * Tunable has successfully been changed from userland:
>>-		 * disable its automatic recomputing.
>>-		 */
>>-		unregister_ipcns_notifier(current->nsproxy->ipc_ns);
>>+		tunable_set_callback(*((int *)(ipc_table.data)));
>> 
>> 	return rc;
>> }
>>@@ -119,12 +142,14 @@ static int sysctl_ipc_registered_data(ct
>> 	rc = sysctl_ipc_data(table, name, nlen, oldval, oldlenp, newval,
>> 		newlen);
>> 
>>-	if (newval && newlen && rc > 0)
>>+	if (newval && newlen && rc > 0) {
>> 		/*
>>-		 * Tunable has successfully been changed from userland:
>>-		 * disable its automatic recomputing.
>>+		 * Tunable has successfully been changed from userland
>> 		 */
>>-		unregister_ipcns_notifier(current->nsproxy->ipc_ns);
>>+		int *data = get_ipc(table);
>>+
>>+		tunable_set_callback(*data);
>>+	}
>> 
>> 	return rc;
>> }
> 
> 
> hm, what's happening here?  We take a local copy of the caller's ctl_table
> and then pass that into proc_dointvec().  Is that as hacky as it seems??
> 
> 

Well, the caller's ctl_table contains the tunables addresses for the 
init namspeace in its .data fields. While what needs to be passed in to 
proc_dointvec() is the tunable address in the caller's namespace.
Since all the fields in ipc_kern_table[] are ok but the .data one, imho 
it's correct to store it in a local copy and change the data field to 
the appropirate one, before passing it to proc_dointvec().

Regards,
Nadia

WARNING: multiple messages have this Message-ID (diff)
From: Nadia Derbey <Nadia.Derbey@bull.net>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org, y-goto@jp.fujitsu.com,
	linux-mm@kvack.org, containers@lists.linux-foundation.org,
	matthltc@us.ibm.com, cmm@us.ibm.com
Subject: Re: [PATCH 8/8] Re-enable msgmni automatic recomputing msgmni if set to negative
Date: Tue, 12 Feb 2008 12:38:38 +0100	[thread overview]
Message-ID: <47B1853E.2070103@bull.net> (raw)
In-Reply-To: <20080211122748.64e7bc36.akpm@linux-foundation.org>

Andrew Morton wrote:
> On Mon, 11 Feb 2008 15:16:54 +0100
> Nadia.Derbey@bull.net wrote:
> 
> 
>>[PATCH 08/08]
>>
>>This patch is the enhancement as asked for by Yasunori: if msgmni is set to
>>a negative value, register it back into the ipcns notifier chain.
>>
>>A new interface has been added to the notification mechanism:
>>notifier_chain_cond_register() registers a notifier block only if not already
>>registered. With that new interface we avoid taking care of the states changes
>>in procfs.
>>
>>...
>>
>> static int proc_ipc_callback_dointvec(ctl_table *table, int write,
>> 	struct file *filp, void __user *buffer, size_t *lenp, loff_t *ppos)
>> {
>>+	struct ctl_table ipc_table;
>> 	size_t lenp_bef = *lenp;
>> 	int rc;
>> 
>>-	rc = proc_ipc_dointvec(table, write, filp, buffer, lenp, ppos);
>>+	memcpy(&ipc_table, table, sizeof(ipc_table));
>>+	ipc_table.data = get_ipc(table);
>>+
>>+	rc = proc_dointvec(&ipc_table, write, filp, buffer, lenp, ppos);
>> 
>> 	if (write && !rc && lenp_bef == *lenp)
>>-		/*
>>-		 * Tunable has successfully been changed from userland:
>>-		 * disable its automatic recomputing.
>>-		 */
>>-		unregister_ipcns_notifier(current->nsproxy->ipc_ns);
>>+		tunable_set_callback(*((int *)(ipc_table.data)));
>> 
>> 	return rc;
>> }
>>@@ -119,12 +142,14 @@ static int sysctl_ipc_registered_data(ct
>> 	rc = sysctl_ipc_data(table, name, nlen, oldval, oldlenp, newval,
>> 		newlen);
>> 
>>-	if (newval && newlen && rc > 0)
>>+	if (newval && newlen && rc > 0) {
>> 		/*
>>-		 * Tunable has successfully been changed from userland:
>>-		 * disable its automatic recomputing.
>>+		 * Tunable has successfully been changed from userland
>> 		 */
>>-		unregister_ipcns_notifier(current->nsproxy->ipc_ns);
>>+		int *data = get_ipc(table);
>>+
>>+		tunable_set_callback(*data);
>>+	}
>> 
>> 	return rc;
>> }
> 
> 
> hm, what's happening here?  We take a local copy of the caller's ctl_table
> and then pass that into proc_dointvec().  Is that as hacky as it seems??
> 
> 

Well, the caller's ctl_table contains the tunables addresses for the 
init namspeace in its .data fields. While what needs to be passed in to 
proc_dointvec() is the tunable address in the caller's namespace.
Since all the fields in ipc_kern_table[] are ok but the .data one, imho 
it's correct to store it in a local copy and change the data field to 
the appropirate one, before passing it to proc_dointvec().

Regards,
Nadia

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2008-02-12 11:40 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-11 14:16 [PATCH 0/8] Change default MSGMNI tunable to scale with lowmem (v3) Nadia.Derbey
2008-02-11 14:16 ` Nadia.Derbey
2008-02-11 14:16 ` [PATCH 1/8] Scaling msgmni to the amount of lowmem Nadia.Derbey-6ktuUTfB/bM
2008-02-11 14:16 ` Nadia.Derbey
2008-02-11 14:16   ` Nadia.Derbey
     [not found]   ` <20080211141813.354484000-6ktuUTfB/bM@public.gmane.org>
2008-02-16  5:59     ` Andrew Morton
2008-02-16  5:59       ` Andrew Morton
2008-02-16  5:59       ` Andrew Morton
2008-02-18  9:19       ` Nadia Derbey
2008-02-18  9:19         ` Nadia Derbey
2008-02-18 13:08         ` Nadia Derbey
2008-02-18 13:08           ` Nadia Derbey
2008-02-19  8:50           ` [LTP] " Subrata Modak
2008-02-19  8:50             ` Subrata Modak
     [not found]             ` <1203411055.4612.5.camel-NRFfyExJdYpgXGGE5LP+UZlqa2bBAFbm0E9HWUfgJXw@public.gmane.org>
2008-02-19 17:16               ` Nadia Derbey
2008-02-19 17:16             ` Nadia Derbey
     [not found]               ` <47BB0EDC.5000002-6ktuUTfB/bM@public.gmane.org>
2008-02-19 22:16                 ` Matt Helsley
2008-02-20  9:44                 ` Subrata Modak
2008-02-19 22:16               ` Matt Helsley
2008-02-19 22:16                 ` Matt Helsley
     [not found]                 ` <1203459418.7408.39.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2008-02-21  8:39                   ` Nadia Derbey
2008-02-21 12:36                   ` Nadia Derbey
2008-02-21  8:39                 ` Nadia Derbey
2008-02-21  8:39                   ` Nadia Derbey
2008-02-21 12:36                 ` Nadia Derbey
2008-02-21 12:36                   ` Nadia Derbey
2008-02-21 13:02                   ` Nadia Derbey
2008-02-21 13:39                     ` Subrata Modak
2008-02-21 13:39                       ` Subrata Modak
2008-02-22  6:25                       ` Nadia Derbey
     [not found]                         ` <47BE6AD0.6070309-6ktuUTfB/bM@public.gmane.org>
2008-02-22  8:41                           ` Subrata Modak
2008-02-22  8:41                         ` Subrata Modak
2008-02-22  8:41                           ` Subrata Modak
     [not found]                       ` <1203601178.4604.18.camel-NRFfyExJdYpgXGGE5LP+UZlqa2bBAFbm0E9HWUfgJXw@public.gmane.org>
2008-02-22  6:25                         ` Nadia Derbey
     [not found]                     ` <47BD7648.5010309-6ktuUTfB/bM@public.gmane.org>
2008-02-21 13:39                       ` Subrata Modak
     [not found]                   ` <47BD705A.9020309-6ktuUTfB/bM@public.gmane.org>
2008-02-21 13:02                     ` Nadia Derbey
2008-02-20  9:44               ` Subrata Modak
2008-02-20  9:44                 ` Subrata Modak
     [not found]           ` <47B9835A.3060507-6ktuUTfB/bM@public.gmane.org>
2008-02-19  8:50             ` Subrata Modak
     [not found]         ` <47B94D8C.8040605-6ktuUTfB/bM@public.gmane.org>
2008-02-18 13:08           ` Nadia Derbey
     [not found]       ` <20080215215916.8566d337.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2008-02-18  9:19         ` Nadia Derbey
2008-04-29 20:28     ` Tony Luck
2008-04-29 20:28   ` Tony Luck
2008-04-29 20:28     ` Tony Luck
2008-05-05  8:45     ` Nadia Derbey
2008-05-05  8:45       ` Nadia Derbey
2008-05-06 16:42       ` Luck, Tony
2008-05-06 16:42         ` Luck, Tony
2008-05-06 18:05         ` Serge E. Hallyn
2008-05-06 18:05           ` Serge E. Hallyn
     [not found]           ` <20080506180527.GA8315-6s5zFf/epYLPQpwDFJZrxKsjOiXwFzmk@public.gmane.org>
2008-05-07  5:37             ` Nadia Derbey
2008-05-07  5:37           ` Nadia Derbey
2008-05-07  5:37             ` Nadia Derbey
     [not found]             ` <48214007.7050800-6ktuUTfB/bM@public.gmane.org>
2008-05-07 13:17               ` Serge E. Hallyn
2008-05-07 13:17             ` Serge E. Hallyn
2008-05-07 13:17               ` Serge E. Hallyn
     [not found]               ` <20080507131712.GA8580-6s5zFf/epYLPQpwDFJZrxKsjOiXwFzmk@public.gmane.org>
2008-05-07 18:12                 ` Matt Helsley
2008-05-07 18:12               ` Matt Helsley
2008-05-07 18:12                 ` Matt Helsley
     [not found]         ` <1FE6DD409037234FAB833C420AA843EC014392F9-7XlYjKTK0pM64kNsxIetb7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2008-05-06 18:05           ` Serge E. Hallyn
2008-05-07  5:13           ` Nadia Derbey
2008-05-07  5:13         ` Nadia Derbey
2008-05-07  5:13           ` Nadia Derbey
     [not found]       ` <481EC917.6070808-6ktuUTfB/bM@public.gmane.org>
2008-05-06 16:42         ` Luck, Tony
     [not found]     ` <12c511ca0804291328v2f0b87csd0f2cf3accc6ad00-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-05-05  8:45       ` Nadia Derbey
2008-02-11 14:16 ` [PATCH 2/8] Scaling msgmni to the number of ipc namespaces Nadia.Derbey-6ktuUTfB/bM
2008-02-11 14:16 ` Nadia.Derbey
2008-02-11 14:16   ` Nadia.Derbey
2008-02-11 14:16 ` [PATCH 3/8] Defining the slab_memory_callback priority as a constant Nadia.Derbey-6ktuUTfB/bM
2008-02-11 14:16 ` Nadia.Derbey
2008-02-11 14:16   ` Nadia.Derbey
2008-02-11 14:16 ` [PATCH 4/8] Recomputing msgmni on memory add / remove Nadia.Derbey-6ktuUTfB/bM
2008-02-11 14:16 ` Nadia.Derbey
2008-02-11 14:16   ` Nadia.Derbey
2008-02-11 14:16 ` [PATCH 5/8] Invoke the ipcns notifier chain as a work item Nadia.Derbey
2008-02-11 14:16   ` Nadia.Derbey
2008-02-11 14:16 ` Nadia.Derbey-6ktuUTfB/bM
2008-02-11 14:16 ` [PATCH 6/8] Recomputing msgmni on ipc namespace creation/removal Nadia.Derbey-6ktuUTfB/bM
2008-02-11 14:16 ` Nadia.Derbey
2008-02-11 14:16   ` Nadia.Derbey
2008-02-11 14:16 ` [PATCH 7/8] Do not recompute msgmni anymore if explicitely set by user Nadia.Derbey-6ktuUTfB/bM
2008-02-11 14:16 ` Nadia.Derbey
2008-02-11 14:16   ` Nadia.Derbey
2008-02-11 20:24   ` Andrew Morton
2008-02-11 20:24     ` Andrew Morton
2008-02-12  9:32     ` Nadia Derbey
     [not found]       ` <47B167AF.6010008-6ktuUTfB/bM@public.gmane.org>
2008-02-12  9:44         ` Andrew Morton
2008-02-12  9:44           ` Andrew Morton
2008-02-12  9:44           ` Andrew Morton
     [not found]           ` <20080212014444.8bc3791b.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2008-02-12 15:15             ` Nadia Derbey
2008-02-12 15:15           ` Nadia Derbey
2008-02-12 15:15             ` Nadia Derbey
     [not found]             ` <47B1B7F4.8080009-6ktuUTfB/bM@public.gmane.org>
2008-02-12 19:44               ` Andrew Morton
2008-02-12 19:44                 ` Andrew Morton
2008-02-12 19:44                 ` Andrew Morton
     [not found]                 ` <20080212114439.e08085f1.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2008-02-14 11:47                   ` Nadia Derbey
2008-02-14 11:47                 ` Nadia Derbey
2008-02-14 11:47                   ` Nadia Derbey
2008-02-12  9:45         ` Nadia Derbey
2008-02-12  9:45           ` Nadia Derbey
     [not found]     ` <20080211122408.5008902f.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2008-02-12  9:32       ` Nadia Derbey
     [not found]   ` <20080211141816.094061000-6ktuUTfB/bM@public.gmane.org>
2008-02-11 20:24     ` Andrew Morton
2008-02-11 14:16 ` [PATCH 8/8] Re-enable msgmni automatic recomputing msgmni if set to negative Nadia.Derbey
2008-02-11 14:16   ` Nadia.Derbey
2008-02-11 20:27   ` Andrew Morton
2008-02-11 20:27     ` Andrew Morton
2008-02-12 11:38     ` Nadia Derbey [this message]
2008-02-12 11:38       ` Nadia Derbey
     [not found]     ` <20080211122748.64e7bc36.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2008-02-12 11:38       ` Nadia Derbey
     [not found]   ` <20080211141816.520049000-6ktuUTfB/bM@public.gmane.org>
2008-02-11 20:27     ` Andrew Morton
2008-02-11 14:16 ` Nadia.Derbey-6ktuUTfB/bM

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47B1853E.2070103@bull.net \
    --to=nadia.derbey@bull.net \
    --cc=akpm@linux-foundation.org \
    --cc=cmm@us.ibm.com \
    --cc=containers@lists.linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=matthltc@us.ibm.com \
    --cc=y-goto@jp.fujitsu.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.