Fwd: ixgbe Jumbo race condition leading to Deadlock

Kaushal Bhandankar kaushalgoa at gmail.com
Sun Jul 7 10:33:27 UTC 2013


In 82599, for a Jumbo packet of 9.5 K ( which consumes 5 descriptors of
2048 bytes each ), when does the Descriptor write back happen ? Does it
happen per Descriptor or once per aggregated Descriptors ? Is it possible
that all descriptors except last one to be written back and when you read
RDH register, I get the last pending descriptor waiting inside 82599.
 We are using srrctl |= IXGBE_SRRCTL_DESCTYPE_ADV_ONEBUF;

In my setup, I am seeing that, I don't see EOP set even when I read 5
descriptors. Checking DD will return me an incomplete packet. What should I
do in such a case ?

References from Data sheet:
-> Checking through DD bits eliminates a potential race condition: all
descriptor data is posted internally prior to incrementing the head
register and a read of the head register could potentially pass the
descriptor waiting inside the 82599.

Regards,
Kaushal


More information about the freebsd-hackers mailing list