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-users

[Xen-users] RE: DMA Crash when I test GPL Windows PV Driver by iperf

To: "Qian Huibin" <qianhb@xxxxxxxxx>, <xen-users@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-users] RE: DMA Crash when I test GPL Windows PV Driver by iperf
From: "James Harper" <james.harper@xxxxxxxxxxxxxxxx>
Date: Mon, 9 Nov 2009 13:42:49 +1100
Cc:
Delivery-date: Sun, 08 Nov 2009 18:43:35 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <56a5ff300911080522y35366df2u42d8b36ec6ae0270@xxxxxxxxxxxxxx>
List-help: <mailto:xen-users-request@lists.xensource.com?subject=help>
List-id: Xen user discussion <xen-users.lists.xensource.com>
List-post: <mailto:xen-users@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-users>, <mailto:xen-users-request@lists.xensource.com?subject=unsubscribe>
References: <56a5ff300911080522y35366df2u42d8b36ec6ae0270@xxxxxxxxxxxxxx>
Sender: xen-users-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: Acpgdqw3jwR3s3WDQ+evhh+T8sWV0gAb3pVA
Thread-topic: DMA Crash when I test GPL Windows PV Driver by iperf

> -----Original Message-----
> From: Qian Huibin [mailto:qianhb@xxxxxxxxx]
> Sent: Monday, 9 November 2009 00:23
> To: xen-users@xxxxxxxxxxxxxxxxxxx
> Cc: James Harper
> Subject: DMA Crash when I test GPL Windows PV Driver by iperf
> 
> Hey All,
> 
> When I did a test of GPL Windows PV Driver on Windows XP SP2 by iperf,
I found
> a DMA Crash.
> And the Crash occurs every times.
> The test is as following:
> I install GPL Windows PV Driver (0.10.0.130) for XP as DomU , and Suse
11 as
> Dom0 on Xen 3.3.1.
> When I set DomU as iperf's Client and Dom0 as Server.
> 
> iperf client on DomU (XP):
> iperf -c $SERVER_IP -i 1 -l 1 -w 64k
> iperf server on Dom0 (Suse 11 & xen 3.3.1)
> iperf -s -l 1 l -w 64k
> 
> Scatter/gather enabled
> 
> IF I SET -l (buff size ) as 1 byte ( in fact from 1 byte to 9 bytes),
the DomU
> (XP) crashed everything (Scatter/gather enabled).
> 
> I use windbg to analyze the Windows Mem Dump, I found the crash
callstack  as
> following:
> 
> XenNet_RxBufferCheck() -> ... ->  XenPci_DOP_BuildScatterGatherList()
->
> XenPci_DOP_BuildScatterGatherListButDontExecute()
> 
>         for (i = 0; remaining > 0; i++)
>         {
>           pfn = MmGetMdlPfnArray(curr_mdl)[pfn_offset + i];
>           ASSERT(pfn);
>           gref = (grant_ref_t)GntTbl_GrantAccess(xpdd, 0, (ULONG)pfn,
FALSE,
> INVALID_GRANT_REF);
>           ASSERT(gref != INVALID_GRANT_REF); // gref gets a value of
> INVALID_GRANT_REF, Crash occurs!!!
>           sglist->Elements[sg_element].Address.QuadPart =
(LONGLONG)(gref <<
> PAGE_SHIFT) | offset;
>           sglist->Elements[sg_element].Length = min(min(PAGE_SIZE -
offset,
> remaining), total_remaining);
>           total_remaining -= sglist->Elements[sg_element].Length;
>           remaining -= sglist->Elements[sg_element].Length;
>           offset = 0;
>           sg_element++;
>         }
> I donot know how to fix it.
> I think the Satter/Gather is related to transfer NOT receive, why
crash when
> receving data.
> because of  -l set as 1 byte, then using more gref to store outgoing
data, and
> gref is NOT enough?
> 
> pls have a look at this problem.
> 

I don't have an XP machine at the moment, and it seems to work fine
under 2003. Are you able to reproduce it under 2003?

There is an upper limit on the number of gref's that
BuildScatterGatherListButDontExecute will get, otherwise it will just
tell Windows to coalesce the buffers itself.

James

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users

<Prev in Thread] Current Thread [Next in Thread>