Hello. On 06/04/2015 06:12 AM, David Miller wrote:
+ /* Received network control queue */ + if (ris0 & RIS0_FRF1) { + ravb_write(ndev, ~RIS0_FRF1, RIS0); + /* Timestamp of network control packets that is based + * on IEEE802.1AS, is used time synchronization of PTP. + * It should not be handled by NAPI scheduling, because + * it needs to be received as soon as possible. + */ + ravb_rx(ndev, NULL, RAVB_NC); + result = IRQ_HANDLED; + }
Nobody else makes this distinction, all packets should be processed via your NAPI path.
I see.
When I see people conditionally invoking netif_rx() vs. netif_receive_skb() in their packet receive routine, like conditional locking, it's a big red flag.
Furthermore, you should pass the NAPI context into ravb_rx() and use
I guess I should have one NAPI context per RX queue?
it so that you can invoke napi_gro_receive() on all of the packets and therefore support GRO.
Hmm, I don't think I have a hardware support for generic RX offload... I'm still unsure what it is anyway -- is it used for IP packet defragmentation? WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html