From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id ADDAFCCF9E0 for ; Tue, 28 Oct 2025 16:13:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:To:Subject:MIME-Version: Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=DMxPwY0Hia9rtyzO3DQmmthyOBx9loUqIq4dL09eu1E=; b=RcLRw0sJvebBU9G/gJ5liSX3fl CSG/YFkB2n3+sput3aaJj2gt9zDX2/jZo4UClpkHt4I1VeFXtYrwwRYdcahvfG8YcDstYGvcMHcZP MOSFPEXvqJCJG8iEi4ldiTjmPztdf/4tKc2JFT3Gyo8tOZBKyFMEP7unh3N6mrcPmQWbh6cxwJmcy WH7LaWz2Tt5IXa7YUD+QtnCuW54YGpZlvlJ37tEkDjBWRcmvlbH0IvtK29hDCP7lbrHM9Kwm/B8UQ CYmCpsTYx0j3zqoVb2NC1EiJwsabwC2kToj+Nad/qJM1d54dykR5G4Ltarrzo4/MQRd5eS1xxOflB MSc/1qZg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vDmKO-0000000GHxP-3jFE; Tue, 28 Oct 2025 16:13:44 +0000 Received: from out-172.mta1.migadu.com ([2001:41d0:203:375::ac]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vDmKM-0000000GHwb-1L9V for linux-riscv@lists.infradead.org; Tue, 28 Oct 2025 16:13:43 +0000 Message-ID: <91ebba8f-6960-46f7-854a-6bab3d0bbd5b@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1761668018; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=k6hFEseP+AK2f/a81hSP487sZcnRCpMeyAI0dHmU+Gc=; b=fP8aN+1nMFWAupOIls4HnUnlF9HtUlZL0o8l+1djP+YfdNfdJ3J/Cia9HJk1DLE2MjIDXu NE9SrXnAlosd61D6n3fbZg3bmkoXv24Mz2Tn7binXtKafWMMVkPuU/93T27jM6N8KarUyo OPTFKjSShHeTIA1HBbBj+pksZsl3vEk= Date: Tue, 28 Oct 2025 09:13:24 -0700 MIME-Version: 1.0 Subject: Re: [PATCH] RISC-V: Enable HOTPLUG_PARALLEL for secondary CPUs To: Anup Patel References: <20250905122512.71684-1-apatel@ventanamicro.com> <0f7e6be5-f9ac-4019-93c6-295a068046a8@linux.dev> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Atish Patra Content-Language: en-US In-Reply-To: X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251028_091342_507428_9AD56194 X-CRM114-Status: GOOD ( 16.95 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Anup Patel , Alexandre Ghiti , linux-kernel@vger.kernel.org, Palmer Dabbelt , Paul Walmsley , linux-riscv@lists.infradead.org, Andrew Jones Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Ck9uIDEwLzI4LzI1IDE6NDggQU0sIEFudXAgUGF0ZWwgd3JvdGU6Cj4gT24gVHVlLCBPY3QgMjgs IDIwMjUgYXQgMjowNeKAr1BNIEF0aXNoIFBhdHJhIDxhdGlzaC5wYXRyYUBsaW51eC5kZXY+IHdy b3RlOgo+Pgo+PiBPbiA5LzUvMjUgNToyNSBBTSwgQW51cCBQYXRlbCB3cm90ZToKPj4+IFRoZSBj b3JlIGtlcm5lbCBhbHJlYWR5IHN1cHBvcnRzIHBhcmFsbGVsIGJyaW5ndXAgb2Ygc2Vjb25kYXJ5 Cj4+PiBDUFVzIChha2EgSE9UUExVR19QQVJBTExFTCkuIFRoZSB4ODYgYW5kIE1JUFMgYXJjaGl0 ZWN0dXJlcwo+Pj4gYWxyZWFkeSB1c2UgSE9UUExVR19QQVJBTExFTCBhbmQgQVJNIGlzIGFsc28g bW92aW5nIHRvd2FyZCBpdC4KPj4+Cj4+PiBPbiBSSVNDLVYsIHRoZXJlIGlzIG5vIGFyY2ggc3Bl Y2lmaWMgZ2xvYmFsIGRhdGEgYWNjZXNzZWQgaW4gdGhlCj4+PiBSSVNDLVYgc2Vjb25kYXJ5IENQ VSBicmluZ3VwIHBhdGggc28gZW5hYmxpbmcgSE9UUExVR19QQVJBTExFTCBmb3IKPj4+IFJJU0Mt ViB3b3VsZCBvbmx5IHJlcXVpcmVzOgo+Pj4gMSkgUHJvdmlkaW5nIFJJU0MtViBzcGVjaWZpYyBh cmNoX2NwdWhwX2tpY2tfYXBfYWxpdmUoKQo+Pj4gMikgQ2FsbGluZyBjcHVocF9hcF9zeW5jX2Fs aXZlKCkgZnJvbSBzbXBfY2FsbGluKCkKPj4+Cj4+PiBUaGlzIHBhdGNoIGlzIHRlc3RlZCBuYXRp dmVseSB3aXRoIE9wZW5TQkkgb24gUUVNVSBSVjY0IHZpcnQgbWFjaGluZQo+Pj4gd2l0aCA2NCBj b3JlcyBhbmQgYWxzbyB0ZXN0ZWQgd2l0aCBLVk0gUklTQy1WIGd1ZXN0IHdpdGggMzIgVkNQVXMu Cj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogQW51cCBQYXRlbCA8YXBhdGVsQHZlbnRhbmFtaWNyby5j b20+Cj4+PiAtLS0KPj4+ICAgIGFyY2gvcmlzY3YvS2NvbmZpZyAgICAgICAgICB8ICAyICstCj4+ PiAgICBhcmNoL3Jpc2N2L2tlcm5lbC9zbXBib290LmMgfCAxNSArKysrKysrKysrKysrKysKPj4+ ICAgIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+Pj4K Pj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L0tjb25maWcgYi9hcmNoL3Jpc2N2L0tjb25maWcK Pj4+IGluZGV4IGE0YjIzM2EwNjU5ZS4uZDU4MDBkNmY5YTE1IDEwMDY0NAo+Pj4gLS0tIGEvYXJj aC9yaXNjdi9LY29uZmlnCj4+PiArKysgYi9hcmNoL3Jpc2N2L0tjb25maWcKPj4+IEBAIC0xOTYs NyArMTk2LDcgQEAgY29uZmlnIFJJU0NWCj4+PiAgICAgICAgc2VsZWN0IEhBVkVfU0FNUExFX0ZU UkFDRV9ESVJFQ1RfTVVMVEkKPj4+ICAgICAgICBzZWxlY3QgSEFWRV9TVEFDS1BST1RFQ1RPUgo+ Pj4gICAgICAgIHNlbGVjdCBIQVZFX1NZU0NBTExfVFJBQ0VQT0lOVFMKPj4+IC0gICAgIHNlbGVj dCBIT1RQTFVHX0NPUkVfU1lOQ19ERUFEIGlmIEhPVFBMVUdfQ1BVCj4+PiArICAgICBzZWxlY3Qg SE9UUExVR19QQVJBTExFTCBpZiBIT1RQTFVHX0NQVQo+Pj4gICAgICAgIHNlbGVjdCBJUlFfRE9N QUlOCj4+PiAgICAgICAgc2VsZWN0IElSUV9GT1JDRURfVEhSRUFESU5HCj4+PiAgICAgICAgc2Vs ZWN0IEtBU0FOX1ZNQUxMT0MgaWYgS0FTQU4KPj4+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tl cm5lbC9zbXBib290LmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9zbXBib290LmMKPj4+IGluZGV4IDYw MWEzMjFlMGYxNy4uZDg1OTE2YTM2NjBjIDEwMDY0NAo+Pj4gLS0tIGEvYXJjaC9yaXNjdi9rZXJu ZWwvc21wYm9vdC5jCj4+PiArKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9zbXBib290LmMKPj4+IEBA IC0zOSw3ICszOSw5IEBACj4+Pgo+Pj4gICAgI2luY2x1ZGUgImhlYWQuaCIKPj4+Cj4+PiArI2lm bmRlZiBDT05GSUdfSE9UUExVR19QQVJBTExFTAo+Pj4gICAgc3RhdGljIERFQ0xBUkVfQ09NUExF VElPTihjcHVfcnVubmluZyk7Cj4+PiArI2VuZGlmCj4+Pgo+Pj4gICAgdm9pZCBfX2luaXQgc21w X3ByZXBhcmVfY3B1cyh1bnNpZ25lZCBpbnQgbWF4X2NwdXMpCj4+PiAgICB7Cj4+PiBAQCAtMTc5 LDYgKzE4MSwxMiBAQCBzdGF0aWMgaW50IHN0YXJ0X3NlY29uZGFyeV9jcHUoaW50IGNwdSwgc3Ry dWN0IHRhc2tfc3RydWN0ICp0aWRsZSkKPj4+ICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7Cj4+ PiAgICB9Cj4+Pgo+Pj4gKyNpZmRlZiBDT05GSUdfSE9UUExVR19QQVJBTExFTAo+Pj4gK2ludCBh cmNoX2NwdWhwX2tpY2tfYXBfYWxpdmUodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IHRhc2tfc3Ry dWN0ICp0aWRsZSkKPj4+ICt7Cj4+PiArICAgICByZXR1cm4gc3RhcnRfc2Vjb25kYXJ5X2NwdShj cHUsIHRpZGxlKTsKPj4+ICt9Cj4+PiArI2Vsc2UKPj4+ICAgIGludCBfX2NwdV91cCh1bnNpZ25l ZCBpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRpZGxlKQo+Pj4gICAgewo+Pj4gICAgICAg IGludCByZXQgPSAwOwo+Pj4gQEAgLTE5OSw2ICsyMDcsNyBAQCBpbnQgX19jcHVfdXAodW5zaWdu ZWQgaW50IGNwdSwgc3RydWN0IHRhc2tfc3RydWN0ICp0aWRsZSkKPj4+Cj4+PiAgICAgICAgcmV0 dXJuIHJldDsKPj4+ICAgIH0KPj4+ICsjZW5kaWYKPj4+Cj4+PiAgICB2b2lkIF9faW5pdCBzbXBf Y3B1c19kb25lKHVuc2lnbmVkIGludCBtYXhfY3B1cykKPj4+ICAgIHsKPj4+IEBAIC0yMjUsNiAr MjM0LDEwIEBAIGFzbWxpbmthZ2UgX192aXNpYmxlIHZvaWQgc21wX2NhbGxpbih2b2lkKQo+Pj4g ICAgICAgIG1tZ3JhYihtbSk7Cj4+PiAgICAgICAgY3VycmVudC0+YWN0aXZlX21tID0gbW07Cj4+ Pgo+Pj4gKyNpZmRlZiBDT05GSUdfSE9UUExVR19QQVJBTExFTAo+Pj4gKyAgICAgY3B1aHBfYXBf c3luY19hbGl2ZSgpOwo+Pj4gKyNlbmRpZgo+Pj4gKwo+Pj4gICAgICAgIHN0b3JlX2NwdV90b3Bv bG9neShjdXJyX2NwdWlkKTsKPj4+ICAgICAgICBub3RpZnlfY3B1X3N0YXJ0aW5nKGN1cnJfY3B1 aWQpOwo+Pj4KPj4+IEBAIC0yNDMsNyArMjU2LDkgQEAgYXNtbGlua2FnZSBfX3Zpc2libGUgdm9p ZCBzbXBfY2FsbGluKHZvaWQpCj4+PiAgICAgICAgICovCj4+PiAgICAgICAgbG9jYWxfZmx1c2hf aWNhY2hlX2FsbCgpOwo+Pj4gICAgICAgIGxvY2FsX2ZsdXNoX3RsYl9hbGwoKTsKPj4+ICsjaWZu ZGVmIENPTkZJR19IT1RQTFVHX1BBUkFMTEVMCj4+PiAgICAgICAgY29tcGxldGUoJmNwdV9ydW5u aW5nKTsKPj4+ICsjZW5kaWYKPj4gTEdUTS4KPj4KPj4gUmV2aWV3ZWQtYnk6IEF0aXNoIFBhdHJh IDxhdGlzaHBAcml2b3NpbmMuY29tPgo+Pgo+PiBIYXZlIHlvdSB0cmllZCB3aXRoIDEyOCBoYXJ0 cyA/IEkgd2FzIG5vdCBhYmxlIHRvIGJvb3QgMTI4IGhhcnRzIGluIFFlbXUKPj4gd2l0aCBOUl9D UFVTPTI1Ni4KPj4gVGhpcyBpcyB1bnJlbGF0ZWQgdG8gdGhpcyBwYXRjaCB0aG91Z2guIEkgY2Fu IHJlcHJvZHVjZSB0aGUgaXNzdWUgb24KPj4gdXBzdHJlYW0gd2l0aCA2LjE4LXJjMy4KPiBJIGhh dmUgdHJpZWQgdXB0byA5NiBoYXJ0cyBhbmQgdGhhdCB3b3JrcyBmaW5lLgoKWWVhaC4gSSBoYWQg dHJpZWQgdXB0byA5MiBhcyB3ZWxsLgoKPiBGb3IgMTI4IGhhcnRzLCB0aGUgbWVtb3J5IHVzZWQg YnkgT3BlblNCSSBnb2VzIGJleW9uZCAyTUIgc28KPiBPcGVuU0JJIGNhbid0IHJ1biBmcm9tIHRo ZSBmaXJzdCAyTUIgb2YgRFJBTSAoMHg4MDAwMDAwMCkgYXMgdGhlCj4gZmlyc3QgYm9vdGluZyBz dGFnZS4gVHJ5IHdpdGggVS1Cb290IFNQTCBsb2FkaW5nIE9wZW5TQkkgZnJvbSBGSVQgaW1hZ2Uu CgpBaGggeWVzLiBUaGF0IG1ha2VzIHNlbnNlLiBJIHdpbGwgdHJ5IHdpdGggVS1Cb290IFNQTC4K Cj4gUmVnYXJkcywKPiBBbnVwCj4KPj4KPj4+ICAgICAgICAvKgo+Pj4gICAgICAgICAqIERpc2Fi bGUgcHJlZW1wdGlvbiBiZWZvcmUgZW5hYmxpbmcgaW50ZXJydXB0cywgc28gd2UgZG9uJ3QgdHJ5 IHRvCj4+PiAgICAgICAgICogc2NoZWR1bGUgYSBDUFUgdGhhdCBoYXNuJ3QgYWN0dWFsbHkgc3Rh cnRlZCB5ZXQuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2 Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out-182.mta1.migadu.com (out-182.mta1.migadu.com [95.215.58.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EFE4B278E5D for ; Tue, 28 Oct 2025 16:13:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761668021; cv=none; b=caTAqeWSxLayJVT3oT9MdxK1Q4GhBHta2NKtGuMpRnTjb8yFarK3iyLtop66NbkPKXyaWZnN201Wu7URc2LJNQWsTToT5ZDqehMlofmKTFyJ2ycbKBKKu1qN9/ctyFo8Lgq9DBQdrC5Pj7O5w3BxqbINhOAo8/GIz22DKmzr8jU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761668021; c=relaxed/simple; bh=1FMr40Wyu3AEU5OL8LlXUIHcjSkACHNNJ/reBeLQWaQ=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=CbPJrjx4J2+5SquSpqtweBmlIX5X8OhCJqycZKLdmzbsDMozxfVy5c1SYFtePI1+MVb3/X8TCpFiTyasTf2v63Gp0kxdPgZPYzHNXdMUgB9sR/gcSg5MhVQxzxaRhG0WZkFsxIer9k4EWeer7O0mGfedifwjv6kuCrLkc/2gpV0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=fP8aN+1n; arc=none smtp.client-ip=95.215.58.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="fP8aN+1n" Message-ID: <91ebba8f-6960-46f7-854a-6bab3d0bbd5b@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1761668018; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=k6hFEseP+AK2f/a81hSP487sZcnRCpMeyAI0dHmU+Gc=; b=fP8aN+1nMFWAupOIls4HnUnlF9HtUlZL0o8l+1djP+YfdNfdJ3J/Cia9HJk1DLE2MjIDXu NE9SrXnAlosd61D6n3fbZg3bmkoXv24Mz2Tn7binXtKafWMMVkPuU/93T27jM6N8KarUyo OPTFKjSShHeTIA1HBbBj+pksZsl3vEk= Date: Tue, 28 Oct 2025 09:13:24 -0700 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Subject: Re: [PATCH] RISC-V: Enable HOTPLUG_PARALLEL for secondary CPUs To: Anup Patel Cc: Anup Patel , Palmer Dabbelt , Paul Walmsley , Alexandre Ghiti , Sunil V L , Andrew Jones , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org References: <20250905122512.71684-1-apatel@ventanamicro.com> <0f7e6be5-f9ac-4019-93c6-295a068046a8@linux.dev> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Atish Patra Content-Language: en-US In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT On 10/28/25 1:48 AM, Anup Patel wrote: > On Tue, Oct 28, 2025 at 2:05 PM Atish Patra wrote: >> >> On 9/5/25 5:25 AM, Anup Patel wrote: >>> The core kernel already supports parallel bringup of secondary >>> CPUs (aka HOTPLUG_PARALLEL). The x86 and MIPS architectures >>> already use HOTPLUG_PARALLEL and ARM is also moving toward it. >>> >>> On RISC-V, there is no arch specific global data accessed in the >>> RISC-V secondary CPU bringup path so enabling HOTPLUG_PARALLEL for >>> RISC-V would only requires: >>> 1) Providing RISC-V specific arch_cpuhp_kick_ap_alive() >>> 2) Calling cpuhp_ap_sync_alive() from smp_callin() >>> >>> This patch is tested natively with OpenSBI on QEMU RV64 virt machine >>> with 64 cores and also tested with KVM RISC-V guest with 32 VCPUs. >>> >>> Signed-off-by: Anup Patel >>> --- >>> arch/riscv/Kconfig | 2 +- >>> arch/riscv/kernel/smpboot.c | 15 +++++++++++++++ >>> 2 files changed, 16 insertions(+), 1 deletion(-) >>> >>> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig >>> index a4b233a0659e..d5800d6f9a15 100644 >>> --- a/arch/riscv/Kconfig >>> +++ b/arch/riscv/Kconfig >>> @@ -196,7 +196,7 @@ config RISCV >>> select HAVE_SAMPLE_FTRACE_DIRECT_MULTI >>> select HAVE_STACKPROTECTOR >>> select HAVE_SYSCALL_TRACEPOINTS >>> - select HOTPLUG_CORE_SYNC_DEAD if HOTPLUG_CPU >>> + select HOTPLUG_PARALLEL if HOTPLUG_CPU >>> select IRQ_DOMAIN >>> select IRQ_FORCED_THREADING >>> select KASAN_VMALLOC if KASAN >>> diff --git a/arch/riscv/kernel/smpboot.c b/arch/riscv/kernel/smpboot.c >>> index 601a321e0f17..d85916a3660c 100644 >>> --- a/arch/riscv/kernel/smpboot.c >>> +++ b/arch/riscv/kernel/smpboot.c >>> @@ -39,7 +39,9 @@ >>> >>> #include "head.h" >>> >>> +#ifndef CONFIG_HOTPLUG_PARALLEL >>> static DECLARE_COMPLETION(cpu_running); >>> +#endif >>> >>> void __init smp_prepare_cpus(unsigned int max_cpus) >>> { >>> @@ -179,6 +181,12 @@ static int start_secondary_cpu(int cpu, struct task_struct *tidle) >>> return -EOPNOTSUPP; >>> } >>> >>> +#ifdef CONFIG_HOTPLUG_PARALLEL >>> +int arch_cpuhp_kick_ap_alive(unsigned int cpu, struct task_struct *tidle) >>> +{ >>> + return start_secondary_cpu(cpu, tidle); >>> +} >>> +#else >>> int __cpu_up(unsigned int cpu, struct task_struct *tidle) >>> { >>> int ret = 0; >>> @@ -199,6 +207,7 @@ int __cpu_up(unsigned int cpu, struct task_struct *tidle) >>> >>> return ret; >>> } >>> +#endif >>> >>> void __init smp_cpus_done(unsigned int max_cpus) >>> { >>> @@ -225,6 +234,10 @@ asmlinkage __visible void smp_callin(void) >>> mmgrab(mm); >>> current->active_mm = mm; >>> >>> +#ifdef CONFIG_HOTPLUG_PARALLEL >>> + cpuhp_ap_sync_alive(); >>> +#endif >>> + >>> store_cpu_topology(curr_cpuid); >>> notify_cpu_starting(curr_cpuid); >>> >>> @@ -243,7 +256,9 @@ asmlinkage __visible void smp_callin(void) >>> */ >>> local_flush_icache_all(); >>> local_flush_tlb_all(); >>> +#ifndef CONFIG_HOTPLUG_PARALLEL >>> complete(&cpu_running); >>> +#endif >> LGTM. >> >> Reviewed-by: Atish Patra >> >> Have you tried with 128 harts ? I was not able to boot 128 harts in Qemu >> with NR_CPUS=256. >> This is unrelated to this patch though. I can reproduce the issue on >> upstream with 6.18-rc3. > I have tried upto 96 harts and that works fine. Yeah. I had tried upto 92 as well. > For 128 harts, the memory used by OpenSBI goes beyond 2MB so > OpenSBI can't run from the first 2MB of DRAM (0x80000000) as the > first booting stage. Try with U-Boot SPL loading OpenSBI from FIT image. Ahh yes. That makes sense. I will try with U-Boot SPL. > Regards, > Anup > >> >>> /* >>> * Disable preemption before enabling interrupts, so we don't try to >>> * schedule a CPU that hasn't actually started yet.