|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Infinte loop in RtlPrefetchMemoryNonTemporal under Windows
I have been trying to track down a problem that occurs when my GPLPV
drivers give Windows a packet with the NdisPacketTcpChecksumSucceeded
flag set. The problem is that the machine locks hard.
After some tedious work with the debugger, I have found that Windows
makes a call to a routine called RtlPrefetchMemoryNonTemporal, which
looks like this:
8088e579 mov eax,dword ptr [nt!KePrefetchNTAGranularity 8088e57e
0f184100 prefetchnta [ecx]
8088e582 add ecx,eax
8088e584 sub edx,eax
8088e586 ja nt!RtlPrefetchMemoryNonTemporal+0x6 (8088e57e)
8088e588 ret
Unfortunately it appears that the value at nt!KePrefetchNTAGranularity
is 0, hence the infinite loop.
Is there anything in Xen that could cause Windows to put a zero in
there? The other (more likely?) alternative is that I'm doing something
wrong in my driver that is causing that value to be stepped on. It seems
really strange that I could so neatly step on that value without
breaking the machine in countless other ways though...
The problem only appeared when I upgraded from 3.2.1 to 3.3.0 too.
Any suggestions? It's driving me crazy!
Thanks
James
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] Infinte loop in RtlPrefetchMemoryNonTemporal under Windows,
James Harper <=
|
|
|
|
|