From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2B84B3264E4 for ; Tue, 9 Jun 2026 15:37:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.194 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781019465; cv=none; b=RJ+EVwwGDFQL7qSq5EwCaCBgVG4IOAFg0GDteq2EcboiVhZKNgTtmakHzD/ddY7L83Wt0hSDJyM40IlX5JQ9qjVPQYvMZ9AEMy9bzV57Xy/39kLNtvj4VG3MfW4KMDb6baR4izXr+6HtwJstMZiCo+wIybmwjKKPg1IQFIWZh6c= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781019465; c=relaxed/simple; bh=NKP3/2B1F6kVPLprL70LvEkW/5yNWBgLqHT1gvu0ZEY=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=ctwWI81OKnyMEcReAiL8iOyX77Qspj0rTUMtcRkjJvN3ikTwfW746PynkF80FXKS6Q2HN0bRZ7+JVejqvDkRK5tmMGzmi+q5zXJbJuNCtLvi+Fj9gIsm6TUpQSS0W2lq1JYJMcHcYffoojnlm6Q7PhTmmTXhrjhEDC+xwAWhjxY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=cV5IwGZ7; arc=none smtp.client-ip=209.85.215.194 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cV5IwGZ7" Received: by mail-pg1-f194.google.com with SMTP id 41be03b00d2f7-c859a374903so1974372a12.3 for ; Tue, 09 Jun 2026 08:37:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781019463; x=1781624263; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=ugNb2Z9vQfU1zjSBllu0erAwx0ETb1zliLM0vQU6x4M=; b=cV5IwGZ7w7dDPu+UNT3NtCf+pD31KjAeUqXQHlaInnv5BG/1cpt3ASqT0FBmX+I1rv l5R1EYYfu2hR0BvU/HWZEEctom4PDE1NNdJEd3zHB2Lfk2g7eLYO4AVyxeFoVgDl7OrJ zRsxVrWmR9V1BYlFjf1Foo8bcm9fhx0BhdodOP5XxekziSA55gbGXFin2g87F3BvPnxg LJJ9NHmCuSvZ8Ir3pqb/vqK+YDNdRkQnZK5rKYdaPM9hlsVp0njnApcA4EPuchSRuIzx v6lkW3wCLUmai/Rxlw6vRPSsf4yxwHW7Sfnk0b2AG16Te3G6U73zWQCOn48oqW4Xk1vA OqeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781019463; x=1781624263; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ugNb2Z9vQfU1zjSBllu0erAwx0ETb1zliLM0vQU6x4M=; b=VtReXtOymHJv7UEjNTq46jpE1DxMKqe2SN7Dfu6TlGun/UXX/3kmH13afJJ1j9dfSE u8+lHk7ARBa5O/MNM0pojZNtbiFtaCnUTz2e8pNtK2ae7KTzlhE1F4zJHr9Ba4R2xn1M p4l7boaMjweAvVta/WuDLFDBrgBWSXfsAVQJjDyg5PY98JH/i7dOsrjzHx4+w6yqeIJY /7juiSbM6ahIYl1NKU+K5hzPfEOilqPKGS7EOEHK3zgvcs4ykRSNQHH+jIfcFgsC+Dxz dnqzY9+uy9+0sc7q/FCEUHuiRdEvQvD8tF5XqHqbHoME2wYaGNgUMSeJiMXjdh2xmt6X xAFA== X-Forwarded-Encrypted: i=1; AFNElJ+sUZUiYH2OBqU+RF/vXRWl5fIg61bQ3mlwbAVVXa6SSkHmyEPH8rIwsfpUdKiIlV6l5L4pG/F5/nZmRoE=@vger.kernel.org X-Gm-Message-State: AOJu0YwugdugkP6MHDvseFdeMdUVi/tmTSdK7oUdPiHfD3v/dl5QnOFB x4XRHZpC82dqH3H8YxeeS5BWsRKEdzni56aZjFC8KLE39vkL6m/aUjV0 X-Gm-Gg: Acq92OFfKxWkR+K422N8CybLSiW5V6Xib/wn0GYE8GzGULmmizbf226c4cmQNSUuhwV 1rNgbD61qPNGGQlnlA77g1pTVKGucXgZAHTINtiQIs1ShF/UVIAt4lLYSAbEN5pZeLfPTt6Yq3G YydyqRRBdPWFaU6Z3ycMUdkOHrZH6iO0JnVCWKK6cD8NTDsieZI+cFH62JKt4LU4cqfsJ/OPgrp T3ehB4fUpgsVbXZ+rX6In8e3gLEno4c1z70ABV5g0q1+HBWtVVJN99Td2vXXTQFDscfZ8PLsIVt eT5VSmDvMITcc1bhPp2+1bpCWCILqFFexazZcte7ZcDFOFsXYKfesyrPNJ56OzziO27XBiQDUnJ JEt4A0C5nHVBJVfHM+DPudKKnpnWZZFa2mEz9bQGtd2DLdWTJjiMVWEcVUocbuHBuNWiQKbOmwe lqdhkhwutyz2jtnlSArZiwh3gZxWEDyk3M5+ZYW3jW+RjdQMLdRo0pNmAxE69CmcCvZ3I= X-Received: by 2002:a17:90b:3949:b0:366:3517:1a95 with SMTP id 98e67ed59e1d1-3751c4552b7mr4035862a91.0.1781019463425; Tue, 09 Jun 2026 08:37:43 -0700 (PDT) Received: from LAPTOP-1HUHJV8R.localdomain ([2408:8642:893:d2da:8d02:522d:941f:95bb]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36f70a2892esm19771849a91.10.2026.06.09.08.37.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 08:37:42 -0700 (PDT) From: l1za0.sec@gmail.com To: peterz@infradead.org, mingo@redhat.com, acme@kernel.org, namhyung@kernel.org Cc: mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com, james.clark@linaro.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, sashiko-bot@kernel.org Subject: [PATCH v2] perf: avoid lockdep warning in self-monitoring perf_event_open Date: Tue, 9 Jun 2026 23:37:24 +0800 Message-ID: <20260609153724.7878-1-l1za0.sec@gmail.com> X-Mailer: git-send-email 2.51.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Haocheng Yu <3230100410@zju.edu.cn> A lockdep warning: possible deadlock in __perf_event_task_sched_out is reported by a modified Syzkaller-based kernel fuzzing tool we use. The warning is triggered on the self-monitoring perf_event_open() path. When perf_install_in_context() targets the current task, it goes through task_function_call() and the synchronous smp_call_function_single() self-call path. The reported lockdep chain contains: rq->__lock -> ctx->lock and an existing reverse dependency from: ctx->lock -> ... -> p->pi_lock -> rq->__lock The current fix adds a fast path for task == current in perf_install_in_context() and calls __perf_install_in_context() directly. This fix removes the self-call path for the reported self-monitoring case. It does not change the scheduler-side locking order in __perf_event_task_sched_out(), so it should be treated as a targeted mitigation for this trigger path. Signed-off-by: Haocheng Yu <3230100410@zju.edu.cn> Signed-off-by: Haocheng Yu --- kernel/events/core.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/kernel/events/core.c b/kernel/events/core.c index 7935d5663944..97837242db32 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -3199,6 +3199,15 @@ perf_install_in_context(struct perf_event_context *ctx, */ smp_mb(); again: + if (task == current) { + unsigned long flags; + preempt_disable(); + local_irq_save(flags); + __perf_install_in_context(event); + local_irq_restore(flags); + preempt_enable(); + return; + } if (!task_function_call(task, __perf_install_in_context, event)) return; base-commit: 33d8d8ec31b591952ded59d596c2f3db45004937 -- 2.51.0