From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from stargate3.asicdesigners.com (stargate.chelsio.com [67.207.115.98]) by dpdk.org (Postfix) with ESMTP id E273D58F7 for ; Mon, 16 Nov 2015 13:32:07 +0100 (CET) Received: from localhost (scalar.blr.asicdesigners.com [10.193.185.94]) by stargate3.asicdesigners.com (8.13.8/8.13.8) with ESMTP id tAGCW2Vt004954; Mon, 16 Nov 2015 04:32:03 -0800 Date: Mon, 16 Nov 2015 18:02:02 +0530 From: Rahul Lakkireddy To: David Marchand , dev@dpdk.org Message-ID: <20151116123200.GA2667@scalar.blr.asicdesigners.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.24 (2015-08-30) Cc: Felix Marti , Kumar Sanghvi , Nirranjan Kirubaharan Subject: [dpdk-dev] Recent changes related to interrupt thread X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Nov 2015 12:32:08 -0000 Hi, I notice that the following changeset: Fixes: fd6949c55c9a ("eal: fix io permission for virtio interrupt handler") has moved the initialization of the interrupt thread to after the master lcore has been initialized. However, this causes the interrupt thread to _inherit_ the affinity of the master lcore. Hence, this seems to make all interrupts to be handled by _only_ the master lcore. Because of this change, it seems that now alarm interrupts would also be handled by master lcore only, IIUC. We are seeing a performance regression for cxgbe PMD after this commit since, cxgbe PMD relies on alarm to periodically transmit pending coalesced packets. Also, this perf degradation is only seen if there's a queue allocated on the master lcore, such as in l3fwd app. If the master lcore has been skipped, then no degradation in perf is seen since only the alarm will run on the master lcore. So, is the change done to make all interrupts, including alarm interrupts, be handled by _only_ the master lcore intended? BTW, I have tried setting the affinity to all cpus instead in eal_intr_init() and this seems to restore the perf back. Perhaps it's better to move the master lcore initialization to after the interrupt thread has been initialized as well? Thoughts? Thanks, Rahul