Måns Rullgård <m...@mansr.com> :
> Francois Romieu <rom...@fr.zoreil.com> writes:
[...]
> > It looks like it receives, then tries to allocate new resources. If so
> > it may deplete the ring and you should instead consider allocating new
> > resources first, then receive data if alloc + map suceeded.
> 
> The hardware receives a frame and stores it in the provided DMA buffer,
> then raises an interrupt and moves on to the next buffer.  When a buffer
> is handed over to the network stack, a new one has to take its place in
> the DMA queue.  I'm not sure how you're suggesting this be done
> differently.

- The hardware raises an interrupt and moves on to the next packet
- The driver allocates a new buffer - call it Bob - and maps it.
  - If it succeeds
    - The driver unmaps the received packet
    - The driver hands the received packet to the network stack
    - The driver hands Bob to the hardware
  - It it fails
    - The driver updates the dropped packet stats
    - The driver recycles the received - yet non-unmapped - packet to the
      hardware

-- 
Ueimor
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to