mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
To: Christoph Hellwig <hch@infradead.org>,
	Suparna Bhattacharya <suparna@in.ibm.com>,
	linux-aio@kvack.org, akpm@osdl.org, drepper@redhat.com,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	jakub@redhat.com, mingo@elte.hu
Subject: Re: [RFC] Heads up on a series of AIO patchsets
Date: Thu, 28 Dec 2006 14:41:27 +0300	[thread overview]
Message-ID: <20061228114127.GB26314@2ka.mipt.ru> (raw)
In-Reply-To: <20061227162530.GA23000@infradead.org>

[ I'm only subscribed to linux-fsdevel@ from above Cc list, please keep this
list in Cc: for AIO related stuff. ]

On Wed, Dec 27, 2006 at 04:25:30PM +0000, Christoph Hellwig (hch@infradead.org) wrote:
> (1) note that there is another problem with the current kevent interface,
> 	and that is that it duplicates the event infrastructure for it's
> 	underlying subsystems instead of reusing existing code (e.g.
> 	inotify, epoll, dio-aio).  If we want kevent to be _the_ unified
> 	event system for Linux we need people to help out with straightening
> 	out these even provides as Evgeny seems to be unwilling/unable to
> 	do the work himself and the duplication is simply not acceptable.

I would rewrite inotify/epoll to use kevent, but I would strongly prefer
that it would be done by peopl who created original interfaces - it is
politic decision, not techinical - I do not want to be blamed on each
corner that I killed other people work :)

FS and network AIO kevent based stuff was dropped from kevent tree in
favour of upcoming project (description below).

According do AIO - my personal opinion is that AIO should be designed
asynchronously in all aspects. Here is brief note on how I plan to
iplement it (I plan to start in about a week after New Year vacations).

===

All existing AIO - both mainline and kevent based lack major feature -
they are not fully asyncronous, i.e. they require synchronous set of
steps, some of which can be asynchronous. For example aio_sendfile() [1]
requires open of the file descriptor and only then aio_sendfile() call.
The same applies to mainline AIO and read/write calls.

My idea is to create real asyncronous IO - i.e. some entity which will
describe set of tasks which should be performed asynchronously (from
user point of view, although read and write obviously must be done after
open and before close), for example syscall which gets as parameter
destination socket and local filename (with optional offset and length
fields), which will asynchronously from user point of view open a file
and transfer requested part to the destination socket and then return
opened file descriptor (or it can be closed if requested). Similar
mechanism can be done for read/write calls.

This approach as long as asynchronous IO at all requires access to user
memory from kernels thread or even interrupt handler (that is where
kevent based AIO completes its requests) - it can be done in the way
similar to how existing kevent ring buffer implementation and also can
use dedicated kernel thread or workqueue to copy data into process
memory.

It is very interesting task and should greatly speed up workloads of
busy web/ftp and other servers, which can work with a huge number of
files and huge number of clients.
I've put it into TODO list.

Someone, please stop the time for several days, so I could create some
really good things for the universe.

1. Network AIO
http://tservice.net.ru/~s0mbre/old/?section=projects&item=naio

-- 
	Evgeniy Polyakov

  parent reply	other threads:[~2006-12-28 11:42 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-27 15:38 Suparna Bhattacharya
2006-12-27 16:25 ` Christoph Hellwig
2006-12-27 16:55   ` Ingo Molnar
2006-12-27 17:18     ` Ingo Molnar
2006-12-28 11:41   ` Evgeniy Polyakov [this message]
2007-01-02 21:38     ` Dan Williams
2007-01-03 13:35       ` Evgeniy Polyakov
2006-12-28  8:23 ` [PATCHSET 1][PATCH 0/6] Filesystem AIO read/write Suparna Bhattacharya
2006-12-28  8:34   ` [FSAIO][PATCH 1/6] Add a wait queue parameter to the wait_bit action routine Suparna Bhattacharya
2006-12-28  8:46     ` Suparna Bhattacharya
2006-12-28  8:36   ` [FSAIO][PATCH 2/8] Rename __lock_page to lock_page_slow Suparna Bhattacharya
2006-12-28  8:39   ` [FSAIO][PATCH 3/8] Routines to initialize and test a wait bit key Suparna Bhattacharya
2006-12-28 22:42     ` Andrew Morton
2006-12-28  8:39   ` [FSAIO][PATCH 4/8] Add a default io wait bit field in task struct Suparna Bhattacharya
2006-12-28  8:40   ` [FSAIO][PATCH 5/8] Enable wait bit based filtered wakeups to work for AIO Suparna Bhattacharya
2006-12-28  8:41   ` [FSAIO][PATCH 6/8] Enable asynchronous wait page and lock page Suparna Bhattacharya
2006-12-28 11:55     ` Christoph Hellwig
2006-12-28 14:47       ` Suparna Bhattacharya
2007-01-02 14:26         ` Christoph Hellwig
2007-01-04  6:50           ` Nick Piggin
2006-12-28  8:42   ` [FSAIO][PATCH 7/8] Filesystem AIO read Suparna Bhattacharya
2006-12-28 11:57     ` Christoph Hellwig
2006-12-28 14:15       ` Christoph Hellwig
2006-12-28 15:18       ` Suparna Bhattacharya
2007-01-02 14:29         ` Christoph Hellwig
2006-12-28 16:22       ` Jan Engelhardt
2006-12-28 16:56         ` Randy Dunlap
2006-12-28  8:44   ` [FSAIO][PATCH 8/8] AIO O_SYNC filesystem write Suparna Bhattacharya
2006-12-28  9:52   ` [PATCHSET 1][PATCH 0/6] Filesystem AIO read/write Ingo Molnar
2006-12-28 22:53   ` Andrew Morton
2007-01-03 22:15   ` Andrew Morton
2007-01-04  4:56     ` Suparna Bhattacharya
2007-01-04  5:51       ` Nick Piggin
2007-01-04  6:26         ` Suparna Bhattacharya
2007-01-04  6:50           ` Nick Piggin
2007-01-04 11:24             ` Suparna Bhattacharya
2007-01-05  4:56               ` Nick Piggin
2007-01-04 17:02       ` Andrew Morton
2007-01-04 17:49         ` Jens Axboe
2007-01-05  6:28         ` Suparna Bhattacharya
2007-01-05  7:02           ` Jens Axboe
2007-01-05  8:08             ` Suparna Bhattacharya
2007-01-05  8:32               ` Jens Axboe
2007-01-10  5:44         ` Suparna Bhattacharya
2007-01-11  1:08           ` Andrew Morton
2007-01-11  3:13             ` Suparna Bhattacharya
2007-01-11  4:52               ` Andrew Morton
2007-01-02 23:56 ` [RFC] Heads up on a series of AIO patchsets Zach Brown
     [not found]   ` <6f703f960701021640y444bc537w549fd6d74f3e9529@mail.gmail.com>
     [not found]     ` <A85B8249-FC4E-4612-8B28-02BC680DC812@oracle.com>
2007-01-03  1:18       ` Kent Overstreet
2007-01-04 20:33         ` Pavel Machek
2007-01-03  5:03   ` Suparna Bhattacharya
2007-01-05  0:36     ` Zach Brown
2007-01-03  7:23 ` [PATCHSET 2][PATCH 1/1] Combining epoll and disk file AIO Suparna Bhattacharya
2007-01-04  9:27 ` [PATCHSET 3][PATCH 0/5][AIO] - AIO completion signal notification v4 Bharata B Rao
2007-01-04  9:30   ` [PATCHSET 3][PATCH 1/5][AIO] - Rework compat_sys_io_submit Bharata B Rao
2007-01-04  9:32   ` [PATCHSET 3][PATCH 2/5][AIO] - fix aio.h includes Bharata B Rao
2007-01-04  9:34   ` [PATCHSET 3][PATCH 3/5][AIO] - Make good_sigevent non-static Bharata B Rao
2007-01-04  9:38   ` [PATCHSET 3][PATCH 4/5][AIO] - AIO completion signal notification Bharata B Rao
2007-01-04  9:40   ` [PATCHSET 3][PATCH 5/5][AIO] - Add listio support Bharata B Rao
2007-01-05  5:32 ` [PATCHSET 4][PATCH 1/1] AIO fallback for pipes, sockets and pollable fds Suparna Bhattacharya

Reply instructions:

You may reply publicly 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=20061228114127.GB26314@2ka.mipt.ru \
    --to=johnpol@2ka.mipt.ru \
    --cc=akpm@osdl.org \
    --cc=drepper@redhat.com \
    --cc=hch@infradead.org \
    --cc=jakub@redhat.com \
    --cc=linux-aio@kvack.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=suparna@in.ibm.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®