Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Jul 2013 16:03:06 +0530
From:      Kaushal Bhandankar <kaushalgoa@gmail.com>
To:        freebsd-hackers@freebsd.org
Subject:   Fwd: ixgbe Jumbo race condition leading to Deadlock
Message-ID:  <CA%2BSyaVuKBYNN-PV_WAh0=gJVCkQ6zgPq%2B9K9aBtBJyvX224keQ@mail.gmail.com>
In-Reply-To: <CA%2BSyaVsMys=85WKUkuczvDZ9iwWa9Dbd5vRA6Ev%2B87kJdCMUnw@mail.gmail.com>
References:  <CA%2BSyaVuG5VzCqggddy6SKA4ZkqLxSgRUe0k3b-_1GNVD2ghHkw@mail.gmail.com> <CA%2BSyaVsMys=85WKUkuczvDZ9iwWa9Dbd5vRA6Ev%2B87kJdCMUnw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2BSyaVuKBYNN-PV_WAh0=gJVCkQ6zgPq%2B9K9aBtBJyvX224keQ>