On 12/10/14 10:42 PM, Joe Thornber wrote: > On Wed, Dec 10, 2014 at 10:31:31PM +0900, Akira Hayakawa wrote: >> Joe, >> >>> So you copy the bio payload to a different block of ram and then >>> complete the bio? Or does the rambuf refer to the bio payload >>> directly? >> Good question. >> The answer is, copy the data (got by bio_data(bio)) to rambuf once >> and ack if it's not barrier things. >> It would be nice if data in rambuf points to bio payload but it now copies >> because bio payload can be reused after completion. Am I right? >> Is there a way of eliminate memory copying? > > You *have* to eliminate this memory copying. Remap the bios to the > relevant portion of your log, and don't complete them until you log > chunk is coherent. > Barrier writes don't ack until the log is written on cache device. I guess treating other writes as well will do this work. But, it will be much better if I can do this by manipulating reference count of the bio payload. I am not sure how the implementation would be. Anyway, thanks for advice, - Akira -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel