I'm still trying to follow a packet (or even better an sk_buff) from the
NIC card to user space. I think I have a good chunk of it figured out,
but I'm missing a bit from the time that the __netif_rx_schedule()
routine calls __cpu_raise_softirq() until the routine net_rx_action()
occurs. I read in a book on Linux TCP/IP implementation that the
softirq basically leads to a call to net_rx_action(), but I don't see
the connection yet. It's probably due to my lack of understanding of
IRQ's (and software IRQ's).
Any help is appreciated.
Thanks,
Josh
On Sun, 22 Dec 2002, Joshua Stewart wrote:
| I'm still trying to follow a packet (or even better an sk_buff) from the
| NIC card to user space. I think I have a good chunk of it figured out,
| but I'm missing a bit from the time that the __netif_rx_schedule()
| routine calls __cpu_raise_softirq() until the routine net_rx_action()
| occurs. I read in a book on Linux TCP/IP implementation that the
| softirq basically leads to a call to net_rx_action(), but I don't see
| the connection yet. It's probably due to my lack of understanding of
| IRQ's (and software IRQ's).
|
| Any help is appreciated.
What are you going to do with this good info when you have it?
Something like putting it on a web page would be very good, so that
other people with similar questions can have a reference to look at.
--
~Randy
On Sun, 22 Dec 2002, Joshua Stewart wrote:
| After I understand it all, I will not be against putting together an
| explanation of the whole process and posting it back to this mailing
| list, or trying to find a Linux website that will host it. Is this type
| of this suitable for the Linux Documentation Project website?
|
| Josh
Yes, it should be fine for LDP.
Thanks,
--
~Randy
| On Sun, 2002-12-22 at 16:15, Randy.Dunlap wrote:
| > On Sun, 22 Dec 2002, Joshua Stewart wrote:
| >
| > | I'm still trying to follow a packet (or even better an sk_buff) from the
| > | NIC card to user space. I think I have a good chunk of it figured out,
| > | but I'm missing a bit from the time that the __netif_rx_schedule()
| > | routine calls __cpu_raise_softirq() until the routine net_rx_action()
| > | occurs. I read in a book on Linux TCP/IP implementation that the
| > | softirq basically leads to a call to net_rx_action(), but I don't see
| > | the connection yet. It's probably due to my lack of understanding of
| > | IRQ's (and software IRQ's).
| > |
| > | Any help is appreciated.
| >
| > What are you going to do with this good info when you have it?
| > Something like putting it on a web page would be very good, so that
| > other people with similar questions can have a reference to look at.
| >
| > --
| > ~Randy
After I understand it all, I will not be against putting together an
explanation of the whole process and posting it back to this mailing
list, or trying to find a Linux website that will host it. Is this type
of this suitable for the Linux Documentation Project website?
Josh
On Sun, 2002-12-22 at 16:15, Randy.Dunlap wrote:
> On Sun, 22 Dec 2002, Joshua Stewart wrote:
>
> | I'm still trying to follow a packet (or even better an sk_buff) from the
> | NIC card to user space. I think I have a good chunk of it figured out,
> | but I'm missing a bit from the time that the __netif_rx_schedule()
> | routine calls __cpu_raise_softirq() until the routine net_rx_action()
> | occurs. I read in a book on Linux TCP/IP implementation that the
> | softirq basically leads to a call to net_rx_action(), but I don't see
> | the connection yet. It's probably due to my lack of understanding of
> | IRQ's (and software IRQ's).
> |
> | Any help is appreciated.
>
> What are you going to do with this good info when you have it?
> Something like putting it on a web page would be very good, so that
> other people with similar questions can have a reference to look at.
>
> --
> ~Randy
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
Em Sun, Dec 22, 2002 at 04:11:37PM -0500, Joshua Stewart escreveu:
> I'm still trying to follow a packet (or even better an sk_buff) from the
> NIC card to user space. I think I have a good chunk of it figured out,
> but I'm missing a bit from the time that the __netif_rx_schedule()
> routine calls __cpu_raise_softirq() until the routine net_rx_action()
> occurs. I read in a book on Linux TCP/IP implementation that the
> softirq basically leads to a call to net_rx_action(), but I don't see
> the connection yet. It's probably due to my lack of understanding of
> IRQ's (and software IRQ's).
You need to read about softirqs, but here is a quick explanation: there are
several points where softirqs are serviced, like bottom halves were in the
past (softirqs are much nicer), one example:
do_IRQ -> irq_exit -> do_softirq -> net_rx_action
So basically search for places calling do_softirq, they look if there is
softirqs pending and call do_softirq that will call the appropriate _action
function registered at softirq creation (look at net/core/dev.c, function
net_dev_init, line 2875.
- Arnaldo