From owner-freebsd-stable@FreeBSD.ORG Sun Jul 7 17:13:48 2013 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 2B6EF2FD for ; Sun, 7 Jul 2013 17:13:48 +0000 (UTC) (envelope-from kaushalgoa@gmail.com) Received: from mail-ee0-x22f.google.com (mail-ee0-x22f.google.com [IPv6:2a00:1450:4013:c00::22f]) by mx1.freebsd.org (Postfix) with ESMTP id B84141C96 for ; Sun, 7 Jul 2013 17:13:47 +0000 (UTC) Received: by mail-ee0-f47.google.com with SMTP id e49so2336448eek.34 for ; Sun, 07 Jul 2013 10:13:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=yhAlKXwfbtaPujLLGDRvMwM2Yvz9J5GOPogmbcsYE7o=; b=XOeKXZYIcBb988oGDDrXeAdul+Zw29zLDvoqktWp6IYUMgzk4UCJIWpN+AlRn+sVKr 95TqFgkhngvr6oIwz8iy1A8d5WQoGwf3WERaDZpANWau0ISfowJvhdDuUG+ViYwKHbv8 Ki5MV9D5hKW5X1J4ADkcUeBDdrLkhQOvn8LrRTy+M2Ybrg0c1IddhxxctMi1PWVl8o62 DRD8oNgc2NeUcuSq41RdGP1xzfNQKCLiWDLyV3kho7PFmOwTH6h/FI4HwvReHw6RdpOe UjIO+2yh96Mv0xo3vnXNx90ze3O5T28ssPyh/N2vZFkmPkeu63Jl5IfjaqMs8hQcxno9 KQ7Q== X-Received: by 10.14.2.73 with SMTP id 49mr21034534eee.118.1373217226787; Sun, 07 Jul 2013 10:13:46 -0700 (PDT) MIME-Version: 1.0 Received: by 10.14.138.141 with HTTP; Sun, 7 Jul 2013 10:13:26 -0700 (PDT) In-Reply-To: References: From: Kaushal Bhandankar Date: Sun, 7 Jul 2013 22:43:26 +0530 Message-ID: Subject: Re: ixgbe Jumbo race condition leading to Deadlock To: Jack Vogel Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: FreeBSD stable X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jul 2013 17:13:48 -0000 Hi Jack, Thanks for the explanation. Do you suggest that I keep reading rx descriptor with DD bit and keep them pending till I get the descriptor with EOP set ? How much max delay can be expected for the EOP descriptor to be written back ? Regards, Kaushal On Sun, Jul 7, 2013 at 10:40 PM, Jack Vogel wrote: > The "potential race condition" as the data sheet puts it, is only when you > are > trying to manage your RX ring by reading the RDH register, this is a bad > idea > anyway, none of our (Intel) drivers do this. Using the DD bit is what you > want > to do. The DD bit is set when the descriptor is written back, and that > happens > when the DMA is complete. > > The packet is incomplete until the descriptor with EOP set, in my code an > mbuf chain is created, and as each new descriptor is processed the pointer > to the head of the whole chain is kept in rxbuf->fmp, thus when you get to > the EOP descriptor you will be ready to send the whole chain to the stack. > > Its good that you are using ONEBUF since packet split has hardware issues > on 82599. > > Are you developing a new driver, or simply having issues using mine? > > Regards, > > Jack > > > > On Sun, Jul 7, 2013 at 2:24 AM, Kaushal Bhandankar wrote: > >> 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 >> _______________________________________________ >> freebsd-stable@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-stable >> To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org" >> > >