I am making a DM8168 network test. I found when my application send UDP packets quickly ,the former 62B of the adjacent two UDP packets would be identical.
testing on Ti EVM board (21bytes of data to be sent)
(My application send 21 bytes by UDP protocol, so the size of the packet was 63B. The transmission data contains an incremented count value, and the rest of the 21B was filled with the same data.)
See the screenshot:
---The serial number of the first packet was 682 and the populated data was 0xaa.
---The serial number of the second packet must be 683 (but it became 682) and the populated data must be 0xab(but only the last byte was 0xab).
I have dump the skb data transmitted data in the EMAC driver, all the bytes were correct. But when I used wireshark to capture the packet , I found the former 62B of the adjacent two UDP packets were identical.
If I invoked the "flush_dcache_page (virt_to_page (data))" in the start_xmit function the error probability would significantly reduce. Whether it is a result of cache coherence problem?
thanks