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 176DEC77B61 for ; Mon, 24 Apr 2023 16:23:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 88BA16B0074; Mon, 24 Apr 2023 12:23:15 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 83BF76B0075; Mon, 24 Apr 2023 12:23:15 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6B5BC6B0078; Mon, 24 Apr 2023 12:23:15 -0400 (EDT) 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 54AC76B0074 for ; Mon, 24 Apr 2023 12:23:15 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 3184180274 for ; Mon, 24 Apr 2023 16:23:15 +0000 (UTC) X-FDA: 80716804350.29.4281855 Received: from mail-il1-f181.google.com (mail-il1-f181.google.com [209.85.166.181]) by imf05.hostedemail.com (Postfix) with ESMTP id 339EF100012 for ; Mon, 24 Apr 2023 16:23:11 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=aulWnXUk; spf=pass (imf05.hostedemail.com: domain of dianders@chromium.org designates 209.85.166.181 as permitted sender) smtp.mailfrom=dianders@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1682353392; 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=8GIxhCllL9emfLEeLtesjmIIXkU0PWD8X6W28r7Ovd4=; b=ZndcqWWRDsCgQaJb8udk4NXyS8TCHVw9ZRY0iZer9utEBTUvLseZy6fKO+QchVNyBJ8a5M 4L67z+A+YJGn6OFH5k2ImSCv/thEYQ5DYkQlJHU/fXO5ktUY74hBQRJXC5KBjrnVaUqye0 4sYEY6k507M988SkL5oj7wrvkn1C/Os= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1682353392; a=rsa-sha256; cv=none; b=AxlQZD+6YG4KK+yptA5MeejzOF2rCzG3buOObJvI/jQeV0uxw4dfxFZfca2kyW6i6c11vG CeJ2RZB1hYNbnoeZtUw3hAi4mv2Ok5thv99CwUoi/6IHMOj9mT+Vqw2UMcniFt+mpgAIZp 4X1KkP4/dUOHzsfPhbV+U9DqhSlcgWE= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=aulWnXUk; spf=pass (imf05.hostedemail.com: domain of dianders@chromium.org designates 209.85.166.181 as permitted sender) smtp.mailfrom=dianders@chromium.org; dmarc=pass (policy=none) header.from=chromium.org Received: by mail-il1-f181.google.com with SMTP id e9e14a558f8ab-32b47d6792dso41371645ab.1 for ; Mon, 24 Apr 2023 09:23:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1682353390; x=1684945390; 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=8GIxhCllL9emfLEeLtesjmIIXkU0PWD8X6W28r7Ovd4=; b=aulWnXUkfVNEBiiBjLHCzOJSjVKl+7EdnwqM87B9ILTGNbCjaksQGCCTE5TfUueAei BwJRMYh7OVbsofwfc9lE0OTFOoKVT83Zf4jbxE4Y7XTXOFDExsXK3hp87FKmEWVMlLL6 2EI0zAI7B2v1+Sq+erML03B+s4il76dPaQNfk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682353390; x=1684945390; 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=8GIxhCllL9emfLEeLtesjmIIXkU0PWD8X6W28r7Ovd4=; b=OJ2iiwPH54ALI08U3aqNs7LEKYU9v76PM6/SyYVq8MX6qr2uULIbMSqrlvsxWBDBn2 Yj6HkPw/YNex5ng/IYk3I1MVVJMAfzSzfLXChAhuYq10wugcdvV25LDrIXyBCpMejGey sSG42CWI6DFzaug4ruvFmLi5c5FxErT0o9NPgHzKJt/bCct6V/vtkGyYONzDFHrFZvbm Lm5ff+gZpRhe1aX81EKNDMwRHsXyQU/H3eLxfJMGSI2T3O+3NElz/ubSAx7EzG3Js1d9 yCWzay9lpOpcKabz5wpTx4F3w9p2AJWRFCalkOuxRz0T1OAo/owlje+7kbOh+aLjOTgK YNvQ== X-Gm-Message-State: AAQBX9e9mSDgkgX1Fe7xRn2vdPuxi3YSwzyC5urTaN93LAi4mPUheuob Y5CshVOSK+J6yjD0MypK5+1eFerT3qFKStErH+c= X-Google-Smtp-Source: AKy350bgKGNQH/TXmKG9FipEsuufiqTYzUP8LWTmYLXUEZwmjMN1uTvicz678HZ5pMgpZESC3Xz7mQ== X-Received: by 2002:a92:d986:0:b0:32b:399a:afa0 with SMTP id r6-20020a92d986000000b0032b399aafa0mr6485290iln.31.1682353390134; Mon, 24 Apr 2023 09:23:10 -0700 (PDT) Received: from mail-il1-f174.google.com (mail-il1-f174.google.com. [209.85.166.174]) by smtp.gmail.com with ESMTPSA id x6-20020a029486000000b0040fa75e5a3fsm3315435jah.132.2023.04.24.09.23.09 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 24 Apr 2023 09:23:09 -0700 (PDT) Received: by mail-il1-f174.google.com with SMTP id e9e14a558f8ab-325f728402cso1077035ab.1 for ; Mon, 24 Apr 2023 09:23:09 -0700 (PDT) X-Received: by 2002:a05:6e02:16cf:b0:325:d0d8:2ddb with SMTP id 15-20020a056e0216cf00b00325d0d82ddbmr508009ilx.15.1682353388677; Mon, 24 Apr 2023 09:23:08 -0700 (PDT) MIME-Version: 1.0 References: <20230421221249.1616168-1-dianders@chromium.org> <20230421151135.v2.1.I2b71e11264c5c214bc59744b9e13e4c353bc5714@changeid> <20230424082254.gopb4y2c7d65icpl@techsingularity.net> In-Reply-To: <20230424082254.gopb4y2c7d65icpl@techsingularity.net> From: Doug Anderson Date: Mon, 24 Apr 2023 09:22:55 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 1/4] mm/filemap: Add folio_lock_timeout() To: Mel Gorman Cc: Andrew Morton , Vlastimil Babka , Ying , Alexander Viro , Christian Brauner , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Yu Zhao , linux-fsdevel@vger.kernel.org, Matthew Wilcox Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: 339EF100012 X-Rspamd-Server: rspam09 X-Stat-Signature: faxcnqyh3n8dwdaojkinoowin33tsu7t X-HE-Tag: 1682353391-242217 X-HE-Meta: U2FsdGVkX1+icyayPKhCzkgZrGJ0kH27eIWblocPCvRqOwL+9edh8zDTb2tZk1TDj2ggVDfYLI4DSFm+sk+2yZeq+ROg0mf1EGUPw9qE5Vttf+SK//qkfZTt2DZnd61GYfvM7rXfxHwkXqby6oSIjQBGwQg+DnjxMSKLkDDqQPafcEcKX0xz8ZqbOG8X6YTI3z6wl1jlECXTjTEM/4Ltda4CBp3LMPfCr6tSr4/rPQv2Zb18UFDDPiPL0XW0c//g0uxYVPrDvDFnbfh4CRAQdClziSUBc9BwVk/+Vwkf6bQsq6xA4n63T2m1ek3oS79/f2zfg8GlREpo1EZ/v6AWm9aPv5jNIbz2smo9xuxGjtl+qLCPWp31eSU5dlm2g0OEVBDFQ7O06EkaR1HoGoS57cpcnw6Bp4C7O1SOfujlSsrjBJgsMoNc7YvDpqoCXE2Lk/cEM+mE9vZ5r67iHnIq3omoSIVk0asFtzJyew9HnJUCHwCwe4V0YmeXgw+cl5W9wjO115F14lnk8o6bEWK0dJtHkEPdv8LGkitujukmTq/cITjdSQj8P7X6U0NC1SbUNH05dSGIcrSqAtslNFX0Dua3DDk0/PthOtdLM4xOvK0I7aQ/rGMZZY6qgEO9ZVS5hEyw3LUfKn/jqnSmdgkBWpm3Z3URsIzLvP6NnIKgKSV0om+9xtpMX1RKLfjeDddGyn4DRytyagn8opF2fG8eS5ZFx6ycHbbYRSrtV2r0m0MZXHMTYUSAcoB3X16mOy0UT/kLF7s+1XJzNzL+Bh1bFwy9iU/DTJH5JZnVa7gbxm3mfhPqNCs7R5IDo7v0V2EPHXu0z3fjQgYpCuTxxK+YAKSixSPgB6kTazpHwRTVcWobX1E0gZF+5Lt/8xqE0ssxhD0HPJjYi5lBXUuCIcSEWsaDXQQVMT3RuJmrUGL3zG62AwYJiilMt/QNlvNSl3WnQjacl1ezZ2jd6Gyl6Qq YCc0rE1w 8glswA5Kk0xW4Iw1ggV1+QD1chG4WiOnlGSCqCZOFGdrXuMYK/ijbZvssw4tLn+Nk06s02tSQkrhR6y3vRGQPSsMflp9rLGONM5YLom4iZx8nDYP9NjGDmtpytXQHL1stzhCPvbz5EhwxmLW7stacOCsOlk1rUJdPhbUI2XcvNAO7Ybkn+mMGHv2dL0/Mb91Vv/FzqRL6JkxNnrQki/RW0MK9S1NhBAkvQpzAQyQtgt1Yaq5OZYBxgXdejQZ5oHf4Cpi+cELq3oqh+wBim2OdtbAZji6kszjG9cB2nZolsWVZBJ95pgxXKog1jWSTrKrsMzjfE1wwIaqPUQpsq0/n1QUNkF2OT9aXy3dyuWa1lFqplA3VgJw+5yrWOvBHsWEkune6B5y36VxJHikw+LzNb4wCq9SuQYJsn+2C 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: Hi, On Mon, Apr 24, 2023 at 1:22=E2=80=AFAM Mel Gorman wrote: > > > @@ -1295,10 +1296,13 @@ static inline int folio_wait_bit_common(struct = folio *folio, int bit_nr, > > /* Loop until we've been woken or interrupted */ > > flags =3D smp_load_acquire(&wait->flags); > > if (!(flags & WQ_FLAG_WOKEN)) { > > + if (!timeout) > > + break; > > + > > An io_schedule_timeout of 0 is valid so why the special handling? It's > negative timeouts that cause schedule_timeout() to complain. It's not expected that the caller passes in a timeout of 0 here. The test here actually handles the case that the previous call to io_schedule_timeout() returned 0. In my patch, after the call to io_schedule_timeout() we unconditionally "continue" and end up back at the top of the loop. The next time through the loop if we don't see the WOKEN flag then we'll check for the two "error" conditions (timeout or signal pending) and break for either of them. To make it clearer, I'll add this comment for the next version: /* Break if the last io_schedule_timeout() said no time left */