[{"id":1764156,"web_url":"http://patchwork.ozlabs.org/comment/1764156/","msgid":"<8486f103-e5be-5c85-c8b2-556aa11107b0@linux.vnet.ibm.com>","date":"2017-09-06T14:33:18","subject":"Re: [PATCH V13 3/4] powerpc/hotplug: Improve responsiveness of\n\thotplug change","submitter":{"id":17146,"url":"http://patchwork.ozlabs.org/api/people/17146/","name":"Nathan Fontenot","email":"nfont@linux.vnet.ibm.com"},"content":"On 09/01/2017 10:48 AM, Michael Bringmann wrote:\n> powerpc/hotplug: On Power systems with shared configurations of CPUs\n> and memory, there are some issues with the association of additional\n> CPUs and memory to nodes when hot-adding resources.  During hotplug\n> CPU operations, this patch resets the timer on topology update work\n> function to a small value to better ensure that the CPU topology is\n> detected and configured sooner.\n\nLooking through the changes you've made here I don't see where the\ntopology timeout ever gets set to the default timeout. When calculating\nthe next timeout you use topology_timer_secs which is initialized to 1, so\nthe timer pops every second after initialization. Then after a dlpar cpu\noperation the timer is set to pop every second. There is no place that I\nsee where the timeout is set to the default 60 seconds.\n\n> \n> Signed-off-by: Michael Bringmann <mwb@linux.vnet.ibm.com>\n> ---\n>  arch/powerpc/include/asm/topology.h          |    8 ++++++++\n>  arch/powerpc/mm/numa.c                       |   21 ++++++++++++++++++++-\n>  arch/powerpc/platforms/pseries/hotplug-cpu.c |    2 ++\n>  3 files changed, 30 insertions(+), 1 deletion(-)\n> \n> diff --git a/arch/powerpc/include/asm/topology.h b/arch/powerpc/include/asm/topology.h\n> index dc4e159..beb9bca 100644\n> --- a/arch/powerpc/include/asm/topology.h\n> +++ b/arch/powerpc/include/asm/topology.h\n> @@ -98,6 +98,14 @@ static inline int prrn_is_enabled(void)\n>  }\n>  #endif /* CONFIG_NUMA && CONFIG_PPC_SPLPAR */\n> \n> +#if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_NEED_MULTIPLE_NODES)\n> +#if defined(CONFIG_PPC_SPLPAR)\n> +extern int timed_topology_update(int nsecs);\n> +#else\n> +#define\ttimed_topology_update(nsecs)\n> +#endif /* CONFIG_PPC_SPLPAR */\n> +#endif /* CONFIG_HOTPLUG_CPU || CONFIG_NEED_MULTIPLE_NODES */\n> +\n>  #include <asm-generic/topology.h>\n> \n>  #ifdef CONFIG_SMP\n> diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c\n> index c08d736..3a5b334 100644\n> --- a/arch/powerpc/mm/numa.c\n> +++ b/arch/powerpc/mm/numa.c\n> @@ -1148,15 +1148,34 @@ struct topology_update_data {\n>  \tint new_nid;\n>  };\n> \n> +#define TOPOLOGY_DEF_TIMER_SECS\t60\n> +\n>  static u8 vphn_cpu_change_counts[NR_CPUS][MAX_DISTANCE_REF_POINTS];\n>  static cpumask_t cpu_associativity_changes_mask;\n>  static int vphn_enabled;\n>  static int prrn_enabled;\n>  static void reset_topology_timer(void);\n> +static int topology_timer_secs = 1;\n>  static int topology_inited;\n>  static int topology_update_needed;\n> \n>  /*\n> + * Change polling interval for associativity changes.\n> + */\n> +int timed_topology_update(int nsecs)\n> +{\n> +\tif (nsecs > 0)\n> +\t\ttopology_timer_secs = nsecs;\n> +\telse\n> +\t\ttopology_timer_secs = TOPOLOGY_DEF_TIMER_SECS;\n> +\n> +\tif (vphn_enabled)\n> +\t\treset_topology_timer();\n\nShould this whole thing be wrapped by if (vphn_enabled) ?\n\n-Nathan\n\n> +\n> +\treturn 0;\n> +}\n> +\n> +/*\n>   * Store the current values of the associativity change counters in the\n>   * hypervisor.\n>   */\n> @@ -1489,7 +1508,7 @@ static void topology_timer_fn(unsigned long ignored)\n>  static void reset_topology_timer(void)\n>  {\n>  \ttopology_timer.data = 0;\n> -\ttopology_timer.expires = jiffies + 60 * HZ;\n> +\ttopology_timer.expires = jiffies + topology_timer_secs * HZ;\n>  \tmod_timer(&topology_timer, topology_timer.expires);\n>  }\n> \n> diff --git a/arch/powerpc/platforms/pseries/hotplug-cpu.c b/arch/powerpc/platforms/pseries/hotplug-cpu.c\n> index 6afd1ef..5a7fb1e 100644\n> --- a/arch/powerpc/platforms/pseries/hotplug-cpu.c\n> +++ b/arch/powerpc/platforms/pseries/hotplug-cpu.c\n> @@ -356,6 +356,7 @@ static int dlpar_online_cpu(struct device_node *dn)\n>  \t\t\tBUG_ON(get_cpu_current_state(cpu)\n>  \t\t\t\t\t!= CPU_STATE_OFFLINE);\n>  \t\t\tcpu_maps_update_done();\n> +\t\t\ttimed_topology_update(1);\n>  \t\t\trc = device_online(get_cpu_device(cpu));\n>  \t\t\tif (rc)\n>  \t\t\t\tgoto out;\n> @@ -522,6 +523,7 @@ static int dlpar_offline_cpu(struct device_node *dn)\n>  \t\t\t\tset_preferred_offline_state(cpu,\n>  \t\t\t\t\t\t\t    CPU_STATE_OFFLINE);\n>  \t\t\t\tcpu_maps_update_done();\n> +\t\t\t\ttimed_topology_update(1);\n>  \t\t\t\trc = device_offline(get_cpu_device(cpu));\n>  \t\t\t\tif (rc)\n>  \t\t\t\t\tgoto out;\n>","headers":{"Return-Path":"<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>","X-Original-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xnR1h1Kdfz9t4t\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu,  7 Sep 2017 00:34:48 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xnR1h0B0XzDrTX\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu,  7 Sep 2017 00:34:48 +1000 (AEST)","from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com\n\t[148.163.158.5])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xnR055XNLzDqXp\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tThu,  7 Sep 2017 00:33:25 +1000 (AEST)","from pps.filterd (m0098417.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv86EUTc9095941\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 6 Sep 2017 10:33:23 -0400","from e12.ny.us.ibm.com (e12.ny.us.ibm.com [129.33.205.202])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 2cth6x7eck-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 06 Sep 2017 10:33:22 -0400","from localhost\n\tby e12.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <linuxppc-dev@lists.ozlabs.org> from <nfont@linux.vnet.ibm.com>; \n\tWed, 6 Sep 2017 10:33:22 -0400","from b01cxnp22033.gho.pok.ibm.com (9.57.198.23)\n\tby e12.ny.us.ibm.com (146.89.104.199) with IBM ESMTP SMTP Gateway:\n\tAuthorized Use Only! Violators will be prosecuted; \n\tWed, 6 Sep 2017 10:33:19 -0400","from b01ledav003.gho.pok.ibm.com (b01ledav003.gho.pok.ibm.com\n\t[9.57.199.108])\n\tby b01cxnp22033.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP\n\tid v86EXJdh24117252; Wed, 6 Sep 2017 14:33:19 GMT","from b01ledav003.gho.pok.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 315EDB204E;\n\tWed,  6 Sep 2017 10:30:42 -0400 (EDT)","from [9.41.92.186] (unknown [9.41.92.186])\n\tby b01ledav003.gho.pok.ibm.com (Postfix) with ESMTP id B2FB3B2050;\n\tWed,  6 Sep 2017 10:30:41 -0400 (EDT)"],"Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=linux.vnet.ibm.com\n\t(client-ip=148.163.158.5; helo=mx0a-001b2d01.pphosted.com;\n\tenvelope-from=nfont@linux.vnet.ibm.com; receiver=<UNKNOWN>)","Subject":"Re: [PATCH V13 3/4] powerpc/hotplug: Improve responsiveness of\n\thotplug change","To":"Michael Bringmann <mwb@linux.vnet.ibm.com>, linuxppc-dev@lists.ozlabs.org,\n\tlinux-kernel@vger.kernel.org","References":"<1df8eebb-8313-dbcd-5be1-d0fa26293589@linux.vnet.ibm.com>","From":"Nathan Fontenot <nfont@linux.vnet.ibm.com>","Date":"Wed, 6 Sep 2017 09:33:18 -0500","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.2.1","MIME-Version":"1.0","In-Reply-To":"<1df8eebb-8313-dbcd-5be1-d0fa26293589@linux.vnet.ibm.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","X-TM-AS-GCONF":"00","x-cbid":"17090614-0048-0000-0000-000001DF41A5","X-IBM-SpamModules-Scores":"","X-IBM-SpamModules-Versions":"BY=3.00007677; HX=3.00000241; KW=3.00000007;\n\tPH=3.00000004; SC=3.00000226; SDB=6.00913108; UDB=6.00458254;\n\tIPR=6.00693370; \n\tBA=6.00005574; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009;\n\tZB=6.00000000; \n\tZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00017033;\n\tXFM=3.00000015; UTC=2017-09-06 14:33:21","X-IBM-AV-DETECTION":"SAVI=unused REMOTE=unused XFE=unused","x-cbparentid":"17090614-0049-0000-0000-00004277986B","Message-Id":"<8486f103-e5be-5c85-c8b2-556aa11107b0@linux.vnet.ibm.com>","X-Proofpoint-Virus-Version":"vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-09-06_05:, , signatures=0","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=0\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1709060203","X-BeenThere":"linuxppc-dev@lists.ozlabs.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>","Cc":"John Allen <jallen@linux.vnet.ibm.com>","Errors-To":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org","Sender":"\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"}}]