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 09F5AC3DA42 for ; Wed, 10 Jul 2024 20:20:09 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:References :In-Reply-To:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=HgOeEs0IEUdEH6Rvp1NoCkCRI3rXpj5kVvt4xBfaKOo=; b=rvfyz/q2t1GM9i yezGpKKl4nsz1dWt+uJ4rvwtcvSe7cCui9MN9Z7tG3F9WxsXqEvgVEW8/7TOkiyfbyEJXH29dw4qv eSROwlLLX0IW3PoxYKLz2fLu9Bjow7TJFnDQDOcSkbSjqbcgnhomWgDDLs61OiwwXYJZc5/VtSr28 Htb7qkDnytyyjFRYNuys6qCGwyfZVwB08xEU3zawAF709dRXYdZvbeg9EgHrhZZkMDHedT9b1doS9 Y6/GGhxMbIPGbQC4A7IXsbMWWZszg/vfTJhGDBWESxTr7ehkWHZKFqGtSY5e35VvV37qhDbNMUpW8 jhs9HIcyauzWGUBoTSmA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sRdnI-0000000Bdl3-1bkq; Wed, 10 Jul 2024 20:20:04 +0000 Received: from galois.linutronix.de ([193.142.43.55]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sRdnD-0000000BdjH-0rMY for linux-riscv@lists.infradead.org; Wed, 10 Jul 2024 20:20:02 +0000 From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1720642794; 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=BnXG/JKnLr0h3GlU+atLgTzdvWjSnxPK3E+F8E/BRZs=; b=G6aiDFt4rNn4UQrLnfHUgYntl2CfqT4zHBB204F0OGZ+M1orepDmsL+mdL9rxlgI04L3JT Vl9CTFuy86iHF8aYpj8t/Au6D6waRaunydEwtg5C9eJ9SRb4ON65NmP/PTRz8qBVD/hsoJ bXYxb+IYo5QQImFP/WT08y5+oZLyHm4QxiFReFcvlEIfk8mNJEmOr0dnWYP9PlVQBIduWS iQfIwlt2zLlAG1QInGCPry44EIRWJt1bTBQ807OL2IXnIWEFhBlRBUvgsPQFVAzF//MQCU rzR4HTF+B7e27FIp4yllE9SuHJc0LruobIF1lml7HQy6CdHd7vB+wk4ScRqCPQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1720642794; 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=BnXG/JKnLr0h3GlU+atLgTzdvWjSnxPK3E+F8E/BRZs=; b=5+dzHl9gS4zPz4CthMByS7+DAK8Ls62Xy0hCLFVPloiS+oMzYph8RAU8IblWvRlf9bi3/f VgtIzNFJKFMJBUBg== To: Nam Cao , Anup Patel Cc: Paul Walmsley , Samuel Holland , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, b.spranger@linutronix.de, Christoph Hellwig , Marc Zyngier Subject: Re: [PATCH] irqchip/sifive-plic: Fix plic_set_affinity() only enables 1 cpu In-Reply-To: <20240707143414.0ydME30F@linutronix.de> References: <20240703072659.1427616-1-namcao@linutronix.de> <20240703123327.CvOiP2Jb@linutronix.de> <20240707143414.0ydME30F@linutronix.de> Date: Wed, 10 Jul 2024 22:19:54 +0200 Message-ID: <87r0c1uhhx.ffs@tglx> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240710_131959_583233_69487FAD X-CRM114-Status: GOOD ( 25.03 ) 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: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gU3VuLCBKdWwgMDcgMjAyNCBhdCAxNjozNCwgTmFtIENhbyB3cm90ZToKPiBPbiBXZWQsIEp1 bCAwMywgMjAyNCBhdCAwODozMTozMVBNICswNTMwLCBBbnVwIFBhdGVsIHdyb3RlOgo+PiBPbiBX ZWQsIEp1bCAzLCAyMDI0IGF0IDY6MDPigK9QTSBOYW0gQ2FvIDxuYW1jYW9AbGludXRyb25peC5k ZT4gd3JvdGU6Cj4+ID4gVGhlbiB3ZSBzaG91bGQgbGVhdmUgdGhlIGpvYiBvZiBkaXN0cmlidXRp bmcgaW50ZXJydXB0cyB0byB0aG9zZSB0b29scywKPj4gPiByaWdodD8gTm90IGFsbCB1c2UgY2Fz ZXMgd2FudCBtaW5pbWFsbHkgd2FzdGVkIENQVSBjeWNsZXMuIEZvciBleGFtcGxlLCBpZgo+PiA+ IGEgcGFydGljdWxhciBpbnRlcnJ1cHQgZG9lcyBub3QgYXJyaXZlIHZlcnkgb2Z0ZW4sIGJ1dCB3 aGVuIGl0IGRvZXMsIGl0Cj4+ID4gbmVlZHMgdG8gYmUgaGFuZGxlZCBmYXN0OyBpbiB0aGlzIGV4 YW1wbGUsIGNsZWFybHkgZW5hYmxpbmcgdGhpcyBpbnRlcnJ1cHQKPj4gPiBmb3IgYWxsIENQVXMg aXMgc3VwZXJpb3IuCgpJdCdzIG5vdCByZWFsbHkgc3VwZXJpb3IgYXQgYWxsLgoKVGhlIHByb2Js ZW0gaXMgdGhhdCBhIHNpbmdsZSBpbnRlcnJ1cHQgaXMgZGVsaXZlcmVkIHRvIG11bHRpcGxlIENQ VXMgYXQKb25jZSBhbmQgdGhlcmUgaXMgbm8gbWVjaGFuaXNtIGluIHRoZSBoYXJkd2FyZSB0byBz ZWxlY3Qgb25lIENQVSBmcm9tCnRoZSBnaXZlbiBzZXQgd2hpY2ggY2FuIGhhbmRsZSBpdCBxdWlj a2x5IGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZQppbnRlcnJ1cHRzIGRpc2FibGVkLiBUaGUgc3Bl YyBpcyBjbGVhciBhYm91dCB0aGlzOgoKIlRoZSBQTElDIGhhcmR3YXJlIG9ubHkgc3VwcG9ydHMg bXVsdGljYXN0aW5nIG9mIGludGVycnVwdHMsIHN1Y2ggdGhhdAogYWxsIGVuYWJsZWQgdGFyZ2V0 cyB3aWxsIHJlY2VpdmUgaW50ZXJydXB0IG5vdGlmaWNhdGlvbnMgZm9yIGEgZ2l2ZW4KIGFjdGl2 ZSBpbnRlcnJ1cHQuIE11bHRpY2FzdGluZyBwcm92aWRlcyByYXBpZCByZXNwb25zZSBzaW5jZSB0 aGUKIGZhc3Rlc3QgcmVzcG9uZGVyIGNsYWltcyB0aGUgaW50ZXJydXB0LCBidXQgY2FuIGJlIHdh c3RlZnVsIGluCiBoaWdoLWludGVycnVwdC1yYXRlIHNjZW5hcmlvcyBpZiBtdWx0aXBsZSBoYXJ0 cyB0YWtlIGEgdHJhcCBmb3IgYW4KIGludGVycnVwdCB0aGF0IG9ubHkgb25lIGNhbiBzdWNjZXNz ZnVsbHkgY2xhaW0uIgoKSXQncyBldmVuIHdvcnNlLiAkTiBDUFVzIHdpbGwgaW4gdGhlIHdvcnN0 IGNhc2UgY29uZ2VzdCBvbiB0aGUgaW50ZXJydXB0CmRlc2NyaXB0b3IgbG9jayBhbmQgZm9yIGVk Z2UgdHlwZSBpbnRlcnJ1cHRzIGl0IHdpbGwgY2F1c2UgdGhlIGludGVycnVwdAp0byBiZSBtYXNr ZWQsIG1hcmtlZCBwZW5kaW5nIGFuZCB0aGUgaGFuZGxpbmcgQ1BVIGlzIGZvcmNlZCB0byB1bm1h c2sKYW5kIHJ1biBhbm90aGVyIGhhbmRsZXIgaW52b2NhdGlvbi4gVGhhdCdzIGp1c3Qgd3Jvbmcu CgpBc2lkZSBvZiB0aGF0IHRoaXMgY2FuIGNhdXNlIHRoZSBsb3NzIG9mIGNhY2hlIGFuZCBtZW1v cnkgbG9jYWxpdHkgaW4KaGlnaCBzcGVlZCBzY2VuYXJpb3Mgd2hlbiB0aGUgaW50ZXJydXB0IGhh bmRsZXIgYm91bmNlcyBhcm91bmQgYmV0d2VlbgpDUFVzLgoKPj4gVGhpcyBpcyBhIHZlcnkgc3Bl Y2lmaWMgY2FzZSB3aGljaCB5b3UgYXJlIHRyeWluZyB0byBvcHRpbWl6ZSBhbmQgaW4gdGhlCj4+ IHByb2Nlc3MgaHVydGluZyBwZXJmb3JtYW5jZSBpbiBtYW55IG90aGVyIGNhc2VzLiBUaGVyZSBh cmUgbWFueSBoaWdoCj4+IHNwZWVkIElPcyAobmV0d29yaywgc3RvcmFnZSwgZXRjKSB3aGVyZSBy YXRlIG9mIGludGVycnVwdCBpcyBoaWdoIHNvIGZvcgo+PiBzdWNoIElPIHlvdXIgcGF0Y2ggd2ls bCBkZWdyYWRlIHBlcmZvcm1hbmNlIG9uIG11bHRpcGxlIENQVXMuCj4KPiBObywgaXQgd291bGRu J3QgImh1cnRpbmcgcGVyZm9ybWFuY2UgaW4gbWFueSBvdGhlciBjYXNlcyIuIEl0IHdvdWxkIGdp dmUKPiB1c2VycyB0aGUgYWJpbGl0eSB0byBkbyB3aGF0IHRoZXkgd2FudCwgaW5jbHVkaW5nIGh1 cnRpbmcgcGVyZm9ybWFuY2UgYXMKPiB5b3Ugc2FpZCwgb3IgaW1wcm92aW5nIHBlcmZvcm1hbmNl IGFzIEkgcG9pbnRlZCBvdXQgZWFybGllci4KCktpbmRhLCBidXQgeW91IG1ha2UgdGhlIGJhZCBj YXNlIHRoZSBkZWZhdWx0IGZvciB2ZXJ5IGR1YmlvdXMgYmVuZWZpdHMuCgpJIGdyYW50IHlvdSB0 aGF0IHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHdoaWNoIGRlZmF1bHRzIGV2ZXJ5dGhpbmcg dG8KQ1BVMCBpcyBzdWJvcHRpbWFsLCBidXQgdGhhdCdzIGFuIG9ydGhvZ29uYWwgcHJvYmxlbS4g RS5nLiBYODYgc2VsZWN0cwp0aGUgc2luZ2xlIHRhcmdldCBDUFUgZnJvbSB0aGUgbWFzayBieSBz cHJlYWRpbmcgdGhlIGludGVycnVwdHMgb3V0CmhhbGZ3YXlzIGV2ZW5seS4KCkJ1dCBpZiB5b3Ug cmVhbGx5IGNhcmUgYWJvdXQgbG93IGxhdGVuY3ksIHRoZW4geW91IHdhbnQgdG8gc2VsZWN0aXZl bHkKYXNzb2NpYXRlIGludGVycnVwdHMgdG8gcGFydGljdWxhciBDUFVzIGFuZCBlbnN1cmUgdGhh dCB0aGUgYXNzb2NpYXRlZApwcm9jZXNzaW5nIGlzIGJvdW5kIHRvIHRoZSBzYW1lIENQVS4KCj4g SSBhbSB3aWxsaW5nIHRvIGJldCB0aGF0IG1vc3QgdXNlcnMgZG9uJ3QgZXZlciB0b3VjaCB0aGlz LiBCdXQgaWYgdGhleSBkbywKPiB0aGV5IGJldHRlciBrbm93IHdoYXQgdGhleSBhcmUgZG9pbmcu IElmIHRoZXkgd2FudCB0byB3YXN0ZSB0aGVpciBDUFUKPiBjeWNsZXMsIHNvIGJlIGl0LgoKVGhh dCdzIG5vdCB3aGF0IHlvdXIgcGF0Y2ggZG9lcy4gSXQgZGVmYXVsdHMgdG8gYmFkIGJlaGF2aW91 ci4KCj4gTXkgcG9pbnQgZXNzZW50aWFsbHkgaXMgdGhhdCBrZXJuZWwgc2hvdWxkbid0IGZvcmNl IGFueSBwb2xpY3kgb24gdXNlcnMuCj4gVGhlIG9ubHkgY2FzZSB0aGlzIG1ha2VzIHNlbnNlIGlz IHdoZW4gdGhlIHBvbGljeSBpcyBfc3RyaWN0bHlfIGJldHRlciB0aGFuCj4gYW55dGhpbmcgZWxz ZSwgd2hpY2ggaXMgbm90IHRydWUgaGVyZS4gV2hhdCB0aGUgZHJpdmVyIHNob3VsZCBkbyBpcwo+ IHByb3ZpZGluZyBhICJnb29kIGVub3VnaCBmb3IgbW9zdCIgZGVmYXVsdCwgYnV0IHN0aWxsIGxl dCB1c2VycyBkZWNpZGUKPiB3aGF0J3MgYmVzdCBmb3IgdGhlbS4KClNlZSB3aGF0IEkgZXhwbGFp bmVkIHlvdSBhYm92ZS4gQ2hhbmdpbmcgdGhpcyB0byBtdWx0aS1DUFUgZGVsaXZlcnkgaXMKbm90 IHJlYWxseSBnb29kIGVub3VnaCBhbmQgdGhlcmUgaXMgYSB2YWxpZCB0ZWNobmljYWwgcmVhc29u IG5vdCB0byBkbwp0aGF0LgoKPiBTaWRlIG5vdGU6IGlmIEkgYW0gbm90IG1pc3Rha2VuLCB0aGUg ZWZmZWN0aXZlIGFmZmluaXR5IG1hc2sgdGhpbmcgaXMgZm9yCj4gaGFyZHdhcmUgbGltaXRhdGlv biBvZiB0aGUgY2hpcHMgd2hvIGNhbm5vdCBlbmFibGUgaW50ZXJydXB0IGZvciBhbGwgQ1BVcwo+ IGluIHRoZSBtYXNrLiBSSVNDLVYgUExJQywgb24gdGhlIG90aGVyIGhhbmQsIGNhbiBlbmFibGUg aW50ZXJydXB0cyBmb3IgYW55Cj4gQ1BVLCBhbmQgdGhlcmVmb3JlIHNob3VsZCBkbyBzby4KCkl0 J3Mgbm90IG9ubHkgaGFyZHdhcmUgbGltaXRhdGlvbnMgd2hpY2ggY2F1c2UgYXJjaGl0ZWN0dXJl cyB0byBsaW1pdAp0aGUgQ1BVIG1hc2sgdG8gYSBzaW5nbGUgdGFyZ2V0LiBPbiBYODYgc3lzdGVt cyB3aGljaCBzdXBwb3J0IGxvZ2ljYWwKZGVzdGluYXRpb24gb3IgY2x1c3RlciBtb2RlIHRoaXMg d2FzIGRpc2FibGVkIGV2ZW4gdGhvdWdoIHRoZSAnbXVsdGlwbGUKQ1BVcyB0cnkgdG8gaGFuZGxl IGl0JyBwcm9ibGVtIGlzIG1pdGlnYXRlZCBpbiBoYXJkd2FyZS4gVGhlIGJlbmVmaXQgaXMKbWFy Z2luYWwgZm9yIHRoZSBjb21tb24gY2FzZSBhbmQgaXMgbm90IHN1ZmZpY2llbnQgZm9yIHRoZSBs b3cgbGF0ZW5jeQpyZXF1aXJlbWVudHMgY2FzZS4KClVzaW5nIGEgc3ByZWFkaW5nIGFsZ29yaXRo bSBmb3IgdGhlIGRlZmF1bHQgY2FzZSB3aWxsIGhlbHAgZm9yIHRoZQpjb21tb24gY2FzZSwgYnV0 IHdvbid0IGJlIHN1ZmZpY2llbnQgZm9yIHNwZWNpYWwgbGF0ZW5jeSBzZW5zaXRpdmUKc2NlbmFy aW9zLiBUaG9zZSBhcmUgdGhlIHNjZW5hcmlvcyB3aGVyZSB0aGUgdXNlciBuZWVkcyB0byB0YWtl IGNhcmUgYW5kCnNldCB0aGUgYWZmaW5pdGllcyBjb3JyZWN0bHkuCgpUaGFua3MsCgogICAgICAg IHRnbHgKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (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 E1D4C82D69 for ; Wed, 10 Jul 2024 20:20:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720642804; cv=none; b=B1zsMeBuU57JEvZV2/mhR0o0w8Qm9HzCkICtjR36WAj6ekvZYgXG3wnuKQQ8lWB+hwzjv5Gqv+T9jhCzi+lLzQcHHVXwGqAgDRPKcsoF3ufsTPy1Xb+o+oKv4m5VsaDfXaBUKB11I2Dus3NpOSEv9V4OsjYWHszt5bLR5hbXS70= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1720642804; c=relaxed/simple; bh=h/GxLIwyES+pnnON57gG6KMzcUdU/Y2kBp9Ou625mfo=; h=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID: MIME-Version:Content-Type; b=W6NiauD+dNzjRNUT9RDrnVgalaH0T5JuT7Bdj+JEnq8l3rkGA0o0g4094C34tv+J1u8JFS6XM1k/6+nwm3+DkyZ3jRjaWGj2gpDpYZnlBNTniweJlD84zm0UwfAek3KFuxZMXwUMb2AkCNgqbe+awjMTTaOIIkK4lsPZ36XBdUs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=G6aiDFt4; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=5+dzHl9g; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="G6aiDFt4"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="5+dzHl9g" From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1720642794; 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=BnXG/JKnLr0h3GlU+atLgTzdvWjSnxPK3E+F8E/BRZs=; b=G6aiDFt4rNn4UQrLnfHUgYntl2CfqT4zHBB204F0OGZ+M1orepDmsL+mdL9rxlgI04L3JT Vl9CTFuy86iHF8aYpj8t/Au6D6waRaunydEwtg5C9eJ9SRb4ON65NmP/PTRz8qBVD/hsoJ bXYxb+IYo5QQImFP/WT08y5+oZLyHm4QxiFReFcvlEIfk8mNJEmOr0dnWYP9PlVQBIduWS iQfIwlt2zLlAG1QInGCPry44EIRWJt1bTBQ807OL2IXnIWEFhBlRBUvgsPQFVAzF//MQCU rzR4HTF+B7e27FIp4yllE9SuHJc0LruobIF1lml7HQy6CdHd7vB+wk4ScRqCPQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1720642794; 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=BnXG/JKnLr0h3GlU+atLgTzdvWjSnxPK3E+F8E/BRZs=; b=5+dzHl9gS4zPz4CthMByS7+DAK8Ls62Xy0hCLFVPloiS+oMzYph8RAU8IblWvRlf9bi3/f VgtIzNFJKFMJBUBg== To: Nam Cao , Anup Patel Cc: Paul Walmsley , Samuel Holland , linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, b.spranger@linutronix.de, Christoph Hellwig , Marc Zyngier Subject: Re: [PATCH] irqchip/sifive-plic: Fix plic_set_affinity() only enables 1 cpu In-Reply-To: <20240707143414.0ydME30F@linutronix.de> References: <20240703072659.1427616-1-namcao@linutronix.de> <20240703123327.CvOiP2Jb@linutronix.de> <20240707143414.0ydME30F@linutronix.de> Date: Wed, 10 Jul 2024 22:19:54 +0200 Message-ID: <87r0c1uhhx.ffs@tglx> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Sun, Jul 07 2024 at 16:34, Nam Cao wrote: > On Wed, Jul 03, 2024 at 08:31:31PM +0530, Anup Patel wrote: >> On Wed, Jul 3, 2024 at 6:03=E2=80=AFPM Nam Cao wr= ote: >> > Then we should leave the job of distributing interrupts to those tools, >> > right? Not all use cases want minimally wasted CPU cycles. For example= , if >> > a particular interrupt does not arrive very often, but when it does, it >> > needs to be handled fast; in this example, clearly enabling this inter= rupt >> > for all CPUs is superior. It's not really superior at all. The problem is that a single interrupt is delivered to multiple CPUs at once and there is no mechanism in the hardware to select one CPU from the given set which can handle it quickly because it does not have interrupts disabled. The spec is clear about this: "The PLIC hardware only supports multicasting of interrupts, such that all enabled targets will receive interrupt notifications for a given active interrupt. Multicasting provides rapid response since the fastest responder claims the interrupt, but can be wasteful in high-interrupt-rate scenarios if multiple harts take a trap for an interrupt that only one can successfully claim." It's even worse. $N CPUs will in the worst case congest on the interrupt descriptor lock and for edge type interrupts it will cause the interrupt to be masked, marked pending and the handling CPU is forced to unmask and run another handler invocation. That's just wrong. Aside of that this can cause the loss of cache and memory locality in high speed scenarios when the interrupt handler bounces around between CPUs. >> This is a very specific case which you are trying to optimize and in the >> process hurting performance in many other cases. There are many high >> speed IOs (network, storage, etc) where rate of interrupt is high so for >> such IO your patch will degrade performance on multiple CPUs. > > No, it wouldn't "hurting performance in many other cases". It would give > users the ability to do what they want, including hurting performance as > you said, or improving performance as I pointed out earlier. Kinda, but you make the bad case the default for very dubious benefits. I grant you that the current implementation which defaults everything to CPU0 is suboptimal, but that's an orthogonal problem. E.g. X86 selects the single target CPU from the mask by spreading the interrupts out halfways evenly. But if you really care about low latency, then you want to selectively associate interrupts to particular CPUs and ensure that the associated processing is bound to the same CPU. > I am willing to bet that most users don't ever touch this. But if they do, > they better know what they are doing. If they want to waste their CPU > cycles, so be it. That's not what your patch does. It defaults to bad behaviour. > My point essentially is that kernel shouldn't force any policy on users. > The only case this makes sense is when the policy is _strictly_ better th= an > anything else, which is not true here. What the driver should do is > providing a "good enough for most" default, but still let users decide > what's best for them. See what I explained you above. Changing this to multi-CPU delivery is not really good enough and there is a valid technical reason not to do that. > Side note: if I am not mistaken, the effective affinity mask thing is for > hardware limitation of the chips who cannot enable interrupt for all CPUs > in the mask. RISC-V PLIC, on the other hand, can enable interrupts for any > CPU, and therefore should do so. It's not only hardware limitations which cause architectures to limit the CPU mask to a single target. On X86 systems which support logical destination or cluster mode this was disabled even though the 'multiple CPUs try to handle it' problem is mitigated in hardware. The benefit is marginal for the common case and is not sufficient for the low latency requirements case. Using a spreading algorithm for the default case will help for the common case, but won't be sufficient for special latency sensitive scenarios. Those are the scenarios where the user needs to take care and set the affinities correctly. Thanks, tglx