Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp3714494yba; Mon, 29 Apr 2019 07:22:17 -0700 (PDT) X-Google-Smtp-Source: APXvYqxzoPA1BNgzmpxz2vbsOiyA6cFWx8299EfWsjvQ/Ionak1AaTsBiyk2Vr7oERulxFltFJ8s X-Received: by 2002:a17:902:e683:: with SMTP id cn3mr17874264plb.115.1556547737744; Mon, 29 Apr 2019 07:22:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556547737; cv=none; d=google.com; s=arc-20160816; b=l7gup69rzl81SS6+upcQwlXxEgcAzgDc48Q7rclEq9cNp0eja7OBTvNh+I0DpInVRk eGtd7x5CrB36PW8EdvGuvTq1jsxC6LCw6mgDg7luckpJoUqwyIc09NL9Mln1o7hOsygT kI4GTWSkTVB8ztOQSHT7um0Rw8fy+DjSKOAzFA0ul8QuqLdMbvSNyHBpnbcjzY6lQGpJ rQzzc7pGIexldVkbpolTClGJr17SkIV3Zb4sDq5Dr9JwHa/e305la75lLap/XYj7lWor /0HQC5QEZ5J8UNsy4k/zxDkMYRTCZizAcl6lBcA3WsxXWB4Q38SYEqW1M5cM2dKsj6BD 1NYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=tCNCpSOT05aGREmnCq4wsycDKB1T3LhsY/kKsrNVUv0=; b=eQ5fzk7vfKY8h59mc6z+2vw4qMQ2Id+gYEhZTqiUqrVSuZjCma+VlAvQI53Giecibs yHC6m2J5ZEfi6VxONruRw05D40KSN6FSw/RZwuzWA9OXSjceoBUrIsAeL3RlLc+5lieu 5MNmgf8LXaBU+1w5uoLViQyqhYSTFqhR7e88sr79lex9ISsi1ZxFiu9gHNJYCZeKmQlV oT2IFPqEyjSVz/huEvKRH9xCzLNutwRA52YmbQMNsbzkAhHjw2+UMKq4xxgErKKXBdgk ouTYeod/PoqtKEF7yEBJAgHtUnbXdzoVdp1iZ/d1/wlFXQ+3SfGlwsDewdVRX28Q1H2u uWPA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 4si33232973pfp.185.2019.04.29.07.22.01; Mon, 29 Apr 2019 07:22:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728341AbfD2OU5 (ORCPT + 99 others); Mon, 29 Apr 2019 10:20:57 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47398 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728263AbfD2OUy (ORCPT ); Mon, 29 Apr 2019 10:20:54 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 53D65308621B; Mon, 29 Apr 2019 14:20:44 +0000 (UTC) Received: from dhcp-27-174.brq.redhat.com (unknown [10.43.17.159]) by smtp.corp.redhat.com (Postfix) with SMTP id 653556928F; Mon, 29 Apr 2019 14:20:32 +0000 (UTC) Received: by dhcp-27-174.brq.redhat.com (nbSMTP-1.00) for uid 1000 oleg@redhat.com; Mon, 29 Apr 2019 16:20:43 +0200 (CEST) Date: Mon, 29 Apr 2019 16:20:30 +0200 From: Oleg Nesterov To: Joel Fernandes Cc: Christian Brauner , linux-kernel@vger.kernel.org, luto@amacapital.net, rostedt@goodmis.org, dancol@google.com, sspatil@google.com, jannh@google.com, surenb@google.com, timmurray@google.com, Jonathan Kowalski , torvalds@linux-foundation.org, kernel-team@android.com, Andrew Morton , Arnd Bergmann , "Eric W. Biederman" , Greg Kroah-Hartman , Ingo Molnar , Jann Horn , linux-kselftest@vger.kernel.org, Michal Hocko , "Peter Zijlstra (Intel)" , Serge Hallyn , Shuah Khan , Stephen Rothwell , Thomas Gleixner , Tycho Andersen , viro@zeniv.linux.org.uk, linux-api@vger.kernel.org Subject: Re: [PATCH v1 1/2] Add polling support to pidfd Message-ID: <20190429142030.GA17715@redhat.com> References: <20190425190010.46489-1-joel@joelfernandes.org> <20190425222359.sqhboc4x4daznr6r@brauner.io> <20190428162405.GA6757@redhat.com> <20190429140245.GB233442@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190429140245.GB233442@google.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Mon, 29 Apr 2019 14:20:53 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/29, Joel Fernandes wrote: > > However, in your code above, it is avoided because we get: > > Task A (poller) Task B (exiting task being polled) > ------------ ---------------- > poll() called > add_wait_queue() > exit_state is set to non-zero > read exit_state > remove_wait_queue() > wake_up_all() just to clarify... No, sys_poll() path doesn't do remove_wait_queue() until it returns to user mode, and that is why we can't race with set-exit_code + wake_up(). pidfd_poll() can race with the exiting task, miss exit_code != 0, and return zero. However, do_poll() won't block after that and pidfd_poll() will be called again. Oleg.