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>