Re: [PATCH v8 1/4] arm/arm64: KVM: Add KVM_GET/SET_VCPU_EVENTS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi guys,

On 19/07/18 08:39, gengdongjiu wrote:
> On 2018/7/18 0:33, Peter Maydell wrote:
>> On 13 July 2018 at 16:47, James Morse <james.morse@xxxxxxx> wrote:
>>> From: Dongjiu Geng <gengdongjiu@xxxxxxxxxx>
>>>
>>> For the migrating VMs, user space may need to know the exception
>>> state. For example, in the machine A, KVM make an SError pending,
>>> when migrate to B, KVM also needs to pend an SError.
>>>
>>> This new IOCTL exports user-invisible states related to SError.
>>> Together with appropriate user space changes, user space can get/set
>>> the SError exception state to do migrate/snapshot/suspend.

>>> diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt
>>> index d10944e619d3..e3940f8715a5 100644
>>> --- a/Documentation/virtual/kvm/api.txt
>>> +++ b/Documentation/virtual/kvm/api.txt


>>> +Gets currently pending SError exceptions as well as related states of the vcpu.
>>
>> Any chance of expanding this to explain what this state actually is?
>> (ie something you could use to implement or review the userspace
>> code which has to manipulate it)
> sure, can expand it.
> 
> serror_pending means whether KVM is pending Serror for guest.
> serror_has_esr means whether KVM or user space can set the SError syndrome for guest.
> serror_esr means the value of SError syndrome.

I've had a go at something more verbose for this section:
------------------%<------------------
If the guest accesses a device that is being emulated by the host kernel in such
a way that a real device would generate a physical SError, KVM may make a
virtual SError pending for that VCPU. This system error interrupt remains
pending until the guest takes the exception by unmasking PSTATE.A.

Running the VCPU may cause it to take a pending SError, or make an access that
causes an SError to become pending. The event's description is only valid while
the VPCU is not running.

This API provides a way to read and write the pending 'event' state that is not
visible to the guest. To save, restore or migrate a VCPU the struct representing
the state can be read then written using this GET/SET API, along with the other
guest-visible registers. It is not possible to 'cancel' an SError that has been
made pending.

A device being emulated in user-space may also wish to generate an SError. To do
this the events structure can be populated by user-space. The current state
should be read first, to ensure no existing SError is pending. If an existing
SError is pending, the architectures 'Multiple SError interrupts' rules should
be followed. (2.5.3 of DDI0587.a "ARM Reliability, Availability, and
Serviceability (RAS) Specification").
------------------%<------------------


Thanks,

James



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux