WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH]: Remove "buffer half full" check from guest_console_

To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH]: Remove "buffer half full" check from guest_console_write
From: Chris Lalancette <clalance@xxxxxxxxxx>
Date: Wed, 16 Sep 2009 08:25:08 +0200
Delivery-date: Tue, 15 Sep 2009 23:27:16 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 2.0.0.23 (X11/20090825)
All,
     We've seen a case where booting Xen on a certain platform configured with a
serial console takes an unreasonably long time to boot (on the order of hours).
 Now, on this particular piece of hardware, it was determined that the serial
firmware actually has a bug.  That being said, I'm not sure that preventing boot
in the face of buggy serial hardware is a reasonable course of action.
Bare-metal Linux, for instance, boots fine although characters might be dropped
along the way.
     The problem seems to be the check in guest_console_write(), which has a
quench-type check at the top of the loop.  I assume the check is to prevent the
guest from completely flooding the serial console, but:

1)  It seems like a layering violation; a check here can (and does) prevent the
lower level serial code from doing the right thing.

2)  It seems redundant since c/s 17851.  That c/s added a very similar check
into __serial_putc(), so I don't think we need it here anymore.

This patch just removes the check entirely.  With this patch and c/s 17851 in
place, the problematic hardware boots in a normal amount of time (although it
still might drop characters, but I think this is the best we can do).

Signed-off-by: Chris Lalancette <clalance@xxxxxxxxxx>
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -332,13 +332,6 @@ static long guest_console_write(XEN_GUES
 
     while ( count > 0 )
     {
-        while ( serial_tx_space(sercon_handle) < (serial_txbufsz / 2) )
-        {
-            if ( hypercall_preempt_check() )
-                break;
-            cpu_relax();
-        }
-
         if ( hypercall_preempt_check() )
             return hypercall_create_continuation(
                 __HYPERVISOR_console_io, "iih",
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH]: Remove "buffer half full" check from guest_console_write, Chris Lalancette <=