linux/net/9p
Tejun Heo 992b3f1dbe 9p-trans_fd: use single poller
trans_fd used pool of upto 100 pollers to monitor the r/w fds.  The
approach makes sense in userspace back when the only available
interfaces were poll(2) and select(2).  As each event monitor -
trigger - handling iteration took O(n) where `n' is the number of
watched fds, it makes sense to spread them to many pollers such that
the `n' can be divided by the number of pollers.  However, this
doesn't make any sense in kernel because persistent edge triggered
event monitoring is how the whole thing is implemented in the kernel
in the first place.

This patch converts trans_fd to use single poller which watches all
the fds instead of the poll of pollers approach.  All the fds are
registered for monitoring on creation and only the fds with pending
events are scanned when something happens much like how epoll is
implemented.

This change makes trans_fd fd monitoring more efficient and simpler.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
2008-10-17 11:04:41 -05:00
..
client.c vfs: Use const for kernel parser table 2008-10-13 10:10:37 -07:00
conv.c 9p: fix put_data error handling 2008-09-24 16:22:22 -05:00
error.c 9p: make cryptic unknown error from server less scary 2008-05-14 19:23:26 -05:00
fcprint.c 9p: Documentation updates 2008-05-14 19:23:25 -05:00
Kconfig 9p: fix error path during early mount 2008-05-14 19:23:27 -05:00
Makefile 9p: fix error path during early mount 2008-05-14 19:23:27 -05:00
mod.c 9p: implement proper trans module refcounting and unregistration 2008-09-24 16:22:23 -05:00
trans_fd.c 9p-trans_fd: use single poller 2008-10-17 11:04:41 -05:00
trans_virtio.c 9p: implement proper trans module refcounting and unregistration 2008-09-24 16:22:23 -05:00
util.c 9p: fix flags length in net 2008-05-14 19:23:26 -05:00