From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S969918AbdDSWcZ (ORCPT ); Wed, 19 Apr 2017 18:32:25 -0400 Received: from mail-ve1eur01on0114.outbound.protection.outlook.com ([104.47.1.114]:57787 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1765421AbdDSWcS (ORCPT ); Wed, 19 Apr 2017 18:32:18 -0400 Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=virtuozzo.com; Date: Wed, 19 Apr 2017 15:32:06 -0700 From: Andrei Vagin To: Keith Busch CC: , Thomas Gleixner , Xiaolong Ye Subject: Re: irq/affinity: Fix extra vecs calculation Message-ID: <20170419223205.GA29640@outlook.office365.com> References: <1492104492-19943-1-git-send-email-keith.busch@intel.com> <20170419162027.GA7428@outlook.office365.com> <20170419170359.GE16224@localhost.localdomain> <20170419195343.GA24395@outlook.office365.com> <20170419215308.GF16224@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Disposition: inline In-Reply-To: <20170419215308.GF16224@localhost.localdomain> User-Agent: Mutt/1.8.0 (2017-02-23) X-Originating-IP: [207.91.133.10] X-ClientProxiedBy: DM3PR12CA0043.namprd12.prod.outlook.com (10.161.151.11) To VI1PR0801MB1983.eurprd08.prod.outlook.com (10.173.74.16) X-MS-Office365-Filtering-Correlation-Id: 53abdc6b-6a97-4821-ae96-08d48773eea8 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:VI1PR0801MB1983; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1983;3:efqrwXtQf4MW+z9GuxWSGTHC8A7bSLSNtz6aiLcbqmFLHYXsP327Rjlyq8Umg2s9q4fopNxKlHT0TKxKUDHR+iV/v0lCygLnft6lUjfT57R4jlsVigZsSTreZMpQg4+iTtd5AQqSoVLaUv8KXDl1Cfig3T1Uh1/7DsSLbv7nEGPHhnd9c6OAySbNdCXeh6SRaRXd82ggrIkJ35ACsnAkwSJImrqI1q3oAKvxWMlB/CCswkjDUqGap/72cM3fAY9pD+IvKz0EyYfIn4RGEPeEO/BWzr/fna/5KqHh9Af/HS2UU2JVqCyISmibGlTbhYCNYjsUIZDV/CTVSfAI2r+LVg==;25:wMmJHX2ZVk3bURDqppHu47Z/jGJ4UjDXgTAthFlTK7Jhn1ofjBz5+Jmz0li9+PFYr+UdS3OEOEA/Y3en48SubUrpvhFWXPhC0R5ybwKk+kh9AqUEK2yp+B/0nJi76ayuk047WN6czrmiCaY8wsXwNXADA94tJ9yWde/LwfucPy510R1l+7pxzLuPrkE9wGhDVjnAiXPYri6lne0P0gCdYUtlevLwhHQaX78hc/oH2zZ+5Fiq766hbnURNq0eQUjCj0Fl7+U80oOyfNDg42+35n+nyPO0/sF5MGyIcui6hPweaW/ptgU6Z4LbBQ+5QB6P793TBJwzXcHU7nHrh5XyVL6kA7d9PUVN1G+z2VBR4U8hNygQ/7ZYQPrJDmqBBBVpeOBW1oLAWQIUaiQTucd5RHKiZk14gd9TDl8ow6Z1YIZEsZiaFY7Nopoi0b21VKckJ29Ax2zy5bLENQmaDWfICg== X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1983;31:ptpLwF+p7sY4l6JRvmgubTZwHqVYlTj7goH2fnrNmeYXPZfgJDmIH8x9zbHE72cfNO7DWFis0MZdytVAyHtSTcglHaf173cMCJtuH5JJQ16KyG5lnH52LOypD5nGc92FEvsjXLGOD0WonoJIdfwU5GPlQdrdD/vzmAqNgNlBzn5h2VOuRGpGHAyVvtYpZRCsiVXdSvRNHiJ/oARoo1c9DeKYJtvp4LUwsQg5o5dcZZVmC5CrbucY9CVEnccW2oSQlkly8hTfMqLfToUuDBQawFePvdjIp6dPdLV5MzNj9Ck=;20:5YEh6c9pYv6GR+YfywzKs3O0u0AgUXS+nLJn1dfGwocPOnRJb++Q7KdU77dyXX9z6V+zpKRca8D/xDApvOgcuTjLMNBbyYTXPHfum2RBqozpQ79tv5HmM6oN3+H6Fo7UJbr0uaqSNzqILqpKFHyYnfU46oxiqFOipk95mrY1vgi7E03whsDpVW52KLxrU2yjoZN1pu2KtKPj9+RQHmoKxY+HnSqGefewsXVdRWJe4E0t2E3rRHJG8nPZqlu7FPjA9lCxhsnSSpwxP/YySMtNup7LkJ6lFgOHImiqdfBfAgLA3uuAJef5gEYGE3DaEgajHoUebTPo03/R6akHhg95QyniOfsI4H2DyE6n+FYtCV+zlmhILVUpOLKs7tBvrf3E1F1csDhIZ9ePjUPrTUcW9y2QFlaNaFo3ziOCgT2iyJ4= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123562025)(20161123564025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(20161123555025)(6072148);SRVR:VI1PR0801MB1983;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0801MB1983; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1983;4:1C3R4Lmbt8dwgSXgb/dCa1Lg8cs3M8R1yjLY5hH2ZEuxgcEic6dQ7MowqEAVZzhKnKD/hA+X1O1bTq3EmVVRp5Hb58mHPjcHc4AcI52rMRdsdQdJE0/ewmpoYhLAJqSZRVhpsRxXt8r8g+H4JcvVloa8gRh0IRTIM5pIg46Wqm7lMEO0ByFzNKnnMahwO/OHJSLijcrM6HsO2v7y+qR3oC+4aHLkS5wl4zMCgVre4HN/SNH0VwL4loYtHAnLSbcDVEMLIwVrnR2MtZEX05o2rVPBgryZDHHjUWK9X5pMZBigiPSMnfg8O3Hz6cE1ji1+civQnISXQQ8retPQ057XiOf171o7C/I0z3NNkZmaxltjLSzVja3tm6m0QUKJyaq5tCwJcbcsoWOWoMC1XScnvwBqLFuKlmkWHiWpFrUTPZkAs4Z1lgp4qEZw9JM420eNYblbi3AMGLPCoRBtNyKhfZpPYE0c1cMnsawvz58YTUvbI3uF5yI3/zns4gj6BAhc+vlMIgMsBhkJJtyFo9ajrSXbovPA6gffsTF4WlkFV25Js3PovLfmzKFHa/N6PvAalrp0IuY20ZbRpeiM1KDVbc5G11ewqroucR3gn7ZtWmoVh3HWGv8bbcvSXUVoW4naLs2LeOjEyfH0+tTm8STgYYrmv63fOcvvs9DebCbzloqlUL9+wq4cpcaRL63+Hs2Mh0QsHyUqLuySofcZjB0GIQ== X-Forefront-PRVS: 028256169F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(39830400002)(39450400003)(39400400002)(39410400002)(24454002)(25786009)(229853002)(47776003)(93886004)(110136004)(54356999)(305945005)(4326008)(33656002)(38730400002)(7736002)(2950100002)(189998001)(50986999)(50466002)(6916009)(76176999)(55016002)(53416004)(66066001)(3846002)(83506001)(8676002)(81166006)(4001350100001)(2906002)(42186005)(9686003)(6666003)(53936002)(1076002)(54906002)(6116002)(5660300001)(6506006)(86362001)(23686003)(6246003)(18370500001);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR0801MB1983;H:outlook.office365.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?koi8-r?Q?1;VI1PR0801MB1983;23:RAiCR/LhuX1MQZfkHKgWHWvj+OBHk1KK3jT6QauzP?= =?koi8-r?Q?L3PrjWpTuzLXw/AIJiMuJYrnYhrzSvOjddratz0mf8IfwBZU82J3LYGxMRgQEX?= =?koi8-r?Q?rknDJIICdsnz9KQDtXk2Bq4l8eorakKmM15gyQTlhvZedI/ywpZb49StLk8yqQ?= =?koi8-r?Q?JEKFUfnElNLteQJqHVnNgSMU1FOaO4+YQ5V1ocLcgn+mVMOPYS5zTqrFRiVqsT?= =?koi8-r?Q?HEVXoGswcTkYD1dbA8zjUog5pn1LryK5a98p46GJ5tuNaIwEiR8g5tNz1u5kmN?= =?koi8-r?Q?60YPMMltZYV+B0P1ln8hTUo+qslSlKYJ+jE91s7C9vGWg32dkDk/MsKGiR1qhZ?= =?koi8-r?Q?qHBvk4BcQ+mNsCSnQ+K9S4+hE6Xw+sIKBYCxPAVNOiWVAT2v+6iTqnf0EMNmzk?= =?koi8-r?Q?GPJuz8Xa+elT8OI3pJRrX+rjxw/mDhRd4s9ZVmyNjX6x2gaBpBmHHIU1LWbdAn?= =?koi8-r?Q?Iz6/3YqivotspX9o7IQIVuBR/aZ0+GI0a19vi+J7ZYmVegLf2uU5jymE5F+7v3?= =?koi8-r?Q?DMj8FLJaHZzXwoTYt5raW5D2Q2YiLsPnKcHVF2k15s5SiWSEAJoD8JL5HWiL+B?= =?koi8-r?Q?SgR+pqJV32y0bROZmKYqQjYQ/+Nizja5JREyL/9M1XGLGqVNbtyCM16SbZwKKa?= =?koi8-r?Q?XDgZewLrR/Ul9EQu9ftTt0z+vAcr75CB9Ay2R2PzfolcrGETMNfhIYW57G8ALV?= =?koi8-r?Q?dhPGX0CgbhMyrDtAWfvWfZnNd7KHodmJy2GefLBDP1508NLquO8QyKo4WpmXQC?= =?koi8-r?Q?TfgnM1rphTPh1mCPod1nKPLd2R8oZC/uxixlfPEQ/VFMv26Qxj0K34n0/bRZS2?= =?koi8-r?Q?BZKfB2Ydup5X+BEYeFT74JHepS2VEGjhQV60SIMW3ylNnzy1LfjRj8xxUNNoT+?= =?koi8-r?Q?aEzJi7wQKmRBdVRfLMPmE63XsvIKvW76W0SqE+j3fDeZckuP33/RZVqEjuQACo?= =?koi8-r?Q?wyEzrfeO3gn6E/cmJXIIcD7MZP6hVb1MAcfPOcznIE3vsCKGY0Bit4++pZdKbZ?= =?koi8-r?Q?DrzsL9VuQPMmwC+XmAtDdElO4CgAzRAuQcEMozYZUeVc4GAjgeNFoBcqSXZe+0?= =?koi8-r?Q?XaJBCl5p/Fte/ke8bXeGES/rpuAenwFnKrqBiZ20/yvYeuP1cCVAVCXKM?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1983;6:VcxrOHZEdnHdv3mY5tFc75YWkP5WJx69z5Mu/FC6u93pLpcuzK75UCmcpO8ljgXKuQIFQDKIeZPFJw4lxrwqBx3LUZWKXvPsulav4G2jIrVYwyvb7SbvZ+bP77iuxdI0iVhUb/LsO3QH8jEX4Wp7zeKcAtdPggqL3AKA7PwwbuVcDVcCuFKtuLcP5d8UtLwmC8gxezOe1A1PjiftXKum57XnSiQYbiJrn5LXgcjGS6+/7wf5U8NIbwsCgLg7yMj/wrNgEWUBkUI5DhwrPjSs+7au+WQA7ZniWXLPeFS4gNB8F7680XRT5bH6/94GPuCgp+sVJhN7eiVsBBi7/zpOOUa/QqNuCMQTImlLUroD5aPWkXVSmCoyQpfKDWGJ6WByq8+C8h5ikiSYnen017Ogkm9u8HgnpUdVncY8/12854lbd2aEIqPgxLbcchdzqJlqMl5b7IUktHmTWOHJQbVe9Q==;5:pWoKq5lKyOZJ2v5d4ANZkq5rP+OjOGHHKzeNRr81+H9yLijwv9mq2D5z3TmXXQ5G7t+aM1SYyDF0Zi7vhplHsKvBvTCmIpO0yRpuyOlCBoGzrf5By7nLv5ZhxkDgPcFYwLSDVmg8uqCYOepGIgi7kg==;24:TpDOguUKOVrhD+ygznDatG8YWAcMlZIaTRBlPn/pWiA70/VrtgI2QbqDQxByOEJk5Pc9YD21y+HoF0XpNdM9Vuii+psXZCSAJ0CJk/aJwT4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;VI1PR0801MB1983;7:+vTxACZ6fUBUVJC/z3x6q6Kf0xyu53+GzCzlDHi1R1uG0wzEEq5Xo+cjOBUgaz0ME+2GsVPnR9NsUxcGQ6or5d9KZ08YcIOgaix/9QrURVFDfeK8LIxdpKHCs9w6fA1p0bXEr9lLFGNPG4l1027fE/EhQFUae7Tgp+tu14WbmdEzv0Zc9Z0ch7ZNwmRNgchigkrPln9zUmS4xy6Qml/D7KzaryuZxdmL2z7ov2AK03xygMa0+uiY3Kd3QVQxnHVcksALcpBphaej/BKRkDa4/D5RuZLzhWnYzUdMt4SGeORAiJgfRrLt40DX+Qs124bfhCVuFFxDl1hqo+G+wX4v2w==;20:9jStA6WvHjkZnNIL+vaRwU9qx7hcvYq4DaqflqVkU8ZSB1qSGkis7oD3Uue0j3gfOt2RCKzmUHl9fCxMcGSnzMROIksZK37WKtHE+lO+YNUEMcNwjZIWkP/ZQe8zz6wNnZ4WYuoUFtYci/Mle54pkWVEfkkYZBxO1etgtKN5dOc= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Apr 2017 22:32:15.1585 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1983 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 19, 2017 at 05:53:09PM -0400, Keith Busch wrote: > On Wed, Apr 19, 2017 at 12:53:44PM -0700, Andrei Vagin wrote: > > On Wed, Apr 19, 2017 at 01:03:59PM -0400, Keith Busch wrote: > > > If it's a divide by 0 as your last link indicates, that must mean there > > > are possible nodes, but have no CPUs, and those should be skipped. If > > > that's the case, the following should fix it, but I'm going to do some > > > more qemu testing with various CPU topologies to confirm. > > > > I printed variables from my test host, I think this can help to > > investigate the issue: > > > > irq_create_affinity_masks:116: vecs_to_assign 0 ncpus 2 extra_vecs 2 vecs_per_node 0 affv 2 curvec 2 nodes 1 > > That explains a lot. This setup wants 2 "pre_vectors", but I didn't > know that was even a thing. This should fix it: This patch works for me. > > --- > diff --git a/kernel/irq/affinity.c b/kernel/irq/affinity.c > index d052947..eb8b689 100644 > --- a/kernel/irq/affinity.c > +++ b/kernel/irq/affinity.c > @@ -98,13 +98,16 @@ irq_create_affinity_masks(int nvecs, const struct irq_affinity *affd) > int ncpus, v, vecs_to_assign, vecs_per_node; > > /* Spread the vectors per node */ > - vecs_per_node = (affv - curvec) / nodes; > + vecs_per_node = (affv - (curvec - affd->pre_vectors)) / nodes; > > /* Get the cpus on this node which are in the mask */ > cpumask_and(nmsk, cpu_online_mask, cpumask_of_node(n)); > --