Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp238113pxb; Tue, 28 Sep 2021 20:39:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzOvecK29+94y2uNed/OE0btqX9n1WOG8zikKYcV9vsnHaJBtCHjpdl8Azmnr/63QQf+pCD X-Received: by 2002:a50:bf05:: with SMTP id f5mr12181223edk.156.1632886740597; Tue, 28 Sep 2021 20:39:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632886740; cv=none; d=google.com; s=arc-20160816; b=ZswXQavRZ6HKflnV/2qwc2Zl3XOfLZtru8v2Q867lOS9kl6J9zvN5XzT1G5glCCPp2 h1tUjjx5gM24aTMwbuvJRFZAwfEIfFCNmWyWSh/XZ0fcieViP3ReTZgRARoJ1dvq2Tdd St00S2ewEZ2gT89GWb19eqVzKWxacYRrT0jdj1T2BZETNQUtu2oOE1A7DStzcSeMKTE2 Cvfd/QF7UVcdYm62zTrL6p3eUAb9guy2aqUVz8C5ohIvIcqkzxruvjbbf/2U5r9Nqe0l I5pRdbSqy+rd+0NumDTlKmUMrPP+kz6Z+EswpleSgpMZN29gbtiEKrbZQ5gbtM1HNCLo dQtQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=y/OGUTvCR+JMfkr9hfHQ2R+Nh4zS1BVbmeisq4cBsWM=; b=D+Vz0XwMm/Dt6+Xar/ZVlHsWyisB9DczGuM1eKTWiy+6O6Dg79nIm3E+Xscmngw1zx mHh38hzNivEkfb4uwf0OuJ6Ae/jfISONLJGAi+N/cN6/UKDzJP4kK2KirW/lZK1Hemex A0QpUY5ZrT46A2mr8Ckt8o+KsWy1aVhNwAFPMho5IeHMLzz/7imTbuWi//+8JCR8amGi evvxBI6YRG6nZ9wWdPZfouFOSEl4xn5b5ogN2nB8Iy4JKyKoxl7nmo4Ym2P9mgB01IrT qagnXwmihZaCHmbhp0f5W4Wjhozs0gshWN07Ymn/IKNEcu+mZig9K5DAKM8S4Ysfhigx hSag== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id du1si1890680ejc.324.2021.09.28.20.38.35; Tue, 28 Sep 2021 20:39:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244011AbhI2Die (ORCPT + 99 others); Tue, 28 Sep 2021 23:38:34 -0400 Received: from szxga08-in.huawei.com ([45.249.212.255]:23186 "EHLO szxga08-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240067AbhI2Dib (ORCPT ); Tue, 28 Sep 2021 23:38:31 -0400 Received: from dggemv703-chm.china.huawei.com (unknown [172.30.72.54]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4HK2825ppyz1DHQ6; Wed, 29 Sep 2021 11:35:30 +0800 (CST) Received: from dggema774-chm.china.huawei.com (10.1.198.216) by dggemv703-chm.china.huawei.com (10.3.19.46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.2308.8; Wed, 29 Sep 2021 11:36:49 +0800 Received: from use12-sp2.huawei.com (10.67.189.174) by dggema774-chm.china.huawei.com (10.1.198.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.8; Wed, 29 Sep 2021 11:36:48 +0800 From: Xiaoming Ni To: , , , , , , , , , , CC: , , , Subject: [PATCH v2 0/2] powerpc:85xx: fix timebase sync issue when CONFIG_HOTPLUG_CPU=n Date: Wed, 29 Sep 2021 11:36:44 +0800 Message-ID: <20210929033646.39630-1-nixiaoming@huawei.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <021a5ee3-25ef-1de4-0111-d4c3281e0f45@huawei.com> References: <021a5ee3-25ef-1de4-0111-d4c3281e0f45@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.67.189.174] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To dggema774-chm.china.huawei.com (10.1.198.216) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When CONFIG_SMP=y, timebase synchronization is required for mpc8572 when the second kernel is started arch/powerpc/kernel/smp.c: int __cpu_up(unsigned int cpu, struct task_struct *tidle) { ... if (smp_ops->give_timebase) smp_ops->give_timebase(); ... } void start_secondary(void *unused) { ... if (smp_ops->take_timebase) smp_ops->take_timebase(); ... } When CONFIG_HOTPLUG_CPU=n and CONFIG_KEXEC_CORE=n, smp_85xx_ops.give_timebase is NULL, smp_85xx_ops.take_timebase is NULL, As a result, the timebase is not synchronized. test code: for i in $(seq 1 3); do taskset 1 date; taskset 2 date; sleep 1; echo;done log: Sat Sep 25 18:50:00 CST 2021 Sat Sep 25 19:07:47 CST 2021 Sat Sep 25 18:50:01 CST 2021 Sat Sep 25 19:07:48 CST 2021 Sat Sep 25 18:50:02 CST 2021 Sat Sep 25 19:07:49 CST 2021 Code snippet about give_timebase and take_timebase assignments: arch/powerpc/platforms/85xx/smp.c: #ifdef CONFIG_HOTPLUG_CPU #ifdef CONFIG_FSL_CORENET_RCPM fsl_rcpm_init(); #endif #ifdef CONFIG_FSL_PMC mpc85xx_setup_pmc(); #endif if (qoriq_pm_ops) { smp_85xx_ops.give_timebase = mpc85xx_give_timebase; smp_85xx_ops.take_timebase = mpc85xx_take_timebase; config dependency: FSL_CORENET_RCPM depends on the PPC_E500MC. FSL_PMC depends on SUSPEND. SUSPEND depends on ARCH_SUSPEND_POSSIBLE. ARCH_SUSPEND_POSSIBLE depends on !PPC_E500MC. CONFIG_HOTPLUG_CPU and CONFIG_FSL_PMC require the timebase function, but the timebase should not depend on CONFIG_HOTPLUG_CPU and CONFIG_FSL_PMC. Therefore, adjust the macro control range. Ensure that the corresponding timebase hook function is not empty when the dtsi node is configured. ----- changes in v2: 1. add new patch: "powerpc:85xx:Fix oops when mpc85xx_smp_guts_ids node cannot be found" 2. Using !CONFIG_FSL_CORENET_RCPM to manage the timebase code of !PPC_E500MC v1: https://lore.kernel.org/lkml/20210926025144.55674-1-nixiaoming@huawei.com ------ Xiaoming Ni (2): powerpc:85xx:Fix oops when mpc85xx_smp_guts_ids node cannot be found powerpc:85xx: fix timebase sync issue when CONFIG_HOTPLUG_CPU=n arch/powerpc/platforms/85xx/Makefile | 4 +++- arch/powerpc/platforms/85xx/mpc85xx_pm_ops.c | 7 +++++-- arch/powerpc/platforms/85xx/smp.c | 12 ++++++------ 3 files changed, 14 insertions(+), 9 deletions(-) -- 2.27.0