hey Casey, i've been thinking about how to better integrate seastar::temporary_buffer and seastar::packet into our denc and messenger subsystems based on your wip-seastar-msg branch. as you pointed out to me that > the conversions between ceph::buffer::ptr and seastar::temporary_buffer in https://github.com/cbodley/ceph/tree/wip-seastar-msg/ work, but they cost an allocation in both directions (seastar::make_object_deleter() has to allocate for type erasure). and just like ceph::buffer::ptr, seastar::temporary_buffer also manages the life cycle of the underlying memory chunk using refcount. it's a waste to do the refcounting for the same mem chunk twice in the same application. if we want to avoid the overhead of duplicated refcounting and allocation in the conversion to and from ceph::buffer::ptr, i think, we need to allocate the temporary_buffer along with buffer::ptr. in other words, to include seastar::temporary_buffer as a member variable in ceph::buffer:ptr. i am preparing a change to prototype this approach. the downside of it is: - we need to include a placeholder structure in buffer.h for seastar::tempoary_buffer<char>. and cast it to seastar::tempoary_buffer<char> in buffer.cc . otherwise we need to include seastar headers in librados. cheers, -- Regards Kefu Chai -- 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