 
	
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-users] 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() { 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. Thanks -- Huibin.QIAN Hangzhou,China _______________________________________________ Xen-users mailing list Xen-users@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-users 
 
 | 
|  | Lists.xenproject.org is hosted with RackSpace, monitoring our |