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 F3E02E7717D for ; Mon, 9 Dec 2024 16:23:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0E97A8D0089; Mon, 9 Dec 2024 11:23:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 024C18D0058; Mon, 9 Dec 2024 11:23:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DE06C8D0089; Mon, 9 Dec 2024 11:23:40 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id BBCCB8D0058 for ; Mon, 9 Dec 2024 11:23:40 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 3A8B2C07F0 for ; Mon, 9 Dec 2024 16:23:39 +0000 (UTC) X-FDA: 82875940728.26.B8575AB Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) by imf30.hostedemail.com (Postfix) with ESMTP id A740580004 for ; Mon, 9 Dec 2024 16:22:57 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=hzcSJwuc; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of amir73il@gmail.com designates 209.85.208.43 as permitted sender) smtp.mailfrom=amir73il@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733761408; 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=0K8ZP2F40I1V9oEBcZ5JHDlz8ReIw6B0xGg0te9jF0k=; b=is1ofUYdDZTZG8KROXKcoQjcG74IgTH5srtuP1R3SoWhp7crmuRumad6L7sxUJx2MlFias U9Z07QSBtsz2PPzIpVLmUzU7mYo3lyK6Y5vEWOmsPskk84ukwtlvajVDTlg5oYqidtHIlw YOLpUAY9r/T4NgrLu3vLgqdBaPE6P2g= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733761408; a=rsa-sha256; cv=none; b=HI+FPxbmyKkSx1mIwQl0Uwsz2E/m0PiyHsAUJvudyC0m+f5fxO5+husHuzuj0k3MEF1BPp A3McE7AbQm4XDYjaxwdO2S/RwfEpc6H5kMgNFxctIJ2oaL6VmMy2OGmCknUZ7VfG4vo8Q2 lkrcJAZh8Avd0aiAq4R2GL3sXlAt3T4= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=hzcSJwuc; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf30.hostedemail.com: domain of amir73il@gmail.com designates 209.85.208.43 as permitted sender) smtp.mailfrom=amir73il@gmail.com Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-5d3e6274015so3164047a12.0 for ; Mon, 09 Dec 2024 08:23:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733761416; x=1734366216; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=0K8ZP2F40I1V9oEBcZ5JHDlz8ReIw6B0xGg0te9jF0k=; b=hzcSJwucv8IMpbTNUKPXEcAjpiJ8EtGXrrf8QyD7rfCqqbhpX+hjGTd9toZwHh6uiw vyQaRNaa3369aG0tjvcBtNq2UY77X0G51pRl5gDgetMmbpTe8JcsIWq+jydrRCO6kTLU kXHgIeSUDpyR03g9YiexDJDL/MpHilPDJcI43Sxo1bbhpraGfcDfE0Eu6uRnpj8a1zq5 wvwle2EThsWi8Kf88xVrE6oeyifYNFD2EMSyzhhpz9gVRG9DOIlEwCxb/0zyY7BgAJx7 O9OA3f2X/HKJk61nGHcde3WIbszQq/3HnikGYhiRejUkO5GihEAfvFWbIYwMzHupvJq2 LJ8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733761416; x=1734366216; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0K8ZP2F40I1V9oEBcZ5JHDlz8ReIw6B0xGg0te9jF0k=; b=d4qPHgkoig3MjPXY13sCl+Krd21V05XDdfIbFLUFIdDiO0+iAyHHXSTsOLnC0pL529 17mq4MVbfrND0lZ9tgjE0fVn1ddYR/HXa1yJpzh42XS7f4REbhHupxbS32K1nA12vaDs 63erQfbSItGD97pu9KHes84K8zlSdp9VkinJT/EWxBOdg2krMJl/f7n2/MDXuLW8yizV WF834JYCMGFVlVIDEsLHywk7Im5DDFliMbwQBg00PGFHPUagufEx6VK9SvifxAuux14j raINSaq8s0ebGRCanVZ+020AAqBJQi0quYGnu/7IA2sdt3sf0YtJORIyJ9B8+pOXLRu3 oswQ== X-Forwarded-Encrypted: i=1; AJvYcCVmHe5jPDnRXONjbZvzyaiaXIhsy7m5f2kI/ME0wSx/vuw9t/SdBkZNoF+w/+/Spevb7intyvgXWQ==@kvack.org X-Gm-Message-State: AOJu0YzERKq8efrPk1/XsQJD5Bowr6BfKn+eLIkG25I8UeI+ILvj+yUm g4BwOHpSxElFk6CdiAm9eDUL/a5vESp2RpGNLjBewudQdOB37v5P3GTkg2vvZr29jf/HhCVisld H4Toe+mAuF3bdAyDU4j6ooNbQTp4= X-Gm-Gg: ASbGncsIUcQgdOfcT3vCh/V5B8R6F+uvRTIVcYiSDZ+by/6Cav885DcK7y4oF0g4JER CxggS5aKf6KuQ1YOHI6L/tQYK4QrgZmyCAco= X-Google-Smtp-Source: AGHT+IHmex2O3oPEmcdzQYRDxskxCLJEzFe9sxDiHkQR1oioeUncNUJNUrhnRyG2dNZ7LdMyL3H2jyVIZBJBfxS9GRo= X-Received: by 2002:a05:6402:3906:b0:5cf:924f:9968 with SMTP id 4fb4d7f45d1cf-5d3be661c03mr13750415a12.2.1733761415276; Mon, 09 Dec 2024 08:23:35 -0800 (PST) MIME-Version: 1.0 References: <20241208152520.3559-1-spasswolf@web.de> <20241209121104.j6zttbqod3sh3qhr@quack3> <20241209122648.dpptugrol4p6ikmm@quack3> In-Reply-To: <20241209122648.dpptugrol4p6ikmm@quack3> From: Amir Goldstein Date: Mon, 9 Dec 2024 17:23:24 +0100 Message-ID: Subject: Re: commit 0790303ec869 leads to cpu stall without CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y To: Jan Kara Cc: Bert Karwatzki , Josef Bacik , linux-kernel@vger.kernel.org, kernel-team@fb.com, linux-fsdevel@vger.kernel.org, brauner@kernel.org, torvalds@linux-foundation.org, viro@zeniv.linux.org.uk, linux-xfs@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-mm@kvack.org, linux-ext4@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: hqh1yggzyruci1ap6y8zi4z3ag5xya8d X-Rspamd-Queue-Id: A740580004 X-Rspam-User: X-Rspamd-Server: rspam01 X-HE-Tag: 1733761377-8856 X-HE-Meta: U2FsdGVkX188CXzgQiG73PoOGadS97hSLofUEDzJGFAguPm8U2osDJzX3NoHk7owgfq/J3qvBBUXDsJRANKuFH7KmPJLlovNHFm7aovkG0IiLiQTsPv9oNCMzVKtYbMk552h4L6OHCJScMHrY1wzL757C0sS27FG9/+ojSwmVII/HZZtqQ+6bjCf+vB4FDZHN2dEsuq0q6OZoaebUzNfV3W/0r8ap2G2pB8QPZUTE0ezXVz2ideUc8yY7+t+fiEeI2VQKKctKVnJ/W0vBndYhkcG93esEVk3DdW+IwAkAUi0Gv2S6dQrrrh3pTsXUvMa+mmypQP227W1a9aSV+7fw89rxxhWtMnG/jb5kIgAs4/1fiEzfx03Pgf9+T80nLGdJUxI2bfLjWEIRP0ZaCE8nAIUKPxffeQ8M09KpEj6VJ5XC6b/zlM2QWy5QYj91Adaj9Q7Ap7rq25mO7ZKtQufLg6E1EMUYyQcj4InwUvHOMUCUezyrsExh4rtEPiCh2quZYklhyeAO6HmbBqDsKbiqJCq9VMuXqpzi3MJUjOyOaCUoUhEDfM1relZIWKC8wB108bTPyuJc+9NHQiwHnVISuX0uxqP9G1szIK1+G2s1IcmkKKIITba07fcshGmmvgPXdzeooP4qEfNZa+eL3lVZywPUkpx08y5GhTbrGk0OEpJlhRrYWpx4HpCT+8YIql3BczE8RyihFbGkPkCGr78MoHSoi25H2c2lwyWnLlFzaLVo3s0zMQ8tdPZnOAZSAEfpC6Ox/7c3fy8YZQ8P0yOpvl6QM1ImzTQp/3/Jbd0zEsFoIWt+EkrOFBCz0xA/dl7J7xKw2RWx6mRgJFzkTpcMwfRLDkZpVj4TNV+fqqLg3DrsyCK36uJDcMyDKPiRhvngg14Ji+VQH5hbvx7ZLXRqq1cnQEtPZF4b8WOsCV92iNK3gaxx16JRz2JV9SQFbAjwhrE3yGRupDMMr+hwq7 3KyyiEb1 4dX4tzglJawbphKzzrWbGEaRNxqXThF0GDSDn+aegp7zdr1icTZGoIIiC68BdfRe0QAt+A/QYYcnVqIDRJsAe5RCvT5gZYCZCVIB/C/rXjw/yvE52Ub7cdKY8qsfD4xZsW81ulMuOXqdZ8Zr+To1qKr66Ul4YzghHukOHC7Df1VFo8dmCtfC9b0p+LtBoM/xv6NF0Vcz5L+2s4Yvd5U2Rv1OhsrsOj/rAVtzZQ7sfunQdP5t104YvWkMKsQpFk6ZalKw/fYv8OJNNgTmx2AZAb9BZGcpjbQnju7GIT3TrfBofJVJ0HRrHnDsiHtV3QuvPqXWBLkDXj4Uzve8Ok4M3QmLL7yH88hZz7kM8NSKBpg+LlK++NOUv24f87A== X-Bogosity: Unsure, tests=bogofilter, spamicity=0.457537, 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 Mon, Dec 9, 2024 at 1:26=E2=80=AFPM Jan Kara wrote: > > On Mon 09-12-24 13:11:04, Jan Kara wrote: > > > Then I took a closer look at the function called in the problematic c= ode > > > and noticed that fsnotify_file_area_perm(), is a NOOP when > > > CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set (which was the case in = my > > > .config). This also explains why this was not found before, as > > > distributional .config file have this option enabled. Setting the op= tion > > > to y solves the issue, too > > > > Well, I agree with you on all the points but the real question is, how = come > > the test FMODE_FSNOTIFY_HSM(file->f_mode) was true on our kernel when y= ou > > clearly don't run HSM software, even more so with > > CONFIG_FANOTIFY_ACCESS_PERMISSIONS disabled. That's the real cause of t= his > > problem. Something fishy is going on here... checking... > > > > Ah, because I've botched out file_set_fsnotify_mode() in case > > CONFIG_FANOTIFY_ACCESS_PERMISSIONS is disabled. This should fix the > > problem: > > > > index 1a9ef8f6784d..778a88fcfddc 100644 > > --- a/include/linux/fsnotify.h > > +++ b/include/linux/fsnotify.h > > @@ -215,6 +215,7 @@ static inline int fsnotify_open_perm(struct file *f= ile) > > #else > > static inline void file_set_fsnotify_mode(struct file *file) > > { > > + file->f_mode |=3D FMODE_NONOTIFY_PERM; > > } > > > > I'm going to test this with CONFIG_FANOTIFY_ACCESS_PERMISSIONS disabled= and > > push out a fixed version. Thanks again for the report and analysis! > > So this was not enough, What we need is: > index 1a9ef8f6784d..778a88fcfddc 100644 > --- a/include/linux/fsnotify.h > +++ b/include/linux/fsnotify.h > @@ -215,6 +215,10 @@ static inline int fsnotify_open_perm(struct file *fi= le) > #else > static inline void file_set_fsnotify_mode(struct file *file) > { > + /* Is it a file opened by fanotify? */ > + if (FMODE_FSNOTIFY_NONE(file->f_mode)) > + return; > + file->f_mode |=3D FMODE_NONOTIFY_PERM; > } > > This passes testing for me so I've pushed it out and the next linux-next > build should have this fix. This fix is not obvious to the code reviewer (especially when that is reviewer Linus...) Perhaps it would be safer and less hidden to do: --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -211,11 +211,16 @@ typedef int (dio_iodone_t)(struct kiocb *iocb, loff_t offset, #define FMODE_FSNOTIFY_NONE(mode) \ ((mode & FMODE_FSNOTIFY_MASK) =3D=3D FMODE_NONOTIFY) +#ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS #define FMODE_FSNOTIFY_PERM(mode) \ ((mode & FMODE_FSNOTIFY_MASK) =3D=3D 0 || \ (mode & FMODE_FSNOTIFY_MASK) =3D=3D (FMODE_NONOTIFY | FMODE_NONOTI= FY_PERM)) #define FMODE_FSNOTIFY_HSM(mode) \ ((mode & FMODE_FSNOTIFY_MASK) =3D=3D 0) +#else +#define FMODE_FSNOTIFY_PERM(mode) 0 +#define FMODE_FSNOTIFY_HSM(mode) 0 +#endif Similar to IS_POSIXACL() Thanks, Amir.