diff options
| author | Dirk Ziegelmeier <[email protected]> | 2017-12-24 13:02:30 +0100 |
|---|---|---|
| committer | Dirk Ziegelmeier <[email protected]> | 2017-12-24 13:02:30 +0100 |
| commit | 8f6b876ef940efb4e48afabea76dbb61b983f976 (patch) | |
| tree | 0b62c7229edb023b20a981679f1a365589e8016c /doc | |
| parent | 61e90d9fc0c75649eac88f23e0d9935052d09855 (diff) | |
Common pitfalls document: Add note that lwip writes to ethernet RX buffers (caching issue!)
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/doxygen/main_page.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/doc/doxygen/main_page.h b/doc/doxygen/main_page.h index e6bb023a..99f553c8 100644 --- a/doc/doxygen/main_page.h +++ b/doc/doxygen/main_page.h @@ -164,6 +164,19 @@ * @ref LOCK_TCPIP_CORE() and @ref UNLOCK_TCPIP_CORE(). * These macros cannot be used in an interrupt context! * Note the OS must correctly handle priority inversion for this. + * + * Cache issues + * ======================================== + * + * DMA-capable ethernet hardware and zero-copy RX + * ---------------------------------------------- + * + * lwIP changes the content of RECEIVED pbufs in the TCP code path. + * This implies one or more cacheline(s) of the RX pbuf become dirty + * and need to be flushed before the memory is handed over to the + * DMA ethernet hardware for the next telegram to be received. + * See http://lwip.100.n7.nabble.com/in-place-overwriting-of-payload-via-static-quot-tcphdr-quot-pointer-td31434.html + * for a more detailed explanation. */ /** |
