LKML Archive on lore.kernel.org
 help / color / Atom feed
From: Nathaniel Yazdani <n1ght.4nd.d4y@gmail.com>
To: viro@zeniv.linux.org.uk
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [RFC PATCH for-next 0/4] epoll: combined control/wait syscall
Date: Sun, 23 Feb 2014 17:42:38 -0800
Message-ID: <1393206162-18151-1-git-send-email-n1ght.4nd.d4y@gmail.com> (raw)

Hi Everyone,

Being a new feature, this is obviously targeted for the next release
cycle. There's been some interest in a kevent()-like interface to
eventpoll, which this patch set aims to fulfill by adding an epoll()
system call (couldn't think of a more descriptive name, suggestions
welcome). The current struct epoll_event as used by epoll_{ctl,wait}()
to pass eventpoll entries to/from userspace is insufficient for this,
since eventpoll needs to know which file descriptor to associate with
each new entry. Thus, struct epoll is added, holding the event mask,
a user identifier, and the file descriptor. The internal eventpoll
mechanism has been made structure-agnostic to keep things neat and
orderly (this is where the majority of changes happened). This isn't
ready to be applied just yet; system call table entries still need to
be added (is there a standard way of doing this?), and documentation
will of course be necessary

A quick note about terminology: I use the term 'eventpoll entry' to refer
to a combination of an event mask, userspace identifier, and a file
descriptor. This in contrast to the past where an epoll event could mean
either an event mask or an item in the eventpoll itself. Hopefully this
will help avoid any confusion :)

Nate Yazdani
 fs/eventpoll.c                 | 508 +++++++++++++++++++++++++----------------
 include/linux/syscalls.h       |   4 +
 include/uapi/linux/eventpoll.h |   6 +
 3 files changed, 320 insertions(+), 198 deletions(-)

             reply index

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-24  1:42 Nathaniel Yazdani [this message]
2014-02-24  1:42 ` [RFC PATCH for-next 1/4] epoll: struct epoll userspace definiton Nathaniel Yazdani
2014-02-24  5:29   ` Eric Wong
     [not found]     ` <CAJ3m7Bq1y+MLn=HFY3AADnVc2HK31+WANahiYLUcdBw=hh_2pg@mail.gmail.com>
     [not found]       ` <20140225101527.GA9963@dcvr.yhbt.net>
2014-02-26  0:13         ` Nathaniel Yazdani
2014-02-24  1:42 ` [RFC PATCH for-next 2/4] epoll: epoll() syscall declaration Nathaniel Yazdani
2014-02-24  5:32   ` Eric Wong
2014-02-24  5:44     ` Nathaniel Yazdani
2014-02-25 10:30       ` Eric Wong
2014-02-25 23:44         ` Nathaniel Yazdani
2014-02-24  1:42 ` [RFC PATCH for-next 3/4] epoll: struct epoll support Nathaniel Yazdani
2014-02-24 18:59   ` Jonathan Corbet
2014-02-24 19:24     ` Nathaniel Yazdani
2014-02-24  1:42 ` [RFC PATCH for-next 4/4] epoll: epoll() syscall definition Nathaniel Yazdani
2014-02-25 10:21   ` Eric Wong
2014-02-25 23:46     ` Nathaniel Yazdani
  -- strict thread matches above, loose matches on Subject: below --
2014-02-24  1:40 [RFC PATCH for-next 0/4] epoll: combined control/wait syscall Nathaniel Yazdani

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1393206162-18151-1-git-send-email-n1ght.4nd.d4y@gmail.com \
    --to=n1ght.4nd.d4y@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org linux-kernel@archiver.kernel.org
	public-inbox-index lkml


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/ public-inbox