lkml.org 
[lkml]   [2016]   [Mar]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PART1 RFC v3 12/12] svm: Manage vcpu load/unload when enable AVIC
    From
    Date
    Hi Radim,

    On 03/19/2016 04:44 AM, Radim Krčmář wrote:
    > 2016-03-18 01:09-0500, Suravee Suthikulpanit:
    >> From: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
    >> +
    >> + WRITE_ONCE(*entry, new_entry);
    >
    > This will translate to two writes in 32 bit mode and we need to write
    > physical ID first to avoid spurious doorbells ...
    > is the order guaranteed?

    Hm.. not sure on that.

    >> + } else {
    >> + new_entry = READ_ONCE(*entry);
    >> + /**
    >> + * This handles the case when vcpu is scheduled out
    >> + * and has not yet not called blocking. We save the
    >> + * AVIC running flag so that we can restore later.
    >> + */
    >
    > is_running must be disabled in between ...blocking and ...unblocking,
    > because we don't want to miss interrupts and block forever.
    > I somehow don't get it from the comment. :)

    Not sure if I understand your concern. However, the is_running bit
    setting/clearing should be handled in the avic_set_running below. This
    part only handles othe case when the is_running bit still set when
    calling vcpu_put (and later on loading some other vcpus). This way, when
    we are re-loading this vcpu, we can restore the is_running bit accordingly.

    Thanks,
    Suravee

    \
     
     \ /
      Last update: 2016-03-31 11:21    [W:5.374 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site