From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gao feng Subject: Re: [PATCH 05/11] pidns: Make the pidns proc mount/umount logic obvious. Date: Mon, 19 Nov 2012 19:02:23 +0800 Message-ID: <50AA11BF.1090201@cn.fujitsu.com> References: <8739097bkk.fsf@xmission.com> <1353083750-3621-1-git-send-email-ebiederm@xmission.com> <1353083750-3621-5-git-send-email-ebiederm@xmission.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1353083750-3621-5-git-send-email-ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: "Eric W. Biederman" Cc: Linux Containers , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Andrew Morton , Oleg Nesterov List-Id: containers.vger.kernel.org 5LqOIDIwMTLlubQxMeaciDE35pelIDAwOjM1LCBFcmljIFcuIEJpZWRlcm1hbiDlhpnpgZM6Cj4g RnJvbTogIkVyaWMgVy4gQmllZGVybWFuIiA8ZWJpZWRlcm1AeG1pc3Npb24uY29tPgo+IAo+IFRy YWNrIHRoZSBudW1iZXIgb2YgcGlkcyBpbiB0aGUgcHJvYyBoYXNoIHRhYmxlLiAgV2hlbiB0aGUg bnVtYmVyIG9mCj4gcGlkcyBnb2VzIHRvIDAgc2NoZWR1bGUgd29yayB0byB1bm1vdW50IHRoZSBr ZXJuZWwgbW91bnQgb2YgcHJvYy4KPiAKPiBNb3ZlIHRoZSBtb3VudCBvZiBwcm9jIGludG8gYWxs b2NfcGlkIHdoZW4gd2UgYWxsb2NhdGUgdGhlIHBpZCBmb3IKPiBpbml0Lgo+IAo+IFJlbW92ZSB0 aGUgc3VycHJpc2luZyBjYWxscyBvZiBwaWRfbnNfcmVsZWFzZSBwcm9jIGluIGZvcmsgYW5kCj4g cHJvY19mbHVzaF90YXNrLiAgVGhvc2UgY29kZSBwYXRocyByZWFsbHkgc2hvdWxkbid0IGtub3cg YWJvdXQgcHJvYwo+IG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGFuZCBwZW9wbGUg aGF2ZSBkZW1vbnN0cmF0ZWQgc2V2ZXJhbAo+IHRpbWVzIHRoYXQgZmluZGluZyBhbmQgdW5kZXJz dGFuZGluZyB0aG9zZSBjb2RlIHBhdGhzIGlzIGRpZmZpY3VsdCBhbmQKPiBub24tb2J2aW91cy4K PiAKPiBCZWNhdXNlIG9mIHRoZSBjYWxsIHBhdGggZGV0YWNoIHBpZCBpcyBhbHdhc3kgY2FsbGVk IHdpdGggdGhlCj4gcnRubF9sb2NrIGhlbGQgZnJlZV9waWQgaXMgbm90IGFsbG93ZWQgdG8gc2xl ZXAsIHNvIHRoZSB3b3JrIHRvCj4gdW5tb3VudGluZyBwcm9jIGlzIG1vdmVkIHRvIGEgd29yayBx dWV1ZS4gIFRoaXMgaGFzIHRoZSBzaWRlIGJlbmVmaXQKPiBvZiBub3QgYmxvY2tpbmcgdGhlIGVu dGlyZSB3b3JsZCB3YWl0aW5nIGZvciB0aGUgdW5uZWNlc3NhcnkKPiByY3VfYmFycmllciBpbiBk ZWFjdGl2YXRlX2xvY2tlZF9zdXBlci4KPiAKPiBJbiB0aGUgcHJvY2VzcyBvZiBtYWtpbmcgdGhl IGNvZGUgY2xlYXIgYW5kIG9idmlvdXMgdGhpcyBmaXhlcyBhIGJ1Zwo+IHJlcG9ydGVkIGJ5IEdh byBmZW5nIDxnYW9mZW5nQGNuLmZ1aml0c3UuY29tPiB3aGVyZSB3ZSB3b3VsZCBsZWFrIGEKPiBt b3VudCBvZiBwcm9jIGR1cmluZyBjbG9uZShDTE9ORV9ORVdQSUR8Q0xPTkVfTkVXTkVUKSBpZiBj b3B5X3BpZF9ucwo+IHN1Y2NlZWRlZCBhbmQgY29weV9uZXRfbnMgZmFpbGVkLgo+IAo+IEFja2Vk LWJ5OiAiU2VyZ2UgRS4gSGFsbHluIiA8c2VyZ2VAaGFsbHluLmNvbT4KPiBTaWduZWQtb2ZmLWJ5 OiAiRXJpYyBXLiBCaWVkZXJtYW4iIDxlYmllZGVybUB4bWlzc2lvbi5jb20+Cj4gLS0tCgpBY2tl ZC1ieTogR2FvIGZlbmcgPGdhb2ZlbmdAY24uZnVqaXRzdS5jb20+Cl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkNvbnRhaW5lcnMgbWFpbGluZyBsaXN0CkNv bnRhaW5lcnNAbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZv dW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vY29udGFpbmVycw== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752091Ab2KSLCi (ORCPT ); Mon, 19 Nov 2012 06:02:38 -0500 Received: from cn.fujitsu.com ([222.73.24.84]:34323 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1752018Ab2KSLCg convert rfc822-to-8bit (ORCPT ); Mon, 19 Nov 2012 06:02:36 -0500 X-IronPort-AV: E=Sophos;i="4.83,279,1352044800"; d="scan'208";a="6231151" Message-ID: <50AA11BF.1090201@cn.fujitsu.com> Date: Mon, 19 Nov 2012 19:02:23 +0800 From: Gao feng User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120911 Thunderbird/15.0.1 MIME-Version: 1.0 To: "Eric W. Biederman" CC: Linux Containers , linux-kernel@vger.kernel.org, Oleg Nesterov , Serge Hallyn , Andrew Morton Subject: Re: [PATCH 05/11] pidns: Make the pidns proc mount/umount logic obvious. References: <8739097bkk.fsf@xmission.com> <1353083750-3621-1-git-send-email-ebiederm@xmission.com> <1353083750-3621-5-git-send-email-ebiederm@xmission.com> In-Reply-To: <1353083750-3621-5-git-send-email-ebiederm@xmission.com> X-MIMETrack: Itemize by SMTP Server on mailserver/fnst(Release 8.5.3|September 15, 2011) at 2012/11/19 19:02:21, Serialize by Router on mailserver/fnst(Release 8.5.3|September 15, 2011) at 2012/11/19 19:02:22 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 于 2012年11月17日 00:35, Eric W. Biederman 写道: > From: "Eric W. Biederman" > > Track the number of pids in the proc hash table. When the number of > pids goes to 0 schedule work to unmount the kernel mount of proc. > > Move the mount of proc into alloc_pid when we allocate the pid for > init. > > Remove the surprising calls of pid_ns_release proc in fork and > proc_flush_task. Those code paths really shouldn't know about proc > namespace implementation details and people have demonstrated several > times that finding and understanding those code paths is difficult and > non-obvious. > > Because of the call path detach pid is alwasy called with the > rtnl_lock held free_pid is not allowed to sleep, so the work to > unmounting proc is moved to a work queue. This has the side benefit > of not blocking the entire world waiting for the unnecessary > rcu_barrier in deactivate_locked_super. > > In the process of making the code clear and obvious this fixes a bug > reported by Gao feng where we would leak a > mount of proc during clone(CLONE_NEWPID|CLONE_NEWNET) if copy_pid_ns > succeeded and copy_net_ns failed. > > Acked-by: "Serge E. Hallyn" > Signed-off-by: "Eric W. Biederman" > --- Acked-by: Gao feng