Received: by 10.223.148.5 with SMTP id 5csp7818508wrq; Thu, 18 Jan 2018 09:55:33 -0800 (PST) X-Google-Smtp-Source: ACJfBoszfx8QqD6jzzWgaWp6s9bJMyHIutqRkRf6JLTnFwvJI87BdGpfOLBSWM9OAmGXTkc1zX7N X-Received: by 10.98.10.79 with SMTP id s76mr30086566pfi.63.1516298133489; Thu, 18 Jan 2018 09:55:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516298133; cv=none; d=google.com; s=arc-20160816; b=qe4qwQ4k2HeSx+JUH1/9ALCFkM407/7jLKppWbcIDKG0SPc9uy5Wl8SH0DIDYAn00j R0HgVBR8Aph+Jjj9Tvs55XR/FA56SHTtfCjP3GIIAyT7umKQuJ5S11vCV/lt0QEcMLoU EXD7G6cwFY40OHm54ZpBsfuDUFd4fs0+y99niRjuxJ7XxZ0lANa+H8G/IPiS7Ymeuivg 0OlfhpvRrbWUuvfWuL0b2gb4Lo4tzx51WHHxx96hgU8qssvDls8ogdWkoYZizR9ftAOv qzbEJHX8O6M+r8WVoukJkPJw1rePK7D6Sx584XbJKJ4xtt4hBfRAdbIHbmLsc/mv0qxg vrKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from :arc-authentication-results; bh=It3L09wwIRHEOY5ICsu92j/mDSanpPc/jmVi0jRX3Xs=; b=H1SKOEnfbcLFlg4mLwRj74eosi1BFv1KsK7VL1uw7FSNpcy0tJLi9KKfiQsuQcrDNU RZ5fPaCx2pKphkqQ0VT0u1O0bZPESZVpeU2scxh+x3aiVSAQxqHR7HC97dn8rh1hCSzD ePVqPQW/3ItuiiCuXvQwZA1zt444vfIMq0z/bXL43CP3tYIU/+rJUoJDVC/cQ0txSlPf I35lM/unO/XLXp+eTL2+DZIykmMEvgOZP8nghhSzBugfCSgv94nb9L3zBBdn6ukIGPGO hpOJ0xlPmUVzekGlBB/m4ClKB40JQ4ZTk63MO4CmoWZbpR77MiTPntaAPsq2UDxw0Khe QPKA== 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 o9-v6si75707pls.290.2018.01.18.09.55.19; Thu, 18 Jan 2018 09:55:33 -0800 (PST) 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 S1755629AbeARRya (ORCPT + 99 others); Thu, 18 Jan 2018 12:54:30 -0500 Received: from mx1.redhat.com ([209.132.183.28]:46640 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754935AbeARRy1 (ORCPT ); Thu, 18 Jan 2018 12:54:27 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4910E80468; Thu, 18 Jan 2018 17:54:27 +0000 (UTC) Received: from segfault.boston.devel.redhat.com (segfault.boston.devel.redhat.com [10.19.60.26]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6F21A60BE7; Thu, 18 Jan 2018 17:54:26 +0000 (UTC) From: Jeff Moyer To: Avi Kivity Cc: Christoph Hellwig , viro@zeniv.linux.org.uk, linux-aio@kvack.org, linux-fsdevel@vger.kernel.org, netdev@vger.kernel.org, linux-api@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: aio poll, io_pgetevents and a new in-kernel poll API V3 References: <20180117192742.710-1-hch@lst.de> <7f66bc5a-e9dd-fe4f-c07a-f3de3882365b@scylladb.com> X-PGP-KeyID: 1F78E1B4 X-PGP-CertKey: F6FE 280D 8293 F72C 65FD 5A58 1FF8 A7CA 1F78 E1B4 X-PCLoadLetter: What the f**k does that mean? Date: Thu, 18 Jan 2018 12:54:25 -0500 In-Reply-To: <7f66bc5a-e9dd-fe4f-c07a-f3de3882365b@scylladb.com> (Avi Kivity's message of "Thu, 18 Jan 2018 19:51:09 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Thu, 18 Jan 2018 17:54:27 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Avi Kivity writes: > On 01/18/2018 05:46 PM, Jeff Moyer wrote: >> FYI, this kernel has issues. It will boot up, but I don't have >> networking, and even rebooting doesn't succeed. I'm looking into it. > > FWIW, I'm running an older version of this patchset on my desktop with > no problems so far. Right, it's worth mentioning that v1 worked fine for me. -Jeff >> Christoph Hellwig writes: >> >>> Hi all, >>> >>> this series adds support for the IOCB_CMD_POLL operation to poll for the >>> readyness of file descriptors using the aio subsystem. The API is based >>> on patches that existed in RHAS2.1 and RHEL3, which means it already is >>> supported by libaio. To implement the poll support efficiently new >>> methods to poll are introduced in struct file_operations: get_poll_head >>> and poll_mask. The first one returns a wait_queue_head to wait on >>> (lifetime is bound by the file), and the second does a non-blocking >>> check for the POLL* events. This allows aio poll to work without >>> any additional context switches, unlike epoll. >>> >>> To make the interface fully useful a new io_pgetevents system call is >>> added, which atomically saves and restores the signal mask over the >>> io_pgetevents system call. It it the logical equivalent to pselect and >>> ppoll for io_pgetevents. >>> >>> The corresponding libaio changes for io_pgetevents support and >>> documentation, as well as a test case will be posted in a separate >>> series. >>> >>> The changes were sponsored by Scylladb, and improve performance >>> of the seastar framework up to 10%, while also removing the need >>> for a privileged SCHED_FIFO epoll listener thread. >>> >>> The patches are on top of Als __poll_t annoations, so I've also >>> prepared a git branch on top of those here: >>> >>> git://git.infradead.org/users/hch/vfs.git aio-poll.3 >>> >>> Gitweb: >>> >>> http://git.infradead.org/users/hch/vfs.git/shortlog/refs/heads/aio-poll.3 >>> >>> Libaio changes: >>> >>> https://pagure.io/libaio.git io-poll >>> >>> Seastar changes (not updated for the new io_pgetevens ABI yet): >>> >>> https://github.com/avikivity/seastar/commits/aio >>> >>> Changes since V2: >>> - removed a double initialization >>> - new vfs_get_poll_head helper >>> - document that ->get_poll_head can return NULL >>> - call ->poll_mask before sleeping >>> - various ACKs >>> - add conversion of random to ->poll_mask >>> - add conversion of af_alg to ->poll_mask >>> - lacking ->poll_mask support now returns -EINVAL for IOCB_CMD_POLL >>> - reshuffled the series so that prep patches and everything not >>> requiring the new in-kernel poll API is in the beginning >>> >>> Changes since V1: >>> - handle the NULL ->poll case in vfs_poll >>> - dropped the file argument to the ->poll_mask socket operation >>> - replace the ->pre_poll socket operation with ->get_poll_head as >>> in the file operations >>> >>> -- >>> To unsubscribe, send a message with 'unsubscribe linux-aio' in >>> the body to majordomo@kvack.org. For more info on Linux AIO, >>> see: http://www.kvack.org/aio/ >>> Don't email: aart@kvack.org > > > -- > To unsubscribe, send a message with 'unsubscribe linux-aio' in > the body to majordomo@kvack.org. For more info on Linux AIO, > see: http://www.kvack.org/aio/ > Don't email: aart@kvack.org