From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757913Ab2AKSX5 (ORCPT ); Wed, 11 Jan 2012 13:23:57 -0500 Received: from mailhub.sw.ru ([195.214.232.25]:32850 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754772Ab2AKSX4 (ORCPT ); Wed, 11 Jan 2012 13:23:56 -0500 Message-ID: <4F0DD365.6070200@parallels.com> Date: Wed, 11 Jan 2012 22:22:29 +0400 From: Pavel Emelyanov User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc15 Thunderbird/3.1.10 MIME-Version: 1.0 To: KOSAKI Motohiro CC: Cyrill Gorcunov , LKML , Andrew Morton , Kyle Moffett , Tejun Heo , Glauber Costa , Andi Kleen , Matt Helsley , Pekka Enberg , Eric Dumazet , Vasiliy Kulikov , Alexey Dobriyan , Herbert Xu , "David S. Miller" , "Eric W. Biederman" , Andrey Vagin Subject: Re: [RFC] on general object IDs again References: <20120111161939.GI8752@moon> <20120111175952.GI466@moon> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/11/2012 10:19 PM, KOSAKI Motohiro wrote: >> Hi Kosaki, >> >> the idea on user-space is something like >> >> - collect all pids to dump >> - collect IDs for every pid >> - sort the IDs obtained >> - find the same IDs (which will be kind of find intersections in a sets of IDs) and >> set up CLONE_ flags on restore procedure as appropriate (for example if >> GEN_OBJ_ID_VM IDs for two or more tasks are the same we need to use CLONE_VM >> at restore time, and so on). > > Then, you only need to compare. not any other calculation. i.e. only > need id uniqueness. > And any resource are referenced from tasks. so, can you reuse pid for > this? example, > two taska share one mm. > > task-a(pid: 100) > |-----------------mm > task-b(pid: 200) > > > gen_obj_id(task-b, GEN_OBJ_ID_VM) return 100. (youngest pid of referenced tasks) We can, but determining the youngest pid for an mm struct is O(N) algo. Having N tasks with N mm_structs getting the sharing picture becomes O(N^2). > . >