lkml.org 
[lkml]   [2012]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCHv4 3/5] kvm: host side for eoi optimization
    On 05/17/2012 11:07 AM, Gleb Natapov wrote:
    > >
    > > No, let's refactor this so it makes sense. The {has|get}_interrupt
    > > split is the cause of the problem, I think. We need a single function,
    > > with callbacks that are called when an event happens. The callbacks can
    > > request an irq window exit, inject an interrupt, play with pveoi, or
    > > cause a #vmexit.
    > >
    > Not sure what do you mean here. I kind of like the code we have now, but
    > this may be because I understand it :)

    Right now we have

    if (has_interrupt)
    do something
    if (get_interrupt)
    do_something_else

    this duplicates some of the logic and causes non-atomicty (which isn't a
    problem per se, but requires us to think of what happens if conditions
    change between the two steps).

    What I'm thinking of is

    void process_interrupt(bool (*handle)());

    Where the return value tells us whether the interrupt was accepted by
    the handler. The callback could decide to enable the irq window, to
    queue the interrupt, or to #vmexit (note that the latter can return
    either true or false, depending on whether vmx is configured to ack the
    interrupt or not; svm would return true here if interrupts are intercepted).

    --
    error compiling committee.c: too many arguments to function



    \
     
     \ /
      Last update: 2012-05-17 12:21    [W:4.116 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site