Received: by 2002:ab2:6857:0:b0:1ef:ffd0:ce49 with SMTP id l23csp2523520lqp; Mon, 25 Mar 2024 01:03:32 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVkpFx4ExHKsUM0tht5Os2aiamNUUUJ+KgTXJRaHaJ0U/ziJxWDLXE/ijGz2XYP+9H7XGsqKI1jRdmSk0L1V0VAEF+uiT34QlgmyTnsgg== X-Google-Smtp-Source: AGHT+IFgHSdQAZ2/dIls1dFWjru5VTGuy4WKFdd/aeEy9QaeHGe5uljFos9f/uZlbuhFDupfnwM0 X-Received: by 2002:ad4:5963:0:b0:690:d028:7d23 with SMTP id eq3-20020ad45963000000b00690d0287d23mr8956769qvb.52.1711353812113; Mon, 25 Mar 2024 01:03:32 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711353812; cv=pass; d=google.com; s=arc-20160816; b=k1HcTBtPf+dyjaoK/t/Qz2689+y1IbPLEvlDiRYUW8l3s+6T4tQ2kyUSy6U67SaZE2 5kcH20cLFu5ApUFzKbXjITJe7QVrXyad6ijXvlNVA3ze6NDxfhZZWgXfJOXaMDhDeqD5 2smT8BpfIbJmwow+FmIclQgb+uVNFIiPmoGgk4cgrFGnEBF0RgL5LNO2kXfPjJbantM1 yKgGj7sgAuUaGxPeEaF1zVxjXmG9csi9fkdhTabEeN5MRciDVG//4zDct39DBCCzHECS 6qx1uxoZDxkwdm3LyGg4ZqNRSUb3DDkfhU46cSG7ABUKrsERKgWdO4oZAMdsv6fuAmpO NcRw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=0o5nuzmMuecp/Yv4rmyn0j42SwylNTpT0PAs0DfRDXg=; fh=4sX0AQqkeIj0OfiW+ozFIhOM0fQ6NXViqGWq13GB+Rg=; b=O5kO8MLORe93/MgzvrwYm8drclezlcYEivfjyOlSWGJDhcKbtJ3Ok1PD2FiP8nfmH+ Hmp1OLz9xxY0qq6Bz2+VagYiDoseI1Li1G6DQUnBvkT/CcZZ7k8mO0yLzRTX/perBto5 +gJLFDn/Ogy9jpcCgOSG+k/dQba3BTM0f5QiJczDOGpCNDQdS1QSNvaM+9zcsVZ3XGHJ CmkDOGc20Nz5q1oPGWP5CWeFSJ/Ik2Ki2724I6mSj/1ylTD2KRD6wo/T739DD6HjrBOZ XQW+cGdGSRRlTMDH2fCsH5KuYpM139QGWOfwxrg9NKCEnmy5f+AQMwFEKFXHxTsy2N03 4/aw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=g3G1zpWm; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-115745-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-115745-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id z3-20020a056214040300b00690aba6076asi7282117qvx.472.2024.03.25.01.03.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Mar 2024 01:03:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-115745-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=g3G1zpWm; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-115745-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-115745-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id A77271C2F204 for ; Mon, 25 Mar 2024 08:03:31 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 195EB368284; Mon, 25 Mar 2024 02:58:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="g3G1zpWm" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 8EA7D156C6E; Sun, 24 Mar 2024 23:11:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321899; cv=none; b=bRocXA4LU1brXfo1XI3CuL4f/d49gsBsOqLms3dPg0/HyLeVPc8DcpmTja26Bx90ti6Bfn8DQmrDWFCbrb+7d274M31nnsGgJdnBx6PuzcQ73zQk7TyG0apTDMfdxPEh61a0ESe4FLkPZhNRhNtHKKt8RMnzk225M00NX/235UY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711321899; c=relaxed/simple; bh=Lm58yLj4CP4NhjAUo2FqJTK/ATsFSEnj/2hVBaANo48=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ckBTiO9gnxxWPj1EYm6puTTTGDY0zp6V1IIBoOlNGWX0BFJS9QEmFUkYBDl12HIBK5xTmgeEgeWx2kzsXB8sz+vcwx+9NvMMA1Y+EMsGK2mJ1IGjMNxuaezEfkGXp9URCDK5Y/wsTpXmDAL9a+ozVnN+luOT8cBwdSSbOZ4s9WQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=g3G1zpWm; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id A3B00C433C7; Sun, 24 Mar 2024 23:11:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711321899; bh=Lm58yLj4CP4NhjAUo2FqJTK/ATsFSEnj/2hVBaANo48=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=g3G1zpWmZSvpYGIKlJBMMzocw54S6v5LnVPAiybF+JEoaoFbyZYPVie/sJB6K7BsA vzAWTZJdwxtW858Uvry/eUBzP/l0nwC9Tds4wEyMTtPgGoLrhvOeByr5sQMbc3FKbT mIbX/XIzUIklT94RQHsI3G9WyPl3ZQfUIamCekhJIShNijyegI46NmwMCCJhKmU6XH FfIAxPRj/1SRss3IYFuRd6yGuTJ+VooWvyoSP8M0oL7qkIB1yuOZTc0xHn0ENuUXGV Ibb4iyVumnadd0r+KOdzTSHyMkNO6DPMIke8cjkfXb9mEOKYU8s5EMGZz4KRRy1ZjO vvapN88pE+xtg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Yan Zhai , Jesper Dangaard Brouer , "Paul E . McKenney" , Jakub Kicinski , Sasha Levin Subject: [PATCH 6.6 628/638] bpf: report RCU QS in cpumap kthread Date: Sun, 24 Mar 2024 19:01:05 -0400 Message-ID: <20240324230116.1348576-629-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324230116.1348576-1-sashal@kernel.org> References: <20240324230116.1348576-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit From: Yan Zhai [ Upstream commit 00bf63122459e87193ee7f1bc6161c83a525569f ] When there are heavy load, cpumap kernel threads can be busy polling packets from redirect queues and block out RCU tasks from reaching quiescent states. It is insufficient to just call cond_resched() in such context. Periodically raise a consolidated RCU QS before cond_resched fixes the problem. Fixes: 6710e1126934 ("bpf: introduce new bpf cpu map type BPF_MAP_TYPE_CPUMAP") Reviewed-by: Jesper Dangaard Brouer Signed-off-by: Yan Zhai Acked-by: Paul E. McKenney Acked-by: Jesper Dangaard Brouer Link: https://lore.kernel.org/r/c17b9f1517e19d813da3ede5ed33ee18496bb5d8.1710877680.git.yan@cloudflare.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin --- kernel/bpf/cpumap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/bpf/cpumap.c b/kernel/bpf/cpumap.c index 9140b8bff9c04..df03e66a687c1 100644 --- a/kernel/bpf/cpumap.c +++ b/kernel/bpf/cpumap.c @@ -262,6 +262,7 @@ static int cpu_map_bpf_prog_run(struct bpf_cpu_map_entry *rcpu, void **frames, static int cpu_map_kthread_run(void *data) { struct bpf_cpu_map_entry *rcpu = data; + unsigned long last_qs = jiffies; complete(&rcpu->kthread_running); set_current_state(TASK_INTERRUPTIBLE); @@ -287,10 +288,12 @@ static int cpu_map_kthread_run(void *data) if (__ptr_ring_empty(rcpu->queue)) { schedule(); sched = 1; + last_qs = jiffies; } else { __set_current_state(TASK_RUNNING); } } else { + rcu_softirq_qs_periodic(last_qs); sched = cond_resched(); } -- 2.43.0