Bypass the first log quantum of each vcpu

Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
Add conflict detection function to tm_unsync_commit

Now UNSYNC_PREEMPTION with HARD_MMU can support conflict detection and some basic
data analyse (e.g. conflict ratio).

Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
Add __mmu_walk_spt_fast and optimize code routine

Add __mmu_walk_spt_fast (though not faster) and optimize code routine of mmu_walk_spt.

Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
Add simulator to SOFTWARE logging mode

Change SOFT mode to fit for simulator.

Signed-off-by: Arthur Chunqi Li <yzt356@gmail.com>
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>