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/
Home Products Support Community News


[Xen-devel] [PATCH] [QEMU-DM] Upgrade emulated UART to 16550A.

To: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] [QEMU-DM] Upgrade emulated UART to 16550A.
From: "Trolle Selander" <trolle.selander@xxxxxxxxx>
Date: Tue, 4 Dec 2007 17:32:39 +0100
Delivery-date: Tue, 04 Dec 2007 08:33:20 -0800
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type; bh=1v1H5GcCkL1X7LbnisL501NedT5BG1srb77DjLAal3I=; b=OKDWvswg53VVmVTTV01MSwFu32YH/9m0+aIRX1qBpMoCG2cxWR/h+9skq+kv3AmYfmrPFyzCKJHq3Uyt6cauApVwGgcjDyZQ5WzT+MQt0T2IEdikQlAOyV/kV0OlgIXRp4pzk2Ji30Gn3m64pxPQeCPWELve02aVQa1kTj6PQig=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=received:message-id:date:from:to:subject:mime-version:content-type; b=tXSw+t70iMFljudnhbw1AUi6RWmvyYYCZrpJju/QSPZobiPj0YnyuKJguSRUJzR7c+deBbK63KlSOGpxwuomqru2tCnmnS6DeY6jmptDYlgW6LRywcQCJ4jfCAqKN0AcctP0V/LWm/EfnfKUae4PFH1TO4clFOH1sHSRxt5VI68=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
This patch adds 16550 emulation to qemu-dm. I still consider it a work in progress, but from my testing, it consistently performs better than the old code already, sometimes considerably so (on my laptop, dumping out data over serial from a HVM DomU -> pty in Dom0 was up to 5.3 times faster than with the old 16450 code). I can consistenly reach full 115200 baud speeds over physical serial lines when the virtual device is backed by a phys port, which I never could with the old code.

There are still some things to be done. I want to add proper error handling, so that overflow/framing & parity errors on the physical port get detected and reported by the virtual port. Also, now that FIFOs are in place, I believe performance could be improved significantly by putting some code into the hypervisor so that reads & writes from the FIFOs don't have to exit into qemu-dm at all. I'm also reading up on the specs for newer uarts with deeper FIFOs.

However, for now, I think this patch is already quite good, and I don't think I should sit on it any longer. I'm looking forward to hearing what results others will get with it.

It applies on top of my previously posted patch for modem status/control line passthrough, so I'm re-posting that patch here as well to make things easier.

Attachment: xen-qemudm-modemcontrol.patch
Description: Text Data

Attachment: xen-qemudm-16550.patch
Description: Text Data

Xen-devel mailing list