[CRIU] crtools error: "can't splice to pipe"
Cyrill Gorcunov
gorcunov at gmail.com
Wed Apr 30 04:21:47 PDT 2014
On Wed, Apr 30, 2014 at 03:17:03PM +0400, Pavel Emelyanov wrote:
> On 04/30/2014 02:28 PM, Cyrill Gorcunov wrote:
> >
> > Could you please try the patch attached? Need to figure out why access on
> > some pages are failing. The dump log will be big so don't get surprised.
>
> > @@ -68,6 +85,19 @@ static int dump_pages(struct parasite_dump_pages_args *args)
> > return -1;
> >
> > iovs = pargs_iovs(args);
> > +
> > + {
> > + struct iovec *v = &iovs[args->off];
> > + size_t i, j;
> > +
> > + for (i = 0, v = &iovs[args->off]; i < args->nr_segs; i++, v++) {
> > + for (j = 0; j < v->iov_len; j += PAGE_SIZE) {
> > + pr_msg("dump_pages %lx\n", (unsigned long)v->iov_base + j);
> > + builtin_memcpy(____data, v->iov_base + j, PAGE_SIZE);
> > + }
> > + }
> > + }
> > +
> > ret = sys_vmsplice(p, &iovs[args->off], args->nr_segs,
> > SPLICE_F_GIFT | SPLICE_F_NONBLOCK);
> > if (ret != PAGE_SIZE * args->nr_pages) {
> >
>
> The ____data thing is write-only. What is it for?
I need to read every page we're going to dump. The problem is that the kernel
fails to fetch page's data and I wanna test it.
More information about the CRIU
mailing list