From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754230AbdBVHo2 (ORCPT ); Wed, 22 Feb 2017 02:44:28 -0500 Received: from mail-db5eur01on0130.outbound.protection.outlook.com ([104.47.2.130]:23271 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751192AbdBVHoU (ORCPT ); Wed, 22 Feb 2017 02:44:20 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=xemul@virtuozzo.com; Subject: Re: [RFC 1/3] procfs: fdinfo -- Extend information about epoll target files To: Cyrill Gorcunov , Andy Lutomirski References: <20170221171254.954209904@openvz.org> <20170221191655.GC27653@uranus> CC: Linux FS Devel , "linux-kernel@vger.kernel.org" , Linux API , Al Viro , Andrew Morton , Andrew Vagin , Michael Kerrisk , Kirill Kolyshkin , Jason Baron , Andrey Vagin From: Pavel Emelyanov Message-ID: <58AD4147.20801@virtuozzo.com> Date: Wed, 22 Feb 2017 10:44:07 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Icedove/38.8.0 MIME-Version: 1.0 In-Reply-To: <20170221191655.GC27653@uranus> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [109.252.45.10] X-ClientProxiedBy: DB6PR1001CA0010.EURPRD10.PROD.OUTLOOK.COM (10.171.79.20) To VI1PR0802MB2144.eurprd08.prod.outlook.com (10.172.12.13) X-MS-Office365-Filtering-Correlation-Id: ed9af6b9-7ab1-4134-45ff-08d45af69901 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:VI1PR0802MB2144; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2144;3:JCFktZI+AWh/DZsqKMFe2mF0+Uq4BGdILgoV9Z7QswRA/oE3FVztLv7f5pd3PDGn+OnHPY9Oy1uIiIW83DUIbKQPBjyuoNlxfdHeQkAp3ynw7jwOnkw0V3vzVezwywQhh6x+p5GW5v7fvx0301gfMygIWn+Ji+SmFkuKA41N1rDR45edefvQK2YF0EghxnktuboeDk8knYDjUnG1cwGQ95lQQVcOsZHOC0Whxfd++6cBxMS4AtgtLo15NTvme+wPTLW8HaUMiZ2uKukP57KvTw==;25:s6WGC4lk7kUc4qa1xhU4FD02Tex/F6eLNVkdbD2GCBnypA0TY8kVfySs4IA7P44LeaxC7HoW94DCSw5c1Z3Sab4Aoo7p5/Ko1ERU8xTk7pt9u+ITOsh3YNpCW9/a3aLqZ5x2Qgb83isuQNEUItdXY75euJggU/RnWitB66RjbW+Beaik7S49IaGQ5ZNQXQlSLpsDdxIhG1WPZFkYQ5Qadxa1yP10YbTJtakN+ywA7GTG/V5If9gkuggYoVBtDsDlxgAx2iriIDrKZXvaDpHrPJ6lyLWl+bHYourx/AOx0Uqg/Olv2agJhHurrdHCtdPQf6UlN8XoWXSB5Ahucf51uvcKYP40IiACI1gIXbZqyNdwxd7EmZNXgRkCRaeQCaq14wJM1T/6itjU07eTn2TNrecWTVAeVFQppteVZ7jAqDq/OWhgPxsinYM2BkN1k09Yw6r3YBePCYVhxxZBvSgpUQ== X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2144;31:TZjUhsniAiGpzkEhmabNRdDun+IoB9vTgvB2vAOcbFJItpeoNnClEryz6Jx7M+AEWx/2uuPYOkTnCP1qDdua5alrA+gfNT+1/X1ZOZZo+A2kSdswqtAy3V10MXrzwh3PvayPgBOunxb4/s0kX6XYSpGz3vMkVGGMrJTYTz4p8ulsCaIP2dbR/Kwk2c3L+FlzhY2PX0XUx6Wx2MtQF7XAxVLsYMq07f4/AL53DskIqpaYslF53g0YwKjF11s8rvJS;20:6PGRtZ7gbsH4DQXM1e2SMsZKnQV65FYI1fWyHTs9rpGyOEjrAf2ilcTrLaUM+no9UM/ME2239z6Exw6/oHu3gMPyPiXEdjq9YdWXko30regQSNv0YdFvTtVni1mIAV5TGqYb9ZpowKyscA1hxsUgbZjooKhmftRjdmsFwZd8w8QLGrXrMD7dEUvFS4smoKxpPD+tzW0sCOPZBpjw8nYzVmPiL4ZfY3GiEAjfUcMbA+DJTXsA8biLuSFodWWv0VBBijkjGyXUTv812/dX1EjzGAWD5wlRJ2oW1pkG6/kLudBQP/7Z6Lx6+xqqUBNfPTbHzNH5SIZ5cAM+X2KKsACR0riAtT9a0ZJmMcpGzGKD64mROk6c/GaGuPN4JSiMgltICwb+Pae44GaXesGGxWb4YoW2AecHNRK5zYpo7RF2/vE= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(17755550239193); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123560025)(20161123558025)(6072148);SRVR:VI1PR0802MB2144;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0802MB2144; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2144;4:maRTtSW0vouD9C/TA5HCSTq8qiJJFLirmsnyfeCOHFlr5FNJ/9E7Oyqk2QWWFV/Jy3aXSCoNPezvk6Yc5vFCDksxsCyhQA/NKhzWMDawesjhovU486uSlYbburVVmxRdswzPTVdkC0bg1geBmKwjm/aYvr1IGdHSaAHHw6ACdrnNG3oyGkg2cok4uikHfI3oUgAOAzxKVWYLp1albVEJR1+JT8lKISoJVjQWqiRWKQ9I95aBIESA08Oio1zI3RxZGi75EdteL543ScNWbC8FE1Joy8J35Todb/7Xja3V0q+f1cVAEIRCo2AUUvem5+zHWrjUj7xhRtfvy08wbXG5CbGRyxbZ56bFygk8I5SahYjPhCg1T3q810B3AUmgwEV+LcAvc4YZbbbOnCznunm2/Vn9DGc+MHajN6axHzReiTnNKOhgv2nG1k8aDxB/CElNPKknqg3HtbX/KJc8/3AQ2Iw3f2jf0GWuaIQfECSEu8xO97yPfUCzb8TfZR0vJTesYe6VanbpD056Np68oboYdCvC62TVQ2QR0GlTSYQvnNwjTA0E3ldIE3Jy0PoHvje7dpLYe5Ah9RLXnXlD63W5P31WR9IGGynuWnjtyZ1ZtfM0y8u30Rx8YD2hbrxOjS+ZA1clHV5rp7PjLzWXA7pFNQ== X-Forefront-PRVS: 022649CC2C X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(39450400003)(24454002)(199003)(377454003)(189002)(65816999)(54356999)(66066001)(81156014)(101416001)(6486002)(8676002)(229853002)(76176999)(106356001)(81166006)(4001350100001)(50986999)(105586002)(33656002)(47776003)(90366009)(25786008)(42186005)(64126003)(5660300001)(230700001)(53936002)(2950100002)(54906002)(77096006)(92566002)(3846002)(6116002)(6666003)(53546006)(23676002)(50466002)(38730400002)(97736004)(117156001)(2906002)(83506001)(305945005)(86362001)(7736002)(6246003)(36756003)(68736007)(4326007)(107886003)(189998001)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR0802MB2144;H:[192.168.1.67];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjA4MDJNQjIxNDQ7MjM6SGowVzg3STNVYnhFSDFjQXFMNFF2WFhM?= =?utf-8?B?aS9BQlhoU2lpWmkvc1dRdXQ1Vk9JZHozZVo5VDYwcHRYc1lYRU5uZURrSklL?= =?utf-8?B?N1pVR3plN09hK1d5NzRodEgvaDd4Vktnakk2YThVNmRuV1d4MVdXMkhUVXRm?= =?utf-8?B?TGhLZ244ZXVMMzBENkJ1Uk8rVkozRldHWTNXMjd4OTVRMGdmVjVhWVJYZzlU?= =?utf-8?B?MkhtM1FySkx6aklJMTRxN1dRemY5ZFZVWTV5UFE4VGNQTDJBbjRCMFVHU0Nn?= =?utf-8?B?Z0xhbllyTHpwcm9wSWhkTmI2LzVCVDUrSWZqRUU2b2ZESTNjcDJmcWNzajRq?= =?utf-8?B?Nm5za0I5SzlGZUl2MnhUMVg1YVcxYmFZR2N0SmU1Y0NmZlZmV05KVnJMclB5?= =?utf-8?B?a0hmcS9hOUliR0pxNHZVVm14d0hCRUNhK3E2a3lnSHloWVVRNlNNMkUyRGsr?= =?utf-8?B?SFZRMzN3OXFiT2NYWUtFRit5VVlScHpudjZQWlBVWFRkK3hoSHBEUEZ4ck1G?= =?utf-8?B?NmNKUjVHcEhkUDlUVTFUdXR0RGtoRnJwWDlpdy81dGtLZERrSXZSK0VFWmpv?= =?utf-8?B?U2w2QmdNdW03K2hsM1hkcElIN2s5UmxVNStGKy9Uc3A0WnNMRDNiZU1zZGpu?= =?utf-8?B?aGlDZU5XQmtPVVkraXN5aldvckhoMkUxT1pVYlE4VDlHR3hXNFk1eFduQmNk?= =?utf-8?B?ZmJQWGh5ZEkyYnJpQXBtb0pWc09CeWg4QktJUnZTRzVGNEFjNmdoNnpWK2hE?= =?utf-8?B?L2cxV2ZSUWlPTDBmNXFEYnVZblZwR1d3cXl2ZTBhN2JuU1p6Vk5seWFsdVBC?= =?utf-8?B?S0hNWTBvR2p2bGxPaEpRMUlCRWlTV0VoTlNsTEdJY2g0eGprMkJhbGpyNGlx?= =?utf-8?B?a2FBSk8rRzJuNklRMW83MFk3TEtzZ2ZpaWFwWFA1NWc2RjJwalh3QmN1bUQ1?= =?utf-8?B?SEwzMFZGd0drYU9PNHl5S2QxTFl3TkY5NEpLalNOY2wvSUNwTDVSWWFzRm5V?= =?utf-8?B?VmZjbmJ6cTRhWXl6QnlEUGt6T3c0azZ0YjBGQk5GcDJ3ZUVyRFJKaG1wOCtt?= =?utf-8?B?ek1lVGNDOFk0OTluMWJab3dhYUoxWm5BTEcyMThhS3J1eDJCcFZGUS8zRWFI?= =?utf-8?B?WDE0dDRzL00yaEhPSVRKUXQvbEpLaVV6MThQT0pyQVIwV0FqS3IvSjlSNHZ4?= =?utf-8?B?TkpMN3JOQWZ4U1g5ZzNRcHVmcnBuS00wcTdmSzlUQkQzbVdHZVhIUlJ2aWFZ?= =?utf-8?B?RU55MUVHekcvUHp2OTNOcGhaTWs4NmFRb0xBcW1PQ01VYmJYU1Y4Y1NEZW4x?= =?utf-8?B?RHVodEtWYjhEY1lVRXF5bzV4ZkM4SzltckRubWJ0N0lSUVhUcTdLYi9QcGs4?= =?utf-8?B?aTFpcVZ3ZFR1d0RrQWZDaWV4Mkd1c1pYOXpSOWlna0dhbXJrc3Rtdi9mbGJG?= =?utf-8?B?cUxhZGJhSFJQN1h0bDlWSTB0UVk1U1FzTG9Vemh6ZEdWUjRKRWlHbVBGRitR?= =?utf-8?B?WWlBZkoxNXcydmRPM05jWm1GSHFRc2tEMVo0VXZVNUQ0OUtsUWxMeXE1VWhq?= =?utf-8?B?aXN2eW1ybzNWTnM4TUZTeThoWGdGS0d3SldjY0kxdzNGaXFkWmh4ZUVmZkM5?= =?utf-8?B?cnZPZUlNNkM2aFBmaUp5MzNVRE1KeUZ0cU0xRmw5SncrZ2Vwd3VyL0tsaU9S?= =?utf-8?B?a2VacEtJR2dzcG9Oa2ErUEJCZ2lxSHE2eHFaWGM5OWRlRnY2d29wYndGaVBE?= =?utf-8?B?NzdHNE9wYkNOY1ljOU8xV3c4RjZqUjZKazNtdzJFT04rRHRDSlV2MVRMWEg1?= =?utf-8?B?SUpRK2pKaHZuRWphbTI5TlplMFJ6cWtmQjB3Y1lueVc1aXNhUT09?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2144;6:47FsYdz9JeVpIMf7ZF2E0Fm3ghphx+KNGaOus/Ya3FQC5eJYE4KXY32T7OFqUbt8VYbSfjf6Bqx4PkNQUccdxPj5boXM2IjnW+vQil6udQGEU4MDadCM2CkJsJLUN2gz4SayIE1LrD12qGByF53xm+MCAxahijWyiZPtYvFYtnyBxJDxy4IPtuVe/iQZBGAC14s7LkKjsbpg1a81n761yC/5TBHDeKdZy3Fce1T5+dc4YcLZuFG46Y/+o4hTEaPWR/6JhUyGW3NisuofZOHPjnmvepLNabw8h1mcMn7ZOF4gMR7yqfsi22glRaEQxjB5nl1Cm4JL9bvEz/NSi6s797dKKAARxfS6Yi0wdRt6nw2MdKEm8zjg3kfSqOfQ2Jf3eNMZxQmKDehe2JozGVSNBQ==;5:gLWUUiyoRKCQm1Su2OrDFsBiRd/w6MaWPU01NwZTUf4ugdQcNxJZq6oine3/ph+T9Oqo5fWU0/nD+DQXHa15Z8j9R67XuO008+mazs/mkh3wOchdng870jUZ2JKPRP0a93iEy2vXWpG8tjwo7ycyWQ==;24:O9rA3O6PG6Jhl8Yz4Ms+5fnxRcZzD8D0Z03JjdWH0wcWM+yfaRrLvrIdLIxM1XjG7zkKIv2pU162GRZdQhDjzYLeNf6YrXdrqZJ8wKsFhUI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2144;7:rzxZGvuwkTrI3HDxQUXJAsDaZhzbyWDAdeNIn4X9BeN9dE1CrUBa8f4K5RAtc66y/C7UGvOTfhhpRQJNm9INoNorr3t3RwU3b0ZxYxkR4o0VG2vjx8qCrMXCysQnhyrbN2sMDRxOQEeLE6kD5DalqV/hmtf+Az89DBe6sbr8kIYVV3DG0ROevo/PUMHk4jVcYOHGuLswcOHwJRW4Fjk/fkiyOqkPCpaPqAEmvOjruUhRouPR0vvQzTbO/87y2be1+G1OJgbBnjGgpDGLF4cJhNEwnnOlGo1qyouuBeSSA8UnZivPYi+qhAZ85tvX8xtRWIC0IbcZZigO2q9Obs+ryw==;20:XrMpsZ95kQHlebWiMRaeA42+CIL3gDtulOFjlizeNZRiammc9Sm5HaNlPEjfRcMqC+RpD+YruBrTGDK51UsR3Sirkxvia5ElWPMAEWL5NEt6GG2KUE1tyBlPoGdvaorQkDed7MfRKakDTQhdksP81QYZxiIW8Ty/RQ+54saCJj8= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Feb 2017 07:44:11.5112 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2144 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/21/2017 10:16 PM, Cyrill Gorcunov wrote: > On Tue, Feb 21, 2017 at 10:41:12AM -0800, Andy Lutomirski wrote: >>> Thus lets add file position, inode and device number where >>> this target lays. This three fields can be used as a primary >>> key for sorting, and together with kcmp help CRIU can find >>> out an exact file target (from the whole set of processes >>> being checkpointed). >> >> I have no problem with this, but I'm wondering whether kcmp's ordered >> comparisons could also be used for this purpose. > > Yes it can, but it would increas number of kcmp calls signisicantly. Actually it shouldn't. If you extend the kcmp argument to accept the epollfd:epollslot pair, this would be effectively the same as if you had all your epoll-ed files injected into your fdtable with "strange" fd numbers. We already have two-level rbtree for this in criu, adding extended ("strange") fd to it should be OK. > Look, here is how we build files tree in criu: we take inode^sdev^pos > as a primary key and remember it inside rbtree while we're dumping files > (note also that we don't keep files opened but rather dump them in > chunks). Then once we find that two files have same primary key > we use kcmp to build subtree. This really helps a lot. And I plan > to do the same with target files from epolls: > > - they gonna be handled after all opened files of all processes > in container (or children processes if dumping single task), > thus the complete tree with primary key already will be built > > - on every target file I calculate primary key and then using > kcmp will find if file is exactly one matching > . >