[CRIU] [PATCH 1/2] mount: handle tracefs more gracefully
Pavel Emelyanov
xemul at virtuozzo.com
Fri May 20 04:28:08 PDT 2016
On 05/18/2016 03:13 AM, Tycho Andersen wrote:
> Hi guys,
>
> On Tue, May 17, 2016 at 10:37:22AM -0700, Andrew Vagin wrote:
>> Hi Tycho,
>>
>> Honestly, I don't like this hack. I think it will not work in all cases.
>>
>> For example, we create a clean mount, if an required path is
>> overmounted:
>>
>> if (&c->siblings != &mi->bind->children) {
>> /* Get a copy of mi->bind without child mounts */
>> if (mount(mnt_path, mnt_clean_path, NULL, MS_BIND, NULL)) {
>> pr_perror("Unable to bind-mount %s to %s",
>> mi->bind->mountpoint, mnt_clean_path);
>> }
>> mnt_path = mnt_clean_path;
>> umount_mnt_path = true;
>> }
>>
>> so if we will create a clean mount for debugfs, we will lost tracefs.
>>
>> Do you bind-mount debugfs from host in a container? If it's yes, you probably
>> use --mnt-ext-map options for it. Maybe we can add recursive external mounts
>> or something like this.
>
>>From our IRC discussion, avagin suggested,
>
> avagin | --mnt-ext-map xxx:yyy:opts
>
> which is fine with me. For now, we only need a few options:
>
> 'r' == MS_REC
> 'i' == ignore the mount on dump (i.e. don't even put it in the images)
>
> with a combination of these two options, I think that we can make the
> tracefs case work without any other changes to CRIU.
>
> One other thing I noticed is that --ext-mount-map splits on `:`, which
> will be wrong for paths with a `:` in them. Maybe we don't care about
> that right now, though :)
>
> What do you guys think? It will work, but it will require everyone who
> mounts debugfs in a container to handle it this same way, as opposed
> to being in CRIU proper.
>
> Another way would be to drop the FSTYPE__TRACEFS special case from
> proc_parse.c in the first patch, and add some kind of hook to the
> struct fstype which says whether or not to record the fs in the dump
> image (maybe just a different return value from ->parse?). See the
> attached patch for what that would look like.
I like the way it's in this patch :) So patch's applied, thanks, hopefully
Andrey will like it too :)
And a usual grumble -- would you cook a test for this? :)
-- Pavel
More information about the CRIU
mailing list