exec: mark unassigned_io_ops as unlocked

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
seqlock: introduce read-write seqlock

This lets the read-side access run outside the BQL.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
timer: protect timers_state's clock with seqlock

The vm_clock may be read outside BQL. This will make timers_state
--the foundation of vm_clock exposed to race condition.
Using private lock to protect it.

Note in tcg mode, vm_clock still read inside BQL, so icount is
left without private lock's protection. As for cpu_ticks_* in
timers_state, it is still protected by BQL.

Lock rule: private lock innermost, ie BQL->"this lock"

Signed-off-by: Liu Ping Fan <pingfank@linux.vnet.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Liu Ping Fan <qemulist@gmail.com>
acpi: mark PMTIMER as unlocked

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
kvm: Switch to unlocked MMIO

Do not take the BQL before dispatching MMIO requests of KVM VCPUs.
Instead, call the unlocked version of address_space_rw. This enables
completely BQL-free MMIO handling in KVM mode for upcoming devices with
fine-grained locking.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>