On 04.01.2013, at 16:25, Jason J. Herne wrote:
If I've followed the conversation correctly this is what needs to be done:
1. Remove the level parameters from kvm_arch_get_registers and
kvm_arch_put_registers.
2. Add a new bitmap parameter to kvm_arch_get_registers and
kvm_arch_put_registers.
I would combine these into "replace levels with bitmap".
3. Define a bit that correlates to our current notion of "all runtime
registers". This bit, and all bits in this bitmap, would be architecture specific.
Why would that bit be architecture specific? "All runtime registers" == "registers
that gdb can access" IIRC. The implementation on what exactly that means obviously is
architecture specific, but the bit itself would not be, as the gdbstub wants to be able to
synchronize in arch independent code.
4. Remove the cpustate->kvm_sync_dirty field. Replace it with a bitmap that
tracks which bits are dirty and need to be synced back to KVM-land.
5. As we do today, we'll assume registers are dirty and turn on their corresponding bit
in this new bitmap whenever we "get" the registers from KVM.
Yes. Changing these semantics is nothing for today :).
6. Add other bits as needed on a case by case basis.
Does this seem to match what was discussed, and what we want to do?
It's probably the best way forward, keeping everyone happy.
Please coordinate with Bharat on who actually wants to sit down to implement
this. Or if you're quick you might be able to beat him to it regardless thanks
to time zones :).