{"id":765256,"url":"http://patchwork.ozlabs.org/api/patches/765256/?format=json","web_url":"http://patchwork.ozlabs.org/project/skiboot/patch/20170522055303.2025-5-npiggin@gmail.com/","project":{"id":44,"url":"http://patchwork.ozlabs.org/api/projects/44/?format=json","name":"skiboot firmware development","link_name":"skiboot","list_id":"skiboot.lists.ozlabs.org","list_email":"skiboot@lists.ozlabs.org","web_url":"http://github.com/open-power/skiboot","scm_url":"http://github.com/open-power/skiboot","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20170522055303.2025-5-npiggin@gmail.com>","list_archive_url":null,"date":"2017-05-22T05:53:03","name":"[4/4] Run change_all_hile in parallel on all CPUs","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"f902018b2847e0754631de7de7d0f4a8d1d1ec58","submitter":{"id":69518,"url":"http://patchwork.ozlabs.org/api/people/69518/?format=json","name":"Nicholas Piggin","email":"npiggin@gmail.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/skiboot/patch/20170522055303.2025-5-npiggin@gmail.com/mbox/","series":[],"comments":"http://patchwork.ozlabs.org/api/patches/765256/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/765256/checks/","tags":{},"related":[],"headers":{"Return-Path":"<skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","skiboot@lists.ozlabs.org"],"Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","skiboot@lists.ozlabs.org"],"Received":["from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\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 3wWSXH6HDtz9s2G\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon, 22 May 2017 15:54:07 +1000 (AEST)","from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3wWSXH4lc7zDqbx\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon, 22 May 2017 15:54:07 +1000 (AEST)","from mail-pf0-x241.google.com (mail-pf0-x241.google.com\n\t[IPv6:2607:f8b0:400e:c00::241])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3wWSWR3HyDzDqPb\n\tfor <skiboot@lists.ozlabs.org>; Mon, 22 May 2017 15:53:23 +1000 (AEST)","by mail-pf0-x241.google.com with SMTP id n23so17574177pfb.3\n\tfor <skiboot@lists.ozlabs.org>; Sun, 21 May 2017 22:53:23 -0700 (PDT)","from roar.ozlabs.ibm.com ([122.99.82.10])\n\tby smtp.gmail.com with ESMTPSA id\n\tm24sm26449632pfi.129.2017.05.21.22.53.19\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tSun, 21 May 2017 22:53:20 -0700 (PDT)"],"Authentication-Results":["ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"IB4Kke4q\"; dkim-atps=neutral","lists.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"IB4Kke4q\"; dkim-atps=neutral","lists.ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"IB4Kke4q\"; dkim-atps=neutral"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=44Em20PAb1Eu0bVCiKHMIaleLCG9tO4FOFYgwWe0WoA=;\n\tb=IB4Kke4q4QcYzj7VIGungj5bGsTrob3W4sgItzD6cZ9EkbsY2OUY9qN/hsVW2Bniwj\n\tH5/7IRG1s/jt34aHT7KxxokNhlWQrQ+6OjyJGMLy7eJTcsrzvHhnQWJk4hOLxHy0tcYC\n\tgPbFaWxgv+Lc2wZyqE0YOk+5y6WTVJc5bNrG0sYKRQ/0ILO2f6Ha5Zxs3L5ye0izFTwQ\n\tcUO5dVKaijUwEZIajbus3tjjA9v32zHnwD6+cPIrDr+wYniQL732JTkBrr9OHRPsOB6H\n\tXwFq1PGFcO9cRBFveFcWXHDy8SBH7A/8LwaX4I1RbTloKZiH2ytdbRK7Le1a5QlS3XGI\n\t0mrQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=44Em20PAb1Eu0bVCiKHMIaleLCG9tO4FOFYgwWe0WoA=;\n\tb=hneWzEFuzbdUzI4Rt4/khP3Ee4XegM7M2dhjfmXpt0c6vKwTmzJxwzOahLnnuddf5q\n\t4LdaCmepiUORVUC+Q3J5cBwDsEKQHm98JBdD0UywuhCgUytLezvrAaHk8I0BsgNspa50\n\t6DJOKOBO7WTl8MAJHCHis1bWcv3dBPp9qLzJdsSofxDslXs1SdbEzabhOfaq2lS25KWY\n\tIowr8LTD0iKM0+cpUivdoAe8EjN4TsU/T/MfEjKERg8Vnrd9h3Af+4nTltlsjDbzJ9eb\n\t/kP0o06kQ8tMZ5sKmlXVfkoHLHxk2yRmnvkhBnwr23R6tmQ1cYFn3rcPTKrlud5Folmi\n\tO60A==","X-Gm-Message-State":"AODbwcB8cH8X1WqvXvt0zLIi1Na3jZ19GtFn5zx6BBHBe2RP8k3wF9B0\n\tWiqonp1D0inEdVrg","X-Received":"by 10.84.178.129 with SMTP id z1mr26986264plb.44.1495432401433; \n\tSun, 21 May 2017 22:53:21 -0700 (PDT)","From":"Nicholas Piggin <npiggin@gmail.com>","To":"skiboot@lists.ozlabs.org","Date":"Mon, 22 May 2017 15:53:03 +1000","Message-Id":"<20170522055303.2025-5-npiggin@gmail.com>","X-Mailer":"git-send-email 2.11.0","In-Reply-To":"<20170522055303.2025-1-npiggin@gmail.com>","References":"<20170522055303.2025-1-npiggin@gmail.com>","Subject":"[Skiboot] [PATCH 4/4] Run change_all_hile in parallel on all CPUs","X-BeenThere":"skiboot@lists.ozlabs.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"Mailing list for skiboot development <skiboot.lists.ozlabs.org>","List-Unsubscribe":"<https://lists.ozlabs.org/options/skiboot>,\n\t<mailto:skiboot-request@lists.ozlabs.org?subject=unsubscribe>","List-Archive":"<http://lists.ozlabs.org/pipermail/skiboot/>","List-Post":"<mailto:skiboot@lists.ozlabs.org>","List-Help":"<mailto:skiboot-request@lists.ozlabs.org?subject=help>","List-Subscribe":"<https://lists.ozlabs.org/listinfo/skiboot>,\n\t<mailto:skiboot-request@lists.ozlabs.org?subject=subscribe>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org","Sender":"\"Skiboot\"\n\t<skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org>"},"content":"Rather than send cpu_change_hile jobs out to CPUs one at-a-time,\nqueue them all asynchronously, then wait for all.\n---\n core/cpu.c | 22 +++++++++++++++++-----\n 1 file changed, 17 insertions(+), 5 deletions(-)","diff":"diff --git a/core/cpu.c b/core/cpu.c\nindex c4a4d29e..ab9727aa 100644\n--- a/core/cpu.c\n+++ b/core/cpu.c\n@@ -1038,19 +1038,31 @@ static void cpu_change_hile(void *hilep)\n static int64_t cpu_change_all_hile(bool hile)\n {\n \tstruct cpu_thread *cpu;\n+\tbool done;\n \n \tprlog(PR_INFO, \"CPU: Switching HILE on all CPUs to %d\\n\", hile);\n \n \tfor_each_available_cpu(cpu) {\n \t\tif (cpu->current_hile == hile)\n \t\t\tcontinue;\n-\t\tif (cpu == this_cpu()) {\n-\t\t\tcpu_change_hile(&hile);\n+\t\tif (cpu == this_cpu())\n \t\t\tcontinue;\n-\t\t}\n-\t\tcpu_wait_job(cpu_queue_job(cpu, \"cpu_change_hile\",\n-\t\t\t\t\t   cpu_change_hile, &hile), true);\n+\t\tcpu_queue_job(cpu, \"cpu_change_hile\", cpu_change_hile, &hile);\n \t}\n+\n+\tif (this_cpu()->current_hile != hile)\n+\t\tcpu_change_hile(&hile);\n+\n+\tsmt_lowest();\n+\tdo {\n+\t\tdone = true;\n+\t\tfor_each_available_cpu(cpu) {\n+\t\t\tif (cpu->current_hile != hile)\n+\t\t\t\tdone = false;\n+\t\t}\n+\t} while (!done);\n+\tsmt_medium();\n+\n \treturn OPAL_SUCCESS;\n }\n \n","prefixes":["4/4"]}