In the book of "Solaris 10 and OpenSolaris Kernel Architecture", it said:
the squeue is a common FIFO for both inbound and outbound packets, and only one thread is allowed to process it at any given time. As such, the per-CPU backlog is easy to figure out. If packets are queued, the squeue can switch the NIC associated with it from interrupt to polling mode. How can I know which mode the network card is currently using? Suppose the network card is bound to cpu 7, when working in interrupt mode, only cpu 7 will process the network data, so if cpu 7 is 100% used, and all other cpus are idle, the sever still has to problem to get/send data to client, right? And if work in polling mode, is it possible to use all cpu to get/send data? And is it possible to use dtrace to measure the latency because of the cpu is busy to handle network data? e.g, data were send from client at t1, and the data was first queued in t2 and then it processed by cpu at t3. Can we measure t2-t1 and t3-t1 using dtrace? # echo ::interrupts -d | mdb -k IRQ Vector IPL Bus Type CPU Share APIC/INT# Driver Name(s) 4 0xb0 12 ISA Fixed 4 1 0x0/0x4 asy#0 .... 21 0x42 5 PCI Fixed 6 2 0x0/0x15 nv_sata#1, ohci#0 *22 0x60 6 PCI Fixed 7 2 0x0/0x16 nv_sata#2, nge#0* ....
_______________________________________________ dtrace-discuss mailing list dtrace-discuss@opensolaris.org