<div dir="auto">Thanks Pavel and Adrian for answers!</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 15, 2019, 6:53 AM Adrian Reber &lt;<a href="mailto:areber@redhat.com">areber@redhat.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Mar 15, 2019 at 01:40:02PM +0000, Pavel Emelianov wrote:<br>
&gt; On 3/15/19 9:20 AM, James Cui wrote:<br>
&gt; &gt; So the conclusion is to put code into go-criu and reimplements functionality in criu/lib/py right?<br>
&gt; <br>
&gt; Well, hopefully Adrian supports me on this -- yes put the code into go-criu, but keep the<br>
&gt; existing py code to let other people work on the anonymizing images task. If we find out<br>
&gt; we have time in summer to move even the new code -- we&#39;ll slightly correct the plan.<br>
<br>
Totally agree.<br>
<br>
&gt; &gt; Also are there any code that I&#39;d better to look at in go-criu to prepare this project?<br>
&gt; <br>
&gt; Adrian?<br>
<br>
Not sure I totally get that question. If it is about existing code in<br>
co-criu, there is not much code besides the RPC definition, the version<br>
check and the p-haul Go implementation.<br>
<br>
If it is about similar code, there is something in LXD and it is<br>
mentioned on the CRIU GSoC topic wiki page. That would probably be a<br>
good start.<br>
<br>
There is also the Python implementation which is the current reference<br>
implementation.<br>
<br>
                Adrian<br>
<br>
&gt; &gt; On Wed, Mar 13, 2019 at 11:02 AM Pavel Emelianov &lt;<a href="mailto:xemul@virtuozzo.com" target="_blank" rel="noreferrer">xemul@virtuozzo.com</a> &lt;mailto:<a href="mailto:xemul@virtuozzo.com" target="_blank" rel="noreferrer">xemul@virtuozzo.com</a>&gt;&gt; wrote:<br>
&gt; &gt; <br>
&gt; &gt;     On 3/13/19 7:51 PM, Adrian Reber wrote:<br>
&gt; &gt;     &gt; On Wed, Mar 13, 2019 at 02:56:52PM +0000, Pavel Emelianov wrote:<br>
&gt; &gt;     &gt;&gt; On 3/13/19 5:44 PM, Adrian Reber wrote:<br>
&gt; &gt;     &gt;&gt;&gt; On Wed, Mar 13, 2019 at 02:26:27PM +0000, Pavel Emelianov wrote:<br>
&gt; &gt;     &gt;&gt;&gt;&gt; On 3/13/19 11:10 AM, Adrian Reber wrote:<br>
&gt; &gt;     &gt;&gt;&gt;&gt;&gt; On Tue, Mar 12, 2019 at 09:14:47PM -0700, James Cui wrote:<br>
&gt; &gt;     &gt;&gt;&gt;&gt;&gt;&gt; Thanks Pavel and Adrian for the answers!<br>
&gt; &gt;     &gt;&gt;&gt;&gt;&gt;&gt; One question though. For the go implementation of CRIT, will it live in the<br>
&gt; &gt;     &gt;&gt;&gt;&gt;&gt;&gt; same repo of CRIU or some other repo (For example, I create my own repo in<br>
&gt; &gt;     &gt;&gt;&gt;&gt;&gt;&gt; github)?<br>
&gt; &gt;     &gt;&gt;&gt;&gt;&gt;&gt; I asked because I saw a repo called go-CRIU, is this the place all go<br>
&gt; &gt;     &gt;&gt;&gt;&gt;&gt;&gt; implementation should be?<br>
&gt; &gt;     &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;     &gt;&gt;&gt;&gt;&gt; I think it should live in the go-criu repository. I think it should be a<br>
&gt; &gt;     &gt;&gt;&gt;&gt;&gt; library which can be used by the new CRIT implementation but also be<br>
&gt; &gt;     &gt;&gt;&gt;&gt;&gt; used by other projects which need to read or write CRIU image files.<br>
&gt; &gt;     &gt;&gt;&gt;&gt;<br>
&gt; &gt;     &gt;&gt;&gt;&gt; Now a question from me :) Do we want to continue maintaining both criu<br>
&gt; &gt;     &gt;&gt;&gt;&gt; libs -- go anf py -- or make py version call the go one?<br>
&gt; &gt;     &gt;&gt;&gt;<br>
&gt; &gt;     &gt;&gt;&gt; Good question. Not sure.<br>
&gt; &gt;     &gt;&gt;&gt;<br>
&gt; &gt;     &gt;&gt;&gt; I think we need a go version at some point, so it makes sense to have<br>
&gt; &gt;     &gt;&gt;&gt; it. For LXD precopy migration I already implemented some image file<br>
&gt; &gt;     &gt;&gt;&gt; reading into LXD and it would make sense to maintain the image file<br>
&gt; &gt;     &gt;&gt;&gt; manipulation for Go in one place. But if it is maintained in the go-criu<br>
&gt; &gt;     &gt;&gt;&gt; repository it will not be automatically available for anyone checking<br>
&gt; &gt;     &gt;&gt;&gt; out CRIU. Which currently is really nice, you check out CRIU and you<br>
&gt; &gt;     &gt;&gt;&gt; have (python) CRIT for debugging.<br>
&gt; &gt;     &gt;&gt;<br>
&gt; &gt;     &gt;&gt; Absolutely.<br>
&gt; &gt;     &gt;&gt;<br>
&gt; &gt;     &gt;&gt;&gt; On the other hand if we have Go CRIT, which is also embedded into other<br>
&gt; &gt;     &gt;&gt;&gt; projects, it does not make sense to keep the Python CRIT libraries.<br>
&gt; &gt;     &gt;&gt;<br>
&gt; &gt;     &gt;&gt; But the CRIT tool itself -- should it also become golang-written in this case?<br>
&gt; &gt;     &gt;<br>
&gt; &gt;     &gt; Would make sense.<br>
&gt; &gt; <br>
&gt; &gt;     OK<br>
&gt; &gt; <br>
&gt; &gt;     &gt;&gt;&gt; I guess we wait if it works as good as the Python version or better and<br>
&gt; &gt;     &gt;&gt;&gt; decide then how we want to use it.<br>
&gt; &gt;     &gt;&gt;<br>
&gt; &gt;     &gt;&gt; Yes, but the reason I&#39;m asking is the &quot;anonymize image files&quot; task for this<br>
&gt; &gt;     &gt;&gt; GSoC. I guess it will be done on the py-crit basis, so we&#39;ll have two not equal<br>
&gt; &gt;     &gt;&gt; sets of functionalities in py vs go right at once :)<br>
&gt; &gt;     &gt;<br>
&gt; &gt;     &gt; So, hmm, it seems we did not coordinate our GSoC topics.<br>
&gt; &gt; <br>
&gt; &gt;     ^_^<br>
&gt; &gt; <br>
&gt; &gt;     &gt; Right now I<br>
&gt; &gt;     &gt; would say, let&#39;s first wait which of our topics are people interested in<br>
&gt; &gt; <br>
&gt; &gt;     <a href="https://criu.org/GSoC19_Students_Requests" rel="noreferrer noreferrer" target="_blank">https://criu.org/GSoC19_Students_Requests</a><br>
&gt; &gt; <br>
&gt; &gt;     and we have both -- go-images and anon-images covered.<br>
&gt; &gt; <br>
&gt; &gt;     &gt; and once we actually have results, we need to figure out which way we<br>
&gt; &gt;     &gt; want to go. Maybe the Go part is only a library and CRIT stays python<br>
&gt; &gt;     &gt; based, or maybe add the &quot;anonymize image files&quot; also to the Go<br>
&gt; &gt;     &gt; implementation.<br>
&gt; &gt;     &gt;<br>
&gt; &gt;     &gt; Not really sure how to best handle this. Any other ideas from you?<br>
&gt; &gt; <br>
&gt; &gt;     I agree with your proposal to start going with what we have and do anonymizer<br>
&gt; &gt;     in py and go-images from scratch for your needs first and see how it will go.<br>
&gt; &gt; <br>
&gt; &gt;     -- Pavel<br>
&gt; &gt; <br>
&gt; <br>
</blockquote></div>