lkml.org 
[lkml]   [2007]   [Mar]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable


    On Mon, 19 Mar 2007, Jeremy Fitzhardinge wrote:
    >
    > Zachary Amsden wrote:
    > > For VMI, the default clobber was "cc", and you need a way to allow at
    > > least that, because saving and restoring flags is too expensive on x86.
    >
    > According to lore (Andi, I think), asm() always clobbers cc.

    On x86, yes. Practically any instruction will clobber cc anyway, so it's
    the default.

    Although the gcc guys have occasionally been suggesting we should set it
    in our asms.

    > Actually, it still does need a temp register. The sequence for cli is:
    >
    > mov %fs:xen_vcpu, %eax
    > movb $1,1(%eax)

    We should just do this natively. There's been several tests over the years
    saying that it's much more efficient to do sti/cli as a simple store, and
    handling the "oops, we got an interrupt while interrupts were disabled" as
    a special case.

    I have this dim memory that ARM has done it that way for a long time
    because it's so expensive to do a "real" cli/sti.

    And I think -rt does it for other reasons. It's just more flexible.

    Linus

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-03-20 16:13    [W:4.187 / U:0.464 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site