rx_interrupt - atomic??? please see test plots

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



hello,

i have made some measurements and it looks like rx_interrupt() called to:
- read packet from eth
- alloc skb
- enqueue skb in backlog

...is not atomic (interrupt context can not be interrupted by sth
else...?...).

I though that reading packet into memory (skb) when packet comes into NIC is
done in interrupt context, so (i thought) once rx_interrupt is called for a
packet entering kernel, it can not be interrupted until skb is allocated and
enqueued for later processing (in backlog).

Please see attached figure (Dok1.doc) showing cycles count for the
rx_interrupt phase (until packet is put to backlog) (plot only shows "200
Kbps" flow packets).

Test configuration details:
IPv4,
Router with 3 NIC, 2-INPUTS, 1-OUTPUT (with bottleneck 2Mbps to stimulate
diffserv mechanisms
input flows (both PERIODIC): 200Kbps (pkt_size = 96B)and 2Mbps
(pkt_size=1000B) are sent one for each input NIC respectively

I wonder what the monotonical line (looks like some kind of artefact) on
cycles plot means??? Could someone figure out (i suspect either 2Mbps
synchronises somehow with 200Kbps reception causing rise in cycle count or
real time clock interrupts synchronixe somehow)

any comments on this???

regards

adam

Attachment: Dok1.doc
Description: MS-Word document


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux