Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp3388680ybp; Sun, 6 Oct 2019 10:50:56 -0700 (PDT) X-Google-Smtp-Source: APXvYqxCBannedZUSoxnZGPrYj3a8pP40fQjbyEePekKx3D06Q3QyMZ708yTOshYWxhMMcQfmyuI X-Received: by 2002:a17:906:1853:: with SMTP id w19mr20509308eje.232.1570384256119; Sun, 06 Oct 2019 10:50:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570384256; cv=none; d=google.com; s=arc-20160816; b=bLnB2m4sCAD9pa+tfDx2rAPlcyUipj9kTTwXNi82cMPOBUB4ihTHOaMfZ2ILMqTM1C wt68hOQgVLc7sZ12Yb+E3IwdnSK4xAuAsFRV6zv0N0AYuEdES5LsHjqcQFxQGqQ3MUF4 jfbOIEeNK3nXJ2KM50ZH/IdhQTlrxwIVC31a9ZZsX85Y8q85C1HpxX/7TMZc+gq7c7eK vHUoxdqAOhjMVptolYhgISxZH967I4/e4pbIm2evDgMq0uKSmRpSslrkPc5ba2w2VrkY 65mggpkNKSfquYwpfeErVmI10+XGbqRwdPBcZPZJW6tAEQeHqprkMAnImYrgJsSgntgm /ljg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=A0u4I0tSjVGZz1bhZUMH/RUdLySzesG+sSUo1FdJhHk=; b=Ob8+mmoE12QhwimIhJm/qj4oJeoW7jdooy5EyXtLuwcp9tKvGWgXySm0+e+QlxQwLF YuFFU/djnT7I1kkH98tjtc7sLA+lal0P3dORUHZBdgta4KlX7vqQsfq4oIvDY/dL6AL5 Gfb65FB4WVITZuFWCmyxJgJ/C+OYI91/Ya7PQQqDzQ3ZnYgY9++CMw6HnPZ8BZDmrGsu ro8ZqZonmvDED0fszQtbnUUsicndP7VbrR3tplxE5v/eyfx16BHApmoyyAbrq73YQE84 mHtNE5GTvYyh0nk+V637zbBf8tHGXO/K+GPBE13djUDcKFpY7tsD7JXdk5gPJYL8MuY7 2doQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=z268hoyz; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 8si5934451ejc.104.2019.10.06.10.50.32; Sun, 06 Oct 2019 10:50:56 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=z268hoyz; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731405AbfJFRmz (ORCPT + 99 others); Sun, 6 Oct 2019 13:42:55 -0400 Received: from mail.kernel.org ([198.145.29.99]:42706 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731395AbfJFRmt (ORCPT ); Sun, 6 Oct 2019 13:42:49 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A48FE20862; Sun, 6 Oct 2019 17:42:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1570383768; bh=7XQOC0wjoY7c2BPKBbSTFXocm95lPkxvVCApuAz0iI8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=z268hoyzmukF49LjKSq3Eqm7hc4OyvlM/7/5C8OoOdscRf80b+FbrXZSJtyMHg0Ex q0QkrctiW/OCyaZfWwfdo72vvpAQXvtZOEW6MzwkFOKhWZbddiTfkCDd+dGhnA9tth vND6BIoPpRkNX8NBLtNB/yR7wy7x4ZuNVae3Y4ug= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Nathan Lynch , Michael Ellerman , Sasha Levin Subject: [PATCH 5.3 044/166] powerpc/pseries/mobility: use cond_resched when updating device tree Date: Sun, 6 Oct 2019 19:20:10 +0200 Message-Id: <20191006171216.667406911@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191006171212.850660298@linuxfoundation.org> References: <20191006171212.850660298@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Nathan Lynch [ Upstream commit ccfb5bd71d3d1228090a8633800ae7cdf42a94ac ] After a partition migration, pseries_devicetree_update() processes changes to the device tree communicated from the platform to Linux. This is a relatively heavyweight operation, with multiple device tree searches, memory allocations, and conversations with partition firmware. There's a few levels of nested loops which are bounded only by decisions made by the platform, outside of Linux's control, and indeed we have seen RCU stalls on large systems while executing this call graph. Use cond_resched() in these loops so that the cpu is yielded when needed. Signed-off-by: Nathan Lynch Signed-off-by: Michael Ellerman Link: https://lore.kernel.org/r/20190802192926.19277-4-nathanl@linux.ibm.com Signed-off-by: Sasha Levin --- arch/powerpc/platforms/pseries/mobility.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/powerpc/platforms/pseries/mobility.c b/arch/powerpc/platforms/pseries/mobility.c index fe812bebdf5e6..b571285f6c149 100644 --- a/arch/powerpc/platforms/pseries/mobility.c +++ b/arch/powerpc/platforms/pseries/mobility.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -207,7 +208,11 @@ static int update_dt_node(__be32 phandle, s32 scope) prop_data += vd; } + + cond_resched(); } + + cond_resched(); } while (rtas_rc == 1); of_node_put(dn); @@ -310,8 +315,12 @@ int pseries_devicetree_update(s32 scope) add_dt_node(phandle, drc_index); break; } + + cond_resched(); } } + + cond_resched(); } while (rc == 1); kfree(rtas_buf); -- 2.20.1