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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5DB12C021AA for ; Thu, 20 Feb 2025 02:15:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C5BC9280287; Wed, 19 Feb 2025 21:15:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C0BCB280286; Wed, 19 Feb 2025 21:15:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A85B6280287; Wed, 19 Feb 2025 21:15:19 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 8A824280286 for ; Wed, 19 Feb 2025 21:15:19 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 16B7A1A07B7 for ; Thu, 20 Feb 2025 02:15:19 +0000 (UTC) X-FDA: 83138705958.11.88AA6A7 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf22.hostedemail.com (Postfix) with ESMTP id 9A18EC0004 for ; Thu, 20 Feb 2025 02:15:16 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=ETr3f7QB; spf=pass (imf22.hostedemail.com: domain of llong@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=llong@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740017716; h=from:from:sender: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:dkim-signature; bh=wu5Vn28p7MixYC+/9v+4ssvT0nmU9JWyu/14w9WYEg0=; b=0nhXX7daJ1TRqNUnCy2+OwMNtNecCDYJqwsle14Nl25jx4lkAcKxlyP5KETtg1j7+FZ+Q4 aJNzuc5KI8uiHD2QJMtjd6+Qd2DfMYbQ8vAoZCHF57HxYyZNpRzZiiF7x/AdhLjbZ6qXY4 YnqkBZioVRzKEN0Y46MF8MT4UbEjcVI= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=ETr3f7QB; spf=pass (imf22.hostedemail.com: domain of llong@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=llong@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740017716; a=rsa-sha256; cv=none; b=mZZInVjbbQCvgMdphYuTZs2VXkkjLTSSIR3h2cGfhYxSYSOLg5HSyOGqKS1wZf7GdCmAim GUZqMdWHEf1/QF16VzWosjSS9TvEVb7fKoq9A0mYUYX+j+dnvvWFrHYzjfRgMGh2JJ6acF Sju4751tNsXtwOLob+VC1c64JdvdZOw= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1740017715; 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=wu5Vn28p7MixYC+/9v+4ssvT0nmU9JWyu/14w9WYEg0=; b=ETr3f7QB+uIrGg0E5m6Ce9iw8TJhlW+pzw5GVLHmKoT8+SqoWhq2OUo8jwfvDWqve6GWkJ 3o8AHiNVFtUy1W0NrJOfeRK3yl9LTYccTbcOeQ61Nh+iNKgxkqpKxdS379o3Oc63Hng9HR T5H48sVSypOF1w9s83ioKDbPG95yBiU= Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-318-fxwSyBjCPMGkXbPEnsYiWg-1; Wed, 19 Feb 2025 21:15:12 -0500 X-MC-Unique: fxwSyBjCPMGkXbPEnsYiWg-1 X-Mimecast-MFC-AGG-ID: fxwSyBjCPMGkXbPEnsYiWg_1740017711 Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-727332732b0so180701a34.1 for ; Wed, 19 Feb 2025 18:15:12 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740017711; x=1740622511; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:user-agent:mime-version:date:message-id:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wu5Vn28p7MixYC+/9v+4ssvT0nmU9JWyu/14w9WYEg0=; b=Rran+tgxqLhUaWM0PJkRvz8kkHFfZ5batZl4Qhs3iG9Z1u25qF0/07oOYaaPB7H1p+ AOjnzEWmNNR5f3ArSFORRVYti7TCGzNwOZQgz2iBx7VWKEEK03bkw9Irx8pFVrLLtIEt SLNULVc0JSjoVDedUkmjbR51ogmpwOrthg+i0NmsDm31TimqwWnWNhy/soIUkoqHBi5/ +nIaHDNnIqMhAbQrLod8aUmSWeJ7HJVVKyLtWlK4x+5kLGSV0I2SVs4rBhcy3lyXJusD aYIsYf2yyySaD06+Qwc9tYQEVjRxeDlcFFDotpRB914SU2cfSr2k7rtzgIZKkFXolqro dfnA== X-Forwarded-Encrypted: i=1; AJvYcCXUZ+6TDouVZFlkD4QeinzXEBjyDohBzDagkeWnbMyufqNfLoxXV9dMHlT0OnApuXOR8Dwm8jK/VQ==@kvack.org X-Gm-Message-State: AOJu0Yytc6L58zLOLIsiC1zFp2q7SspMZ5VG5HpobDBqYcjXH5AitNo1 0pyuu6ZhI7chlKkKm2qTQm3fMvAZjL6+cLvKeawNINkqPGuIYIHSoHAOj6Yh+/5Y1CDFgOOvwBK oJs/UILsosqxSFISHlmvQTnbBuns9SP0Cg3nDlemIvyd727cO X-Gm-Gg: ASbGncvtWGnWPNMRQUmnU98NWhU8PIW6kh9oEsgqjnPtTSifeKH/M1ItszbZSCDDZ3R EuQC/JIfY1+9ftMvl0gln/kYtEHlXK8OpW65UlYn9bzsZvxEhj/M3MSFLNe5+rutOPQdQcvdKys Kl/0A5lGMKDc8aDkmMfHo9TFKtZoMXwrlH4dSBAmngK+Gk3E0QVz0a3qT5X0Dl/1ABKIDK7lr9c FREbEZ8CJZRhW7zrRrzIUwP7fXprcr9bZj/6bXBDmNeJvv3iZEZ+kgEzXdNYYxEdr+xxjUVF62T mrb1QwGvWATzbn/irxtMbSAZUnopM2/OQ1Nujr/AKjqyKD94 X-Received: by 2002:a05:6830:6117:b0:727:3f3e:53ba with SMTP id 46e09a7af769-7273f3e5497mr2806102a34.26.1740017711524; Wed, 19 Feb 2025 18:15:11 -0800 (PST) X-Google-Smtp-Source: AGHT+IFW68eP8r/6kxUFYP+2oduO7DOaqKrtuTM1aeIejvCopjqxsLRzJQJhvDewuc0CLFu7yEtrXw== X-Received: by 2002:a05:6830:6117:b0:727:3f3e:53ba with SMTP id 46e09a7af769-7273f3e5497mr2806093a34.26.1740017711226; Wed, 19 Feb 2025 18:15:11 -0800 (PST) Received: from ?IPV6:2601:188:c100:5710:627d:9ff:fe85:9ade? ([2601:188:c100:5710:627d:9ff:fe85:9ade]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7273a14070esm720434a34.49.2025.02.19.18.15.09 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 19 Feb 2025 18:15:10 -0800 (PST) From: Waiman Long X-Google-Original-From: Waiman Long Message-ID: <9f9150b4-1cf5-4380-b431-419f70775a7d@redhat.com> Date: Wed, 19 Feb 2025 21:15:08 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/2] hung_task: Show the blocker task if the task is hung on mutex To: Steven Rostedt , Waiman Long Cc: "Masami Hiramatsu (Google)" , Peter Zijlstra , Ingo Molnar , Will Deacon , Andrew Morton , Boqun Feng , Joel Granados , Anna Schumaker , Lance Yang , Kent Overstreet , Yongliang Gao , Tomasz Figa , Sergey Senozhatsky , linux-kernel@vger.kernel.org, Linux Memory Management List References: <173997003868.2137198.9462617208992136056.stgit@mhiramat.tok.corp.google.com> <173997004932.2137198.7959507113210521328.stgit@mhiramat.tok.corp.google.com> <20250219112308.5d905680@gandalf.local.home> <0fa9dd8e-2d83-487e-bfb1-1f5d20cd9fe6@redhat.com> <20250219152435.35077ac3@gandalf.local.home> <20250220075639.298616eb494248d390417977@kernel.org> <20250219204153.65ed1f5e@gandalf.local.home> In-Reply-To: <20250219204153.65ed1f5e@gandalf.local.home> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: EDEXIaLJ4SXUbueTpzlqTgGsvmlSblfoYc8g3Y7GJRo_1740017711 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspam-User: X-Stat-Signature: nrkbwexkzuhgwiy4n1xde7cq1sz4d6ea X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 9A18EC0004 X-HE-Tag: 1740017716-837281 X-HE-Meta: U2FsdGVkX18TsaspXpM7k3He63c1eyaIxubeYm9OBtnhaEkYFUlllA397Z6mmCFIVc94iNcq2CD6pUuJZLEloCdHMceRx0xJXedIFsslK1tzJZkU3MtYIDPdUTAMkKkxplEm9BhQat5uhKpEdHrPynctvuD6bahGLT0xE63EQ1dpdeECBokib4m1LtOCPb9DDW4QBWa+S2fPZ0J/9IvHF6D67YcU+y2TeW+vK1QSqu0DQNJ/0YDoIwoIYacK1Jvc5yeUA5GQx5okndtbqpNvHAOzODJ56YAgz5iGtxdxH9J2GlayTjAv0nsjF/OkLDLhJv35hPVqu67S2RzK3xPK3awEzjlpIg23+hK07QrecWXtDvHbkl/mGRB/u2zkHTQN2N23AYDJVVLrjAU+lPG2HgGet1f8n/DuS7Iz+lsZiA/sFPXo8TA4t5yCDHjR+9IvPiHkQsnDxQfY56EG0pvJ3Vos0m5NLQS88j6D7zhiqXPbhAfVdfwNyhg8a/MQi+nSwuVpg9SZhc9QFEsP7Qebhe1MwyOeZ75wDPA8PByyPB3apFUwWmsWfH/K3wu4ZaAiqf0SXOV0pPPSMdcRaC2TgnbhlnnyPYWMDlfR2HIZH42QqAoh6mv1hevfewdsieBApftasSZQe4HNSHPl5J96Nhn91yc8G9+ZGerPgOipewLdQtjSFr38xOMABfCzPqT/2v7Z7TD0ruLKiFH+Rz6ZB5QWJw0zDn6fFzg0fOnYtRJXl5lQw+6ndBuKyMGbvOcsvnUq6AVUl5a5zazHfSigWkzB+1I9fIghvwTVZazLeylMDD1l+21HMkoDAmH/BEoYSEaBGsJ8mrBCUucGsGfmOFkqLmlH9ds7fqtv3vNynYszFAZLOgzNPIPxMw71A/Gsqpf+ixahz9poAt1+T0fIphEaCh2MA5lTiT233v0Rs4DztC/h2tYrik/nzWhiCoWiTE+UdJOlgAOFaKWXS+w 77uMFL4n 2Enj+YQ5cJ6AM0bECNxwPvk2QFqLzz4oFgOo5qM1P5fk4bDJKP/vTz4ZRSmcNCsImjI4D2t7SMVg0k7QnAcQ9V/AsfY2jX/RJ+B7lWFpnfuTy9s5QhLwfqHYuFAOfggkHsVkKBn2pXQr/MP2KhIZtU8fLUzn0cfQkHvQHgNRHgM/ecFpRE2jk7HTHz3PcYzo8HsfheOj+C76faTTglPZ1boKRPOEy8rw2t344ukh4wiMnkFi2tFWqNSvtHGJpEhfRa1YAieFtVYcfYWyyZg9zEZcRO3KZSeSDAvP773pXWfNKtXKGXISLPWwXZZIfVG11c1I1+pNd8vEZbs8aXcqB5Ro9/NjJ9073ZM4fhpJg0WvvXWlRlchqGwm5GnXykY+6ZlJsFWwSsjymNdWjzBOZPQdUqQB1zHyseQt7dNY3F+QKXn8X2hWJ37IUt3IIEo/ciWZH8oWLHIWBxK5NYSoahEx0vvsDPQxE2hRshD3RDckPjxrddHrA4IyWVp1QkcT91dGHbRmYSaABPjIAA4bxWtQ2WyQxSTm2FwSbsnktGbAFWh0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.018255, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 2/19/25 8:41 PM, Steven Rostedt wrote: > On Wed, 19 Feb 2025 20:36:13 -0500 > Waiman Long wrote: > > >>>>>> this field, we don't need to take lock, though taking the wait_lock may >>>>>> still be needed to examine other information inside the mutex. >>> Do we need to take it just for accessing owner, which is in an atomic? >> Right. I forgot it is an atomic_long_t. In that case, no lock should be >> needed. > Now if we have a two fields to read: > > block_flags (for the type of lock) and blocked_on (for the lock) > > We need a way to synchronize the two. What happens if we read the type, and > the task wakes up and and then blocks on a different type of lock? > > Then the lock read from blocked_on could be a different type of lock than > what is expected. That is different from reading the owner. In this case, we need to use smp_rmb()/wmb() to sequence the read and write operations unless it is guaranteed that they are in the same cacheline. One possible way is as follows: Writer - setting them:     WRITE_ONCE(lock)     smp_wmb()     WRITE_ONCE(type) Clearing them:     WRITE_ONCE(type, 0)     smp_wmb()     WRITE_ONCE(lock, NULL) Reader:     READ_ONCE(type) again:     smp_rmb()     READ_ONCE(lock)     smp_rmb()     if (READ_ONCE(type) != type)         goto again Cheers, Longman