[systemd-devel] Failed to run test-bus-zero-copy on ARM platform

David Herrmann dh.herrmann at gmail.com
Mon Jul 6 08:37:54 PDT 2015


Hi

On Mon, Jul 6, 2015 at 3:43 PM, eshark <eshark77 at 163.com> wrote:
>  Hi, All,
>         My Software environment is : systemd v219 +  kdbus-4.1-rc1 + kernel_3.10
> and my hardware platform is ARM CA9 quad core.
>
>         I failed to run the test-bus-zero-copy on my platform,  and then I traced into the issue ,
> and found that the reason is that the padding  KDBU_ITEM_PAYLOAD_VEC will  fail to pass the
> access_ok() in kdbus_pool_slice_copy_iovec().
>
>          In detail,    in kdbus_msg_scan_items() , there is
>        "iov->iov_base = (char  __user *)zeros"     ==> for example, the iov_base is 0xc0b1794c  on my platform
>   and
>        "static const char * const zeros = "\0\0\0\0\0\0\0";"
>
>         But in slice->pool->f->f_op->aio_write() , that is generic_file_aio_write() , which calls  access_ok(access_flags, iv->iov_base, iv->iov_len);
> And this will fail.
>
>        However,  I can run test-bus-zero-copy successfully  in Fedora21 Virtual Machine which runs on x86-64 platform.
> And  I run  systemd v219 +  kdbus-4.1-rc1 + kernel_3.18 in Fedora21 VM.
>
>         Could anyone give me some suggestion?

Your kdbus-module version must match your kernel version. If you use
the out-of-tree repository, use the "v4.1" branch for your 4.1 kernel,
the "v4.0" branch for your 4.0 kernel. No other combinations are
supported.

I also highly recommend to use the in-tree version of kdbus from Greg's tree:
http://git.kernel.org/cgit/linux/kernel/git/gregkh/char-misc.git/log/?h=kdbus
This is the officially supported version. The out-of-tree module is
just for development.

Thanks
David


More information about the systemd-devel mailing list