From owner-freebsd-hackers@FreeBSD.ORG Sun Jul 7 10:33:27 2013 Return-Path: Delivered-To: freebsd-hackers@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 B5AE8CD1 for ; Sun, 7 Jul 2013 10:33:27 +0000 (UTC) (envelope-from kaushalgoa@gmail.com) Received: from mail-ea0-x22a.google.com (mail-ea0-x22a.google.com [IPv6:2a00:1450:4013:c01::22a]) by mx1.freebsd.org (Postfix) with ESMTP id 506F71EF0 for ; Sun, 7 Jul 2013 10:33:27 +0000 (UTC) Received: by mail-ea0-f170.google.com with SMTP id h10so2379540eaj.1 for ; Sun, 07 Jul 2013 03:33:26 -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 :content-type; bh=ovYkycN8QPZXRjvoBzmVRGhVP1VpWyqRt3F8zimbgcM=; b=QVpiQM3PTDQhNo6TXmNAdNpFRhSKi6ZVszWJh9tE7pQ2KBeaCSNvow6Xkih/GaaOv9 0PUTNgKmZh6KbPL4EN2fBFVci158s2SrkEktbYCm2rAlyRHieaL6QbfbwtgckJV9GjTO WAJ9A6kRfLhV96sy1fPgMr2q8FMODcp7ij6U3mFfL95S36L7G9ND49Ii9MWohLxhipRe QefdC9kVWb9JPGqNDhsDQ+p4DNztbHZeBprZLy4eU7ueKXSWXK+H4ke3UzIBDXzvYeOB ZgwbiGk7ZfHTl4w2vlJo9k4XGPibsDHEQw1I46oTk97EvmCewwFPDZQ7F30DnRMgN39Z maBg== X-Received: by 10.14.110.194 with SMTP id u42mr19778735eeg.128.1373193206255; Sun, 07 Jul 2013 03:33:26 -0700 (PDT) MIME-Version: 1.0 Received: by 10.14.138.141 with HTTP; Sun, 7 Jul 2013 03:33:06 -0700 (PDT) In-Reply-To: References: From: Kaushal Bhandankar Date: Sun, 7 Jul 2013 16:03:06 +0530 Message-ID: Subject: Fwd: ixgbe Jumbo race condition leading to Deadlock To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Jul 2013 10:33:27 -0000 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