Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp5958340pxb; Tue, 16 Feb 2021 11:52:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJyAZWDhlpvFLggBX5d/SixvozbdbnTMzg7t5CQcH4t3I1zSAo8uHiCJU+Dtz0dHxXOCnndk X-Received: by 2002:a50:ee0e:: with SMTP id g14mr21182928eds.159.1613505161325; Tue, 16 Feb 2021 11:52:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613505161; cv=none; d=google.com; s=arc-20160816; b=wUONeGNy8C9t0108GHXjEK4NwjDP+vPgbblOLVbRaGMYQ7IwC1rmdmQ+2SZIbkpd7W zE3jN98X8wYmUi7H6QptY1XseLoDNZa69V0/0V2GPc4klgWvk/8BW3Gh6U753IiF9Vit nXy9Zox6RbGQpAc8lW7WMMPB4W/jVFx82mweMOTX0lkfuO9H/cgPB1oqLtR2JJJ49A1w QLKlgPoCr2I0cv5fvLAXdoPnsdw7fhiW8KifLJtt5fa/5RAhAm3BVnKxHPct1yqdsnV5 hoQwKphbTqCtHwf1GiCScN6tlLs/giOqTtPlNrstgj1q0oyK/TR9RIzF6EeCk2ep0fPO kOwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:from:message-id:content-transfer-encoding :user-agent:subject:to:date:dkim-signature; bh=KzzeBl3CToKQoo8CnA55xVYHNnOE1Mri75OAXviGcJU=; b=l0p3IxTZ8QjZZZGiF1ziQR4uJc3OeDFcD4dNPWNGp1KerUYQ0utSKWhwBOAvOHpqHY bG0WDWeTKrIQZdmqEZKWxvTmKVXB49zmR5qirudKGg73OfdBqAJEsGObJovj+I2uApZN gG0WakFxZgfmc1unDG21MyV1GazrOKYt/ARN7KOru/I/Jka5A4duBsX18lfAGi6mfoON rXb3tvE63Xj8P3iKM3NiulM2BoK+vAr79u5IoO+P+vUCoNzW+t51swvx+g1WS330crvm 1C5/3/NtBegrtlBsZNdV9F6pDIIbhQaE5aVTQRe70qB13yuSk/0WJvTcZL1SAw+Fo6Bn 6QOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@arista.com header.s=Arista-A header.b=IzPgwbhG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=arista.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dk18si7508894edb.443.2021.02.16.11.52.18; Tue, 16 Feb 2021 11:52:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@arista.com header.s=Arista-A header.b=IzPgwbhG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=arista.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229874AbhBPTuc (ORCPT + 99 others); Tue, 16 Feb 2021 14:50:32 -0500 Received: from mx.aristanetworks.com ([162.210.129.12]:59450 "EHLO smtp.aristanetworks.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229572AbhBPTub (ORCPT ); Tue, 16 Feb 2021 14:50:31 -0500 X-Greylist: delayed 628 seconds by postgrey-1.27 at vger.kernel.org; Tue, 16 Feb 2021 14:50:31 EST Received: from us180.sjc.aristanetworks.com (us180.sjc.aristanetworks.com [10.243.128.7]) by smtp.aristanetworks.com (Postfix) with ESMTP id 9E0D4400C84; Tue, 16 Feb 2021 11:39:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arista.com; s=Arista-A; t=1613504351; bh=KzzeBl3CToKQoo8CnA55xVYHNnOE1Mri75OAXviGcJU=; h=Date:To:Subject:From:From; b=IzPgwbhGv4xxIi9ITir8JTH26SNR3V99r7mDBnsQ2M3jaQa37u4e4i2B4mqYB9Gai npWweKVWGJzvUMhlOBVdRMlF9m3Bx+70aBz+pEAwHOLxeOhDy8CBa1j7b+sOHUJNOh o0WcRgXOS1TrCk/f+bx07znjN9O/m9ZzNgxHjx7XgGB+V1FChhT9IwHMQhZ9ujvBOV pY4Nux49lEo0bt9AAOJv4QFxAvDuG7u0oXdE2sLy5wvoCj62+iUx7zoRegvdS2SucX r1+BXr68yxQVWuGQylWkMBchqAgU+5efbQFCmRFKTyJidIyCnqod1rOnOEDv81iyq+ 9JsK2xHgbuukA== Received: by us180.sjc.aristanetworks.com (Postfix, from userid 10189) id 88C9795C05D0; Tue, 16 Feb 2021 11:39:11 -0800 (PST) Date: Tue, 16 Feb 2021 11:39:11 -0800 To: netdev@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, viro@zeniv.linux.org.uk, fruggeri@arista.com Subject: epoll: different edge-triggered behavior bewteen pipe and socketpair User-Agent: Heirloom mailx 12.5 7/5/10 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20210216193911.88C9795C05D0@us180.sjc.aristanetworks.com> From: fruggeri@arista.com (Francesco Ruggeri) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org pipe() and socketpair() have different behavior wrt edge-triggered read epoll, in that no event is generated when data is written into a non-empty pipe, but an event is generated if socketpair() is used instead. This simple modification of the epoll2 testlet from tools/testing/selftests/filesystems/epoll/epoll_wakeup_test.c (it just adds a second write) shows the different behavior. The testlet passes with pipe() but fails with socketpair() with 5.10. They both fail with 4.19. Is it fair to assume that 5.10 pipe's behavior is the correct one? Thanks, Francesco Ruggeri /* * t0 * | (ew) * e0 * | (et) * s0 */ TEST(epoll2) { int efd; int sfd[2]; struct epoll_event e; ASSERT_EQ(socketpair(AF_UNIX, SOCK_STREAM, 0, sfd), 0); //ASSERT_EQ(pipe(sfd), 0); efd = epoll_create(1); ASSERT_GE(efd, 0); e.events = EPOLLIN | EPOLLET; ASSERT_EQ(epoll_ctl(efd, EPOLL_CTL_ADD, sfd[0], &e), 0); ASSERT_EQ(write(sfd[1], "w", 1), 1); EXPECT_EQ(epoll_wait(efd, &e, 1, 0), 1); ASSERT_EQ(write(sfd[1], "w", 1), 1); EXPECT_EQ(epoll_wait(efd, &e, 1, 0), 0); close(efd); close(sfd[0]); close(sfd[1]); }