Whoops I guess hitting enter sent the email early.

The code looks roughly like such. The distance between the DD and EOP
checks and using packet contents is very short.

; rax points to the ring descriptor, thus rax+8 points to the status
.poll:
bt  qword [rax + 8], 32 ; DD
jnc short .poll
bt  qword [rax + 8], 33 ; EOP
jnc short .poll

mov   rdi, qword [rax + 0] ; Get the pointer to the packet from the
descriptor
movzx rbp,  word [rax + 8] ; Get the length of the packet

; Zero out the status
mov qword [rax + 8], 0

; Here is where I insert the mfence/sfence/sleep which fixes the problem

; From here I do UDP length validation on the packet, and the packet is not
; present yet, thus the UDP length is not updated.
------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to