Pre-Luminous also copies the provided buffer when using the C API -- it just copies it at a later point and not immediately. The eventual goal is to eliminate the copy completely, but that requires some additional plumbing work deep down within the librados messenger layer. On Thu, Jul 6, 2017 at 8:26 AM, Piotr Dałek <piotr.dalek@xxxxxxxxxxxx> wrote: > Hi, > > If you're using "rbd_aio_write()" in your code, be aware of the fact that > before Luminous release, this function expects buffer to remain unchanged > until write op ends, and on Luminous and later this function internally > copies the buffer, allocating memory where needed, freeing it once write is > done. > > If you write an app that may need to work with Luminous *and* pre-Luminous > versions of librbd, you may want to provide a version check (using > rbd_version() for example) so either your buffers won't change before write > is done or you don't incur a penalty for unnecessary memory allocation and > copy on your side (though it's probably unavoidable with current state of > Luminous). > > -- > Piotr Dałek > piotr.dalek@xxxxxxxxxxxx > https://www.ovh.com/us/ > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Jason _______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com