On Thu, Apr 12, 2012 at 2:38 PM, Konstantin Belousov <kostik...@gmail.com> wrote: > And, on receive, the atom board does receive interrupts, em0:rx 0 counter > in vmstat -i increases. Even more fun, the sysctl dev.em.0.debug > shows increasing hw rdh (as I understand, this is hardware 'last > received' packet pointer for rx ring). So I looked at the packet > descriptor at hw rdt index, and there I see > (kgdb) p/x ((struct adapter *)0xffffff80010e4000)->rx_rings->rx_base[78] > $11 = {buffer_addr = 0x12a128800, length = 0x5ea, csum = 0x3c2b, status = 0x0, > errors = 0x0, special = 0x0}
This looks like a buffer address, not a written-back descriptor(0x12a128800 being aligned to a 2048 byte boundary is a big clue). Is it easy to check the mbuf in rx_rings->rx_buffers[78].m_head and see whether the buffer in the mbuf there has that physical address? If that is a buffer address then the driver must be updating descriptors in rx_base that are owned by hardware, or somehow forgetting to update rdt and rxr->next_to_check. _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"