It does internally -- which requires the extra copy from C array to a bufferlist. I had a PR for wrapping the C array into a bufferlist (w/o the copy), but Sage pointed out a potential issue with such implementations (which might still be an issue w/ this PR). [1] https://github.com/yuyuyu101/ceph/commit/794b49b5b860c538a349bdadb16bb6ae97ad9c20 On Wed, Jan 11, 2017 at 12:42 PM, Samuel Just <sjust@xxxxxxxxxx> wrote: > Jason: librbd itself uses the librados C++ api though, right? > -Sam > > On Wed, Jan 11, 2017 at 9:37 AM, Jason Dillaman <jdillama@xxxxxxxxxx> wrote: >> +1 >> >> I'd be happy to tweak the internals of librbd to support pass-through >> of C buffers all the way to librados. librbd clients like QEMU use the >> C API and this currently results in several extra copies (in librbd >> and librados). >> >> On Wed, Jan 11, 2017 at 11:44 AM, Piotr Dałek <piotr.dalek@xxxxxxxxxxxx> wrote: >>> Hello, >>> >>> As the subject says - are here any users/consumers of librados C API? I'm >>> asking because we're researching if this PR: >>> https://github.com/ceph/ceph/pull/12216 will be actually beneficial for >>> larger group of users. This PR adds a bunch of new APIs that perform object >>> writes without intermediate data copy, which will reduce cpu and memory load >>> on clients. If you're using librados C API for object writes, feel free to >>> comment here or in the pull request. >>> >>> >>> -- >>> Piotr Dałek >>> >>> >>> _______________________________________________ >>> ceph-users mailing list >>> ceph-users@xxxxxxxxxxxxxx >>> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com >> >> >> >> -- >> Jason >> _______________________________________________ >> ceph-users mailing list >> ceph-users@xxxxxxxxxxxxxx >> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com -- Jason _______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com