1. 12 6月, 2009 3 次提交
    • M
      lguest: Segment selectors are 16-bit long. Fix lg_cpu.ss1 definition. · f086122b
      Matias Zabaljauregui 提交于
      If GDT_ENTRIES were every > 256, this could become a problem.
      
      Signed-off-by: Matias Zabaljauregui <zabaljauregui at gmail.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      f086122b
    • R
      lguest: improve interrupt handling, speed up stream networking · a32a8813
      Rusty Russell 提交于
      lguest never checked for pending interrupts when enabling interrupts, and
      things still worked.  However, it makes a significant difference to TCP
      performance, so it's time we fixed it by introducing a pending_irq flag
      and checking it on irq_restore and irq_enable.
      
      These two routines are now too big to patch into the 8/10 bytes
      patch space, so we drop that code.
      
      Note: The high latency on interrupt delivery had a very curious
      effect: once everything else was optimized, networking without GSO was
      faster than networking with GSO, since more interrupts were sent and
      hence a greater chance of one getting through to the Guest!
      
      Note2: (Almost) Closing the same loophole for iret doesn't have any
      measurable effect, so I'm leaving that patch for the moment.
      
      Before:
      	1GB tcpblast Guest->Host:		30.7 seconds
      	1GB tcpblast Guest->Host (no GSO):	76.0 seconds
      
      After:
      	1GB tcpblast Guest->Host:		6.8 seconds
      	1GB tcpblast Guest->Host (no GSO):	27.8 seconds
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      a32a8813
    • R
      lguest: fix race in halt code · abd41f03
      Rusty Russell 提交于
      When the Guest does the LHCALL_HALT hypercall, we go to sleep, expecting
      that a timer or the Waker will wake_up_process() us.
      
      But we do it in a stupid way, leaving a classic missing wakeup race.
      
      So split maybe_do_interrupt() into interrupt_pending() and
      try_deliver_interrupt(), and check maybe_do_interrupt() and the
      "break_out" flag before calling schedule.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      abd41f03
  2. 19 4月, 2009 1 次提交
  3. 30 3月, 2009 1 次提交
  4. 30 12月, 2008 1 次提交
  5. 27 5月, 2008 1 次提交
  6. 19 4月, 2008 1 次提交
  7. 30 1月, 2008 16 次提交
  8. 25 10月, 2007 2 次提交
  9. 23 10月, 2007 14 次提交