1. 25 10月, 2007 1 次提交
  2. 23 10月, 2007 4 次提交
    • R
      Remove old lguest I/O infrrasructure. · 15045275
      Rusty Russell 提交于
      This patch gets rid of the old lguest host I/O infrastructure and
      replaces it with a single hypercall "LHCALL_NOTIFY" which takes an
      address.
      
      The main change is the removal of io.c: that mainly did inter-guest
      I/O, which virtio doesn't yet support.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      15045275
    • R
      Boot with virtual == physical to get closer to native Linux. · 47436aa4
      Rusty Russell 提交于
      1) This allows us to get alot closer to booting bzImages.
      
      2) It means we don't have to know page_offset.
      
      3) The Guest needs to modify the boot pagetables to create the
         PAGE_OFFSET mapping before jumping to C code.
      
      4) guest_pa() walks the page tables rather than using page_offset.
      
      5) We don't use page_offset to figure out whether to emulate: it was
         always kinda quesationable, and won't work for instructions done
         before remapping (bzImage unpacking in particular).
      
      6) We still want the kernel address for tlb flushing: have the initial
         hypercall give us that, too.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      47436aa4
    • J
      Make hypercalls arch-independent. · b410e7b1
      Jes Sorensen 提交于
      Clean up the hypercall code to make the code in hypercalls.c
      architecture independent. First process the common hypercalls and
      then call lguest_arch_do_hcall() if the call hasn't been handled.
      Rename struct hcall_ring to hcall_args.
      
      This patch requires the previous patch which reorganize the layout of
      struct lguest_regs on i386 so they match the layout of struct
      hcall_args.
      Signed-off-by: NJes Sorensen <jes@sgi.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      b410e7b1
    • J
      Move lguest hcalls to arch-specific header · c37ae93d
      Jes Sorensen 提交于
      Move architecture specific portion of lg_hcall code to asm-i386/lg_hcall.h
      and have it included from linux/lguest.h.
      
      [Changed to asm-i386/lguest_hcall.h so documentation finds it -RR]
      Signed-off-by: NJes Sorensen <jes@sgi.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Cc: Jes Sorensen <jes@sgi.com>
      c37ae93d
  3. 29 7月, 2007 1 次提交
    • R
      Provide timespec to guests rather than jiffies clock. · 6c8dca5d
      Rusty Russell 提交于
      A non-periodic clock_event_device and the "jiffies" clock don't mix well:
      tick_handle_periodic() can go into an infinite loop.
      
      Currently lguest guests use the jiffies clock when the TSC is
      unusable.  Instead, make the Host write the current time into the lguest
      page on every interrupt.  This doesn't cost much but is more precise
      and at least as accurate as the jiffies clock.  It also gets rid of
      the GET_WALLCLOCK hypercall.
      
      Also, delay setting sched_clock until our clock is set up, otherwise
      the early printk timestamps can go backwards (not harmful, just ugly).
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6c8dca5d
  4. 27 7月, 2007 1 次提交
  5. 20 7月, 2007 2 次提交
    • R
      lguest: the host code · d7e28ffe
      Rusty Russell 提交于
      This is the code for the "lg.ko" module, which allows lguest guests to
      be launched.
      
      [akpm@linux-foundation.org: update for futex-new-private-futexes]
      [akpm@linux-foundation.org: build fix]
      [jmorris@namei.org: lguest: use hrtimers]
      [akpm@linux-foundation.org: x86_64 build fix]
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Eric Dumazet <dada1@cosmosbay.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d7e28ffe
    • R
      lguest: the guest code · 07ad157f
      Rusty Russell 提交于
      lguest is a simple hypervisor for Linux on Linux.  Unlike kvm it doesn't need
      VT/SVM hardware.  Unlike Xen it's simply "modprobe and go".  Unlike both, it's
      5000 lines and self-contained.
      
      Performance is ok, but not great (-30% on kernel compile).  But given its
      hackability, I expect this to improve, along with the paravirt_ops code which
      it supplies a complete example for.  There's also a 64-bit version being
      worked on and other craziness.
      
      But most of all, lguest is awesome fun!  Too much of the kernel is a big ball
      of hair.  lguest is simple enough to dive into and hack, plus has some warts
      which scream "fork me!".
      
      This patch:
      
      This is the code and headers required to make an i386 kernel an lguest guest.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      07ad157f