Il 28/08/2013 05:26, Lei Li ha scritto: >>> >>> RAMBlock structs are not visible outside of exec.c and arch_init.c, >>> how did you do this? >> >> Hi Michael, >> >> Good catch! >> Actually this is the 'Known issue' that I listed in the cover >> letter, and I planed to ask suggestions on this. >> >> Currently the implementation of override of the RDMA hook like >> save_page for localhost migration needs to have knowledge of >> MemoryRegion and RAMBlock, say, when saving ram page, need to know >> which RAMBlock the given ram address save_page hook passed is >> belong to, or which is the last ram block has been sent. But seems >> that such structs can not be exported to the private code in >> migration-local.c. >> >> My guess for now is that there might be two possible ways to handle this: >> >> 1) Choose another way around, like representation of a RAMBlock and >> MemoryRegion from localhost migration perspective. This might need >> more work to handle the descriptions. >> >> 2) It could be exported directly into private code like migration-local.c >> through some ways that I don't know yet. I remembered that the >> implementation of postcopy migration did this. >> >> So I'd like to post and ask for your suggestions to make sure it's the >> right and best way to handle. > > Hi Paolo, > > Any suggestions on this?
Unlike the RAM constants and migration states, I think exporting MemoryRegion (not sure about RAMBlock) is fine. In fact, replacing the save_page hook's block_offset argument with a MemoryRegion would be a nice cleanup. Paolo