Re: [PATCH net 2/2] rxrpc: Fix the data_ready handler
From: David Howells <dhowells@redhat.com>
Date: 2018-10-05 16:33:24
Also in:
lkml
From: David Howells <dhowells@redhat.com>
Date: 2018-10-05 16:33:24
Also in:
lkml
Eric Dumazet [off-list ref] wrote:
sk_data_ready is not meant to process packets, it is meant to signal to another entity (preferably running in process context and thus with proper schedule points, and not blocking BH) that there is data ready to be consumed.
The issue is that I need to route the packets to the appropriate call, and the BH appears to be the right place to do this, especially as I can quickly parse and discard certain types of packet right there. If I move all of this to process context then that adds extra context switches between the routing process and the destination process.
Under DOS, it is possible multiple cpus will sk_data_ready in parallel.
Ummm... I've been led to believe that sk_data_ready will *not* be called in parallel and that the code it calls can assume non-reentrancy. Is this not the case? What about the patch I attached, whereby I use the encap_rcv() hook. Do you say that won't work? David