Make checkpoint for each vcpu.

Till now, support record these things:
1.regs
2.xsave
3.xcrs
4.sregs
5.msrs
6.mp_state
7.apic
8.vcpu events
9.debug regs

Interface:
int make_vcpu_checkpoint(struct kvm_vcpu *vcpu);
int vcpu_rollback(struct kvm_vcpu *vcpu);

TODO:
  Do we really need to roll back TSC, SYSTEM_TIME and WALL_CLOCK ?

Signed-off-by: ShiruRen <renshiru2000@gmail.com>
print vcpu status for debugging & bug fix

add func "void print_vcpu_status_info_for_debugging(CPUX86State *env)" for debugging;
rollback vcpu status once when VM are trapped 100 times;
bug fix: KVM_SET_VCPU_EVENTS

Signed-off-by: ShiruRen <renshiru2000@gmail.com>
Do not reset time

Do not reset MSR_KVM_WALL_CLOCK & MSR_KVM_SYSTEM_TIME msrs when rolling back.

Signed-off-by: ShiruRen <renshiru2000@gmail.com>
Eliminate warnings

TO RSR: Please keep an eye on your warnings when compiling.

Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
Remove duplicate macro definition

Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
Delete debug info and rename the interface

Delete all the debug information.
Rename interfaces make_vcpu_checkpoint -> vcpu_checkpoint.

Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
Seperate tm_sync from tm_commit, add tm_sync to the first tm_unsync_commit

Seperate the synchronize progress from tm_commit to tm_sync.
Use tm_sync to sync the first commit of unsync preemption.

Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
Merge disable process in tm_commit and tm_unsync_commit

Add tm_disable to handle record disable process.

Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>