From owner-freebsd-net@FreeBSD.ORG Wed Sep 26 20:14:19 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E625E10656AD; Wed, 26 Sep 2012 20:14:18 +0000 (UTC) (envelope-from vijju.singh@gmail.com) Received: from mail-ee0-f54.google.com (mail-ee0-f54.google.com [74.125.83.54]) by mx1.freebsd.org (Postfix) with ESMTP id 4FBAD8FC14; Wed, 26 Sep 2012 20:14:17 +0000 (UTC) Received: by eekc50 with SMTP id c50so608304eek.13 for ; Wed, 26 Sep 2012 13:14:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=qB+NOGyXVP12hQgaIvRlzC8Vkk9Vb1XvFVQAVXv0iAg=; b=JaDMSr3vFTsmxRdPHvJNIteo5AuVoOBFdk9aeXa2+h/zDdzBQzBwA33hjBdG22uwDF D7mC2xzikg58nYRvJqB4QD0Ex/Tm5ybThkgmWO8bnFXTkcMbWXu8+N61la1OZ55V9c4k aoybxtPHUJdbC+ZsRUbZ++NcnL4FO1MClSS3c35xh2BiTxmNtgTg24k5jC08OxAfBZb9 MDe77YwTp1h2zurCF5B38SCh8t0QIMqF0ELQYkHJ16tuQqRGEH9NqXXdso4C4iHAwQKl p79wnnT3CBbF75W7V99HsdFvcGgGyvBY/6kZYEfUfu2Xwje8NJqCD6agMoC8i8Og1g16 Q0gg== MIME-Version: 1.0 Received: by 10.14.215.193 with SMTP id e41mr3023676eep.44.1348690457302; Wed, 26 Sep 2012 13:14:17 -0700 (PDT) Received: by 10.14.219.134 with HTTP; Wed, 26 Sep 2012 13:14:17 -0700 (PDT) In-Reply-To: References: <201208161736.47250.jhb@freebsd.org> <201208170941.54482.jhb@freebsd.org> Date: Wed, 26 Sep 2012 13:14:17 -0700 Message-ID: From: Vijay Singh To: Jack Vogel Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-net@freebsd.org, John Baldwin Subject: Re: ixgbe rx & tx locks X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Sep 2012 20:14:19 -0000 > Jack, I am wondering if this could be avoided if we can avoid to > enqueue the task OR re-enable interrupts if the other one is already > scheduled. Is this possible? It seems to me that ixgbe_handle_que() should only be doing ixgbe_rxeof(). When ever mq_start() is unable to send, it enqueues the new txq_task. Also, this is checked periodically from the timer function as well. I will try an experiment to evaluate only more_rx in ixgbe_msix_que() and change ixgbe_handle_que() to do rx processing only. I will report back findings. Meanwhile it its immediately obvious to anyone what this will break, please let me know. -vijay