lkml.org 
[lkml]   [2009]   [Jun]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 14/16] paravirtualize IO permission bitmap
    On Tue, 12 May 2009, Jeremy Fitzhardinge wrote:

    > From: Christophe Saout <chtephan@leto.intern.saout.de>
    >
    > A PV Xen guest kernel has no TSS of its own, so the IO permission
    > bitmap must be paravirtualized. This patch adds set_io_bitmap
    > as a paravirt op, and defines a native version which updates the tss,
    > and a Xen version which uses a hypercall.
    >
    > This is much easier now that 32 and 64-bit use the same code to
    > manage the IO bitmap.

    Sigh, is there a plan to limit the paravirt horror at some point or
    are we keeping on adding to it forever ?

    > --- a/arch/x86/kernel/ioport.c
    > +++ b/arch/x86/kernel/ioport.c
    > @@ -30,14 +30,31 @@ static void set_bitmap(unsigned long *bitmap, unsigned int base,
    > }
    > }

    This needs kernel doc annotation and a comment about the calling
    conventions i.e. preemption disabled.

    > +void native_set_io_bitmap(struct thread_struct *t,
    > + int changed, unsigned long bytes_updated)
    > +{
    > + struct tss_struct *tss;
    > +
    > + if (!bytes_updated)
    > + return;
    > +
    > + tss = &__get_cpu_var(init_tss);
    > +
    > + /* Update the TSS: */
    > + if (t->io_bitmap_ptr)
    > + memcpy(tss->io_bitmap, t->io_bitmap_ptr, bytes_updated);
    > + else
    > + memset(tss->io_bitmap, 0xff, bytes_updated);
    > +}
    > +

    Thanks,

    tglx


    \
     
     \ /
      Last update: 2009-06-02 18:19    [W:6.892 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site