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 3855DC54E41 for ; Wed, 6 Mar 2024 17:49:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BA23E6B0078; Wed, 6 Mar 2024 12:49:16 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B51CD6B007D; Wed, 6 Mar 2024 12:49:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9F33B6B007E; Wed, 6 Mar 2024 12:49:16 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 8DD306B0078 for ; Wed, 6 Mar 2024 12:49:16 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 5A3E21A0FD3 for ; Wed, 6 Mar 2024 17:49:16 +0000 (UTC) X-FDA: 81867350712.09.5B81AEA Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf28.hostedemail.com (Postfix) with ESMTP id B20ABC0022 for ; Wed, 6 Mar 2024 17:49:13 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="oax/lHL/"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=DfNYFxl8; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="oax/lHL/"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=DfNYFxl8; spf=pass (imf28.hostedemail.com: domain of jack@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=jack@suse.cz; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709747354; 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=+oXczKlYhHQ/MFSnDcd2diifrqwyuyOM97WAFf7FGrM=; b=tD/ZlIt7PFfc0X4oeAH0z1jW1ZCcjp/TGp8b1OQ9ZhNPJPdRIDZWWJP/3O633CkbQzku0f XuphGPfoBajSHy0qkysQkhNl/D2+TiVkeJ21anik0v7uO9y8wO2OOLi+HfeHJhEMrdlmmg WvsqAKe4HdmDstKKb1iJyqFR+yney5s= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709747354; a=rsa-sha256; cv=none; b=bFr430gG171PmH5pB7Bbi9lnhL3ckpxfjj8FJSHiOAIkdc6qQtENXCXltyrX+i+/8Q0a2I U6eD/Er1Foal2l+KiMyFcBUSE9w6erhrLKJdTI46AmssUoGlNITqOEGjfNbA8SiIcAdkx4 vQdMzcle/c86Lro+qFnfbbIjRbLQuFM= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="oax/lHL/"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=DfNYFxl8; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="oax/lHL/"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=DfNYFxl8; spf=pass (imf28.hostedemail.com: domain of jack@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=jack@suse.cz; dmarc=none Received: from imap2.dmz-prg2.suse.org (imap2.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:98]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id A3E5F6BFD9; Wed, 6 Mar 2024 17:49:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1709747351; h=from:from:reply-to: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=+oXczKlYhHQ/MFSnDcd2diifrqwyuyOM97WAFf7FGrM=; b=oax/lHL/wBW3jXtysMMrdGhw9ab4FpTlXdH+KCbwD+O7h9+dUcp6Gpl6WmzwZswk1RHoq3 uMF3VXCE+kD3jveYOxjqrOL9A8YbdiLxols2I2uxMWmLzy8xjaIvsf8i6a8CPT6Ng8llLK 181onmNGU/PwyAgKvBjuIcWQH25uAsU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1709747351; h=from:from:reply-to: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=+oXczKlYhHQ/MFSnDcd2diifrqwyuyOM97WAFf7FGrM=; b=DfNYFxl8HmnB7OewaIuvt1MT+T1GiV4lxl1aeIpk4jgzqxKb4vK+Ci+MLzOuRs4bQOcOsj HM9rwJVt191iY9CQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1709747351; h=from:from:reply-to: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=+oXczKlYhHQ/MFSnDcd2diifrqwyuyOM97WAFf7FGrM=; b=oax/lHL/wBW3jXtysMMrdGhw9ab4FpTlXdH+KCbwD+O7h9+dUcp6Gpl6WmzwZswk1RHoq3 uMF3VXCE+kD3jveYOxjqrOL9A8YbdiLxols2I2uxMWmLzy8xjaIvsf8i6a8CPT6Ng8llLK 181onmNGU/PwyAgKvBjuIcWQH25uAsU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1709747351; h=from:from:reply-to: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=+oXczKlYhHQ/MFSnDcd2diifrqwyuyOM97WAFf7FGrM=; b=DfNYFxl8HmnB7OewaIuvt1MT+T1GiV4lxl1aeIpk4jgzqxKb4vK+Ci+MLzOuRs4bQOcOsj HM9rwJVt191iY9CQ== Received: from imap2.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap2.dmz-prg2.suse.org (Postfix) with ESMTPS id 9981713A79; Wed, 6 Mar 2024 17:49:11 +0000 (UTC) Received: from dovecot-director2.suse.de ([10.150.64.162]) by imap2.dmz-prg2.suse.org with ESMTPSA id 3YJzJZes6GWhGwAAn2gu4w (envelope-from ); Wed, 06 Mar 2024 17:49:11 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id 39419A0803; Wed, 6 Mar 2024 18:49:11 +0100 (CET) Date: Wed, 6 Mar 2024 18:49:11 +0100 From: Jan Kara To: Christian Brauner Cc: Mikulas Patocka , Hugh Dickins , Alexander Viro , Jan Kara , linux-fsdevel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH] tmpfs: don't interrupt fallocate with EINTR Message-ID: <20240306174911.ixwy2kto33cfjueq@quack3> References: <20240305-abgas-tierzucht-1c60219b7839@brauner> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20240305-abgas-tierzucht-1c60219b7839@brauner> X-Stat-Signature: 7ybxpgc7fdx5a6tcyixu7nwtq3yisnu8 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: B20ABC0022 X-Rspam-User: X-HE-Tag: 1709747353-463763 X-HE-Meta: U2FsdGVkX1+StbEX9Zv/aYlcux4AqEWl3JUYq2/cqrj3jEwHfuoG6z9jR1+rfbdiF6YyAW6oorc+Yqf2MG9ixjD3Pre4GSBjCqcMi3IcxHJb8+gNEPktXF+7uieSQx0vQGqUGXxegN3PDtzlX3Y1et1A4TVj6zKRk7oMAa0Sae4hk8ywB9I1mvNDwKdzcOHVxoh7YYDXTc+DZSoSvzNpSeCFQtjORZA+14Hf84BYfwGAQYwVvH0LNdJ3KxwD7goHmJZHxK3lAf3gjVIbjT74dBvtpZkaLncyNNcw/3CsRMPBMQId7BJRGImvINV6+l5cNsjdKPzWCmqAA6ggRGz11D+G7EBsGEe3c6EDp+PiBXAdkZ5CG3/O0ZehqqY356VuDLE7d7YyUz/fzdrBbaX/9gkbo/mMdPaDEtH5yFcl/ZBKVNSPKI0KAvbHPtCmYEN2Lhi/zWdgQmQDSbjsIlARt3Edpa+ADsgBw79zG/C3F44uz2FmVu96itUH9d0DdI2L0pJaqffUwH2l1amyUSl7Ecr2xhXSy8YNsvqnK1jtC+7sxje6OpvpL5w6XT+qz3R+NWvdql69V+YCdprdzlAaI8/Cu1BZAvGpSPgi6Yb8X9mz61bKK8hVqu2Rlb8ntil/HVkcKRVj/CuNpYQ85asAKqck2C4EeXM2aeGolz7IXKhGORdKbqt8TS04wzfA19+TCLKt6dQVAq8X5VLkdDmhtTz1DQdmbO+Kj0jLtxD6MA9LfvB/K8V51LAYF6nNgmm7lS0J9vARlHaMSofynH+JkIO8QxsG2wCc3HyjqbGHHjDFc2N3gZEW2hCWP80rwRVVZqxtyoNW1K1D4MzKMJVKOQeJ5CxecTkwd2wAxnDrT2DQrjpnPuYErUrNldHeAv1ELvbKweCP/2CCTykvtWlfoK14oXRNGDVheJCpLknwY5zPYGK+xI32aXUx2xtSve1YrzuN0G4ow5kZwM14KBI 8+fl7Ds8 JvmGVEjA6AM6B36nBByEpMDeS8RJntTqptZvrL9vorgsIOgsOIQY+ZwHdD37ba+bceY0Hzjyqcx/KdkqJHad6w+OWMKnhUyotiSJPZNRmyv2V44rP8pW/6hb1OQaHomKGTdH39maLutrr5VcChRMN/cG0x6M9TM/9gZysUahP8CdxgqUbUnIdxliYN17iS1q1SX/3mRMX82MFHR8OSKaJDbygkpADEV7JTVU3e0mi11Cj9aEuAdxRL/EdSuUwxI17x7aTCTKneJvEMuKbNnPJpGqTRbcNdTeKXbMaAqQuRoEzCFK7B1URS/AEnfMI9PT7sj4u5Ya3+luxS4GcVQnwbPbSeCrKrX2fjKprw8jN4hKvEFI= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hello, On Tue 05-03-24 09:42:27, Christian Brauner wrote: > On Mon, Mar 04, 2024 at 07:43:39PM +0100, Mikulas Patocka wrote: > > I have a program that sets up a periodic timer with 10ms interval. When > > the program attempts to call fallocate on tmpfs, it goes into an infinite > > loop. fallocate takes longer than 10ms, so it gets interrupted by a > > signal and it returns EINTR. On EINTR, the fallocate call is restarted, > > going into the same loop again. > > > > fallocate(19, FALLOC_FL_KEEP_SIZE, 0, 206057565) = -1 EINTR (Přerušené volání systému) > > --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_timerid=0, si_overrun=0, si_int=0, si_ptr=NULL} --- > > sigreturn({mask=[]}) = -1 EINTR (Přerušené volání systému) > > fallocate(19, FALLOC_FL_KEEP_SIZE, 0, 206057565) = -1 EINTR (Přerušené volání systému) > > --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_timerid=0, si_overrun=0, si_int=0, si_ptr=NULL} --- > > sigreturn({mask=[]}) = -1 EINTR (Přerušené volání systému) > > fallocate(19, FALLOC_FL_KEEP_SIZE, 0, 206057565) = -1 EINTR (Přerušené volání systému) > > --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_timerid=0, si_overrun=0, si_int=0, si_ptr=NULL} --- > > sigreturn({mask=[]}) = -1 EINTR (Přerušené volání systému) > > fallocate(19, FALLOC_FL_KEEP_SIZE, 0, 206057565) = -1 EINTR (Přerušené volání systému) > > --- SIGALRM {si_signo=SIGALRM, si_code=SI_TIMER, si_timerid=0, si_overrun=0, si_int=0, si_ptr=NULL} --- > > sigreturn({mask=[]}) = -1 EINTR (Přerušené volání systému) > > > > Should there be fatal_signal_pending instead of signal_pending in the > > shmem_fallocate loop? > > > > Signed-off-by: Mikulas Patocka > > > > --- > > mm/shmem.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > Index: linux-2.6/mm/shmem.c > > =================================================================== > > --- linux-2.6.orig/mm/shmem.c 2024-01-18 19:18:31.000000000 +0100 > > +++ linux-2.6/mm/shmem.c 2024-03-04 19:05:25.000000000 +0100 > > @@ -3143,7 +3143,7 @@ static long shmem_fallocate(struct file > > * Good, the fallocate(2) manpage permits EINTR: we may have > > * been interrupted because we are using up too much memory. > > */ > > - if (signal_pending(current)) > > + if (fatal_signal_pending(current)) > > I think that's likely wrong and probably would cause regressions as > there may be users relying on this? I understand your concern about userspace regressions but is the EINTR behavior that useful? Sure, something can be relying on terminating fallocate(2) with any signal but since tmpfs is the only filesystem having this behavior, it is fair to say there are even higher chances some application will be surprised by this behavior when used on tmpfs as Mikulas was? So I wouldn't be that opposed to this change. *But* tmpfs has a comment explaining the signal_pending() check: /* * Good, the fallocate(2) manpage permits EINTR: we may have * been interrupted because we are using up too much memory. */ Now I'd expect the signal to be fatal in this case but we definitely need to make sure this is the case if we want to consider changing the test. Hugh? Honza -- Jan Kara SUSE Labs, CR