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] Fox for pcnet device model data corruption

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] Fox for pcnet device model data corruption
From: "Kamble, Nitin A" <nitin.a.kamble@xxxxxxxxx>
Date: Fri, 24 Feb 2006 16:10:00 -0800
Cc: Ian Pratt <m+Ian.Pratt@xxxxxxxxxxxx>
Delivery-date: Sat, 25 Feb 2006 00:10:28 +0000
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/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
Thread-index: AcY5n9Ev9Xadb9H0QfWHMMQR6SnhRQ==
Thread-topic: [PATCH] Fox for pcnet device model data corruption

Hi Ian,

   The attached patch fixes pcnet data corruption for VMX guests as reported by you.

All the packets go through the qemu generic packet interface to the specific device model. In this case the device model is pcnet.

   The pcnet device model receiver is registered with it like this.

qemu_add_read_packet(nd, pcnet_can_receive, pcnet_receive, d);

   pcnet_can_receive function is used to tell the generic qemu framework that the DM can receive packets. It is suppose block incoming packets in the cases such as when the pcnet driver is not yet started by the OS or pcnet device is suspended or stopped by the OS or it is not ready to receive more packets.

    When the traffic is heavy on the DM, its receive rings can get filled up, and it will has to drop the receiving packets. This patch detects this situation in the pcnet_can_receive() function and avoids dropping of packets. This mechanism is working as a bandwidth handshaking between device model and the sender. Dm is saying send me up to the rate at which I can handle it.


Signed-Off-By: Nitin A Kamble <nitin.a.kamble@xxxxxxxxx>


Thanks & Regards,



Open Source Technology Center, Intel Corp


Attachment: pcnet_corruption_fix.patch
Description: pcnet_corruption_fix.patch

Xen-devel mailing list