On Thu, 8 Mar 2007, Oleg Nesterov wrote:
> Davide Libenzi wrote:
> >
> > +int signalfd_deliver(struct sighand_struct *sighand, int sig, struct
> > siginfo *info)
> > +{
> > + int nsig = 0;
> > + struct list_head *pos;
> > + struct sign
*).
This allow code reuse, and will be used by epoll, signalfd and timerfd
(and whatever else there'll be).
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/anon_inodes.c
===
--- /dev/null 1970-01-01
overrun; /* si_overrun */
__u32 trapno; /* si_trapno */
__s32 status; /* si_status */
__s32 svint;/* si_int */
__u64 svptr;/* si_ptr */
__u64 utime;/* si_utime */
__u64 stime;/* si_stime */
__u64 addr; /* si_addr */
};
This patch wire the signalfd system call to the x86_64 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/include/asm-x86_64/unistd.h
===
--- linux-2.6.20.ep2.orig/include/asm-x86_64/unistd.h 2007
This patch implement the necessary compat code for the signalfd system call.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/compat.c
===
--- linux-2.6.20.ep2.orig/fs/compat.c 2007-03-08 12:43:36.0
This patch wire the signalfd system call to the i386 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/i386/kernel/syscall_table.S
===
--- linux-2.6.20.ep2.orig/arch/i386/kernel/syscall_table.S
On Thu, 8 Mar 2007, Linus Torvalds wrote:
>
>
> On Fri, 9 Mar 2007, Oleg Nesterov wrote:
> >
> > Also. A malicious user can eat all memory,
> > signalfd_deliver()->kmem_cache_alloc()
> > doesn't check any limits.
>
> This, btw, is one reason I *really* think signalfd() should just use the
>
On Fri, 9 Mar 2007, Oleg Nesterov wrote:
> > Logic is, if it's not an RT signal, queue only one, otherwise multiple.
> > The bit on the ->pending mask is clealer only when the queue slot becomes
> > empty.
>
> Yes, I see what the code does, but I don't undestand why. For example,
> SIGCHLD was
*).
This allow code reuse, and will be used by epoll, signalfd and timerfd
(and whatever else there'll be).
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/anon_inodes.c
===
--- /dev/null 1970-01-01
_u32 trapno; /* si_trapno */
__s32 status; /* si_status */
__s32 svint;/* si_int */
__u64 svptr;/* si_ptr */
__u64 utime;/* si_utime */
__u64 stime;/* si_stime */
__u64 addr; /* si_addr */
};
Signed-off-by: D
This patch wire the signalfd system call to the i386 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/i386/kernel/syscall_table.S
===
--- linux-2.6.20.ep2.orig/arch/i386/kernel/syscall_table.S
This patch wire the signalfd system call to the x86_64 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/include/asm-x86_64/unistd.h
===
--- linux-2.6.20.ep2.orig/include/asm-x86_64/unistd.h 2007
This patch implement the necessary compat code for the signalfd system call.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/compat.c
===
--- linux-2.6.20.ep2.orig/fs/compat.c 2007-03-08 12:43:36.0
On Fri, 9 Mar 2007, Oleg Nesterov wrote:
> Ugh. Still can't understand, probably I missed something or misread this
> patch.
>
> If we shift signalfd_notify() from
> specific_send_sig_info/__group_send_sig_info
> to send_signal(), we have the same "list_empty()" fastpath if no signalfds are
> a
On Thu, 8 Mar 2007, Davide Libenzi wrote:
> +static ssize_t signalfd_read(struct file *file, char *buf, size_t count,
> + loff_t *ppos)
> +{
> + struct signalfd_ctx *ctx = file->private_data;
> + struct sighand_struct *sighand = ctx->sighand
On Thu, 8 Mar 2007, David M. Lloyd wrote:
> On Wed, 2007-03-07 at 17:21 -0800, Davide Libenzi wrote:
> > int signalfd_dequeue(int fd, siginfo_t *info, long timeo);
> >
> > The "fd" parameter must ba a signalfd file descriptor. The "info" parameter
*).
This allow code reuse, and will be used by epoll, signalfd and timerfd
(and whatever else there'll be).
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/anon_inodes.c
===
--- /dev/null 1970-01-01
_u32 trapno; /* si_trapno */
__s32 status; /* si_status */
__s32 svint;/* si_int */
__u64 svptr;/* si_ptr */
__u64 utime;/* si_utime */
__u64 stime;/* si_stime */
__u64 addr; /* si_addr */
};
Signed-off-by: D
This patch wire the signalfd system call to the i386 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/i386/kernel/syscall_table.S
===
--- linux-2.6.20.ep2.orig/arch/i386/kernel/syscall_table.S
This patch implement the necessary compat code for the signalfd system call.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/compat.c
===
--- linux-2.6.20.ep2.orig/fs/compat.c 2007-03-09 10:43:18.0
This patch wire the signalfd system call to the x86_64 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/include/asm-x86_64/unistd.h
===
--- linux-2.6.20.ep2.orig/include/asm-x86_64/unistd.h 2007
This patch implement the necessary compat code for the timerfd system call.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/compat.c
===
--- linux-2.6.20.ep2.orig/fs/compat.c 2007-03-09 12:56:04.0
This patch wire the timerfd system call to the x86_64 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/x86_64/ia32/ia32entry.S
===
--- linux-2.6.20.ep2.orig/arch/x86_64/ia32/ia32entry.S 2007
the number of "ticks" that happened on the interface since the last call
to read(2). The read(2) call supportes the O_NONBLOCK flag too, and EAGAIN
will be returned if no ticks happened.
A quick test program, shows timerfd working correctly on my amd64 box:
http://www.xmailserver.org/timerfd-
This patch wire the timerfd system call to the i386 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/i386/kernel/syscall_table.S
===
--- linux-2.6.20.ep2.orig/arch/i386/kernel/syscall_table.S
On Sat, 10 Mar 2007, Jan Engelhardt wrote:
>
> On Mar 9 2007 15:39, Davide Libenzi wrote:
> >
> >This patch add an anonymous inode source, to be used for files that need
> >and inode only in order to create a file*. We do not care of having an
> >inode for each fi
On Fri, 9 Mar 2007, Davide Libenzi wrote:
> This patch series implements the new signalfd() and signalfd_dequeue()
--
Of course, wrong description. The signalfd_dequeue() call is gone, and
signals are dequeued by rea
On Fri, 9 Mar 2007, Nicholas Miell wrote:
> Why did you ignore the existing POSIX timer API?
The existing POSIX API is a standard and a very good one. Too bad it does
not deliver to files. The timerfd code is, as you can probably read from
the code, a really thin wrapper around the existing hrt
On Fri, 9 Mar 2007, Nicholas Miell wrote:
> On Fri, 2007-03-09 at 22:38 -0800, Davide Libenzi wrote:
> > On Fri, 9 Mar 2007, Nicholas Miell wrote:
> >
> > > Why did you ignore the existing POSIX timer API?
> >
> > The existing POSIX API is a standard
On Fri, 9 Mar 2007, Davide Libenzi wrote:
> +asmlinkage long compat_sys_timerfd(int ufd, int tmrtype,
> +const struct timespec __user *utmr)
compat_timespec, that is.
- Davide
-
To unsubscribe fro
On Fri, 9 Mar 2007, Nicholas Miell wrote:
> On Fri, 2007-03-09 at 22:53 -0800, Davide Libenzi wrote:
> > On Fri, 9 Mar 2007, Nicholas Miell wrote:
> > >
> > > So extend the existing POSIX timer API to deliver expiry events via a
> > > fd.
> >
> &g
On Sat, 10 Mar 2007, Pavel Machek wrote:
> > Heh, this is what Al was saying ;)
> > I'm fine with that, but how about counter cycles (going back to zero)?
>
> Just use u64?
Yeah, the second patch was using an u64.
I ended up using a "class" name (signalfd, timerfd, asyncfd) as dname
entry. An
On Sat, 10 Mar 2007, Oleg Nesterov wrote:
> Davide Libenzi wrote:
> >
> > +int signalfd_deliver(struct sighand_struct *sighand, int sig,
> > +struct siginfo *info)
> > +{
> > + int nsig = 0;
> > + struct list_head
On Sat, 10 Mar 2007, Nicholas Miell wrote:
> Try reading the timer_create man page.
>
> In short, you're limited to a single clock, so you can't set timers
> based on wall-clock time (subject to NTP correction), monotomic time
> (not subject to NTP, will not ever go backwards or skip ticks), the
On Sat, 10 Mar 2007, Nicholas Miell wrote:
> I never complained about one timer per fd (although, now that you
> mention it, that would get a bit excessive if you have thousands of
> outstanding timers).
Right, of course.
> > The real-time and monotonic selection can be added.
>
> IOW, the t
On Sat, 10 Mar 2007, Nicholas Miell wrote:
> If that's the goal, somebody should start thinking about reducing the
> contents of struct file to the bare minimum (i.e. not much more than a
> file_operations pointer).
That's already pretty smal, and the single inode (and maybe dentry) will
make it
*).
This allow code reuse, and will be used by epoll, signalfd and timerfd
(and whatever else there'll be).
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/anon_inodes.c
===
--- /dev/null 1970-01-01
apno */
__s32 status; /* si_status */
__s32 svint;/* si_int */
__u64 svptr;/* si_ptr */
__u64 utime;/* si_utime */
__u64 stime;/* si_stime */
__u64 addr; /* si_addr */
};
Signed-off-by: D
This patch wire the signalfd system call to the i386 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/i386/kernel/syscall_table.S
===
--- linux-2.6.20.ep2.orig/arch/i386/kernel/syscall_table.S
This patch wire the signalfd system call to the x86_64 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/include/asm-x86_64/unistd.h
===
--- linux-2.6.20.ep2.orig/include/asm-x86_64/unistd.h 2007
st program, shows timerfd working correctly on my amd64 box:
http://www.xmailserver.org/timerfd-test.c
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/timerfd.c
===
--- /dev/null 1970-01-01 00:00:00.000
This patch implement the necessary compat code for the signalfd system call.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/compat.c
===
--- linux-2.6.20.ep2.orig/fs/compat.c 2007-03-10 15:57:00.0
This patch wire the timerfd system call to the i386 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/i386/kernel/syscall_table.S
===
--- linux-2.6.20.ep2.orig/arch/i386/kernel/syscall_table.S
This patch wire the timerfd system call to the x86_64 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/x86_64/ia32/ia32entry.S
===
--- linux-2.6.20.ep2.orig/arch/x86_64/ia32/ia32entry.S 2007
This patch implement the necessary compat code for the timerfd system call.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/compat.c
===
--- linux-2.6.20.ep2.orig/fs/compat.c 2007-03-10 15:58:03.0
On Sat, 10 Mar 2007, Linus Torvalds wrote:
> (That said, using "struct itimerspec" might be a good idea. That would
> also obviate the need for TFD_TIMER_SEQ, since an itimerspec automatically
> has both "base" and "incremental" parts).
But TFD_TIMER_SEQ is a simple auto-rearm case of TFD_TIMER
On Sat, 10 Mar 2007, Linus Torvalds wrote:
> > Actually, the only place where I can find the itimerspec usefull, is
> > indeed with TFD_TIMER_SEQ. In cases where you want you clock starting at a
> > given time (it_value) *and* with the given frequency (it_interval).
>
> .. and this is where iti
On Sun, 11 Mar 2007, Oleg Nesterov wrote:
> On 03/10, Davide Libenzi wrote:
> >
> > +static void signalfd_put_sighand(struct signalfd_ctx *ctx,
> > +struct sighand_struct *sighand,
> > +
On Sun, 11 Mar 2007, Thomas Gleixner wrote:
> Davide,
>
> On Sat, 2007-03-10 at 18:22 -0800, Davide Libenzi wrote:
>
> Some remarks:
>
> > +
> > +asmlinkage long sys_timerfd(int ufd, int clockid, int tmrtype,
> > + const struct times
*).
This allow code reuse, and will be used by epoll, signalfd and timerfd
(and whatever else there'll be).
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/anon_inodes.c
===
--- /dev/null 1970-01-01
This patch wire the signalfd system call to the x86_64 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/include/asm-x86_64/unistd.h
===
--- linux-2.6.20.ep2.orig/include/asm-x86_64/unistd.h 2007
This patch wire the signalfd system call to the i386 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/i386/kernel/syscall_table.S
===
--- linux-2.6.20.ep2.orig/arch/i386/kernel/syscall_table.S
This patch implement the necessary compat code for the signalfd system call.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/compat.c
===
--- linux-2.6.20.ep2.orig/fs/compat.c 2007-03-11 14:28:28.0
This patch wire the timerfd system call to the i386 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/i386/kernel/syscall_table.S
===
--- linux-2.6.20.ep2.orig/arch/i386/kernel/syscall_table.S
st program, shows timerfd working correctly on my amd64 box:
http://www.xmailserver.org/timerfd-test.c
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/timerfd.c
===
--- /dev/null 1970-01-01 00:00:00.000
apno */
__s32 status; /* si_status */
__s32 svint;/* si_int */
__u64 svptr;/* si_ptr */
__u64 utime;/* si_utime */
__u64 stime;/* si_stime */
__u64 addr; /* si_addr */
};
Signed-off-by: D
This patch implement the necessary compat code for the timerfd system call.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/compat.c
===
--- linux-2.6.20.ep2.orig/fs/compat.c 2007-03-11 14:28:48.0
This patch wire the timerfd system call to the x86_64 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/x86_64/ia32/ia32entry.S
===
--- linux-2.6.20.ep2.orig/arch/x86_64/ia32/ia32entry.S 2007
On Sun, 11 Mar 2007, Davide Libenzi wrote:
> This patch introduces a new system call for timers events delivered
> though file descriptors. This allows timer event to be used with
> standard POSIX poll(2), select(2) and read(2). As a consequence of
> supporting the Linux f_op->
On Sun, 11 Mar 2007, Nicholas Miell wrote:
> You should probably make it behave like the other things that use
> itimerspec, just to avoid confusion -- i.e. timers are relative by
> default, there's a flag that makes them absolute, they expire when
> it_value specifies, and repeat every it_interva
On Mon, 12 Mar 2007, Thomas Gleixner wrote:
> Davide,
>
> On Sun, 2007-03-11 at 16:04 -0700, Davide Libenzi wrote:
> > +static int timerfd_setup(struct timerfd_ctx *ctx, int clockid, int tmrtype,
> > +const struct itimerspec *ktmr)
> > +{
>
On Mon, 12 Mar 2007, Davide Libenzi wrote:
> On Mon, 12 Mar 2007, Thomas Gleixner wrote:
>
> > Davide,
> >
> > On Sun, 2007-03-11 at 16:04 -0700, Davide Libenzi wrote:
> > > +static int timerfd_setup(struct timerfd_ctx *ctx, int clockid, int
> > > tmrt
This patch wire the signalfd system call to the i386 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/i386/kernel/syscall_table.S
===
--- linux-2.6.20.ep2.orig/arch/i386/kernel/syscall_table.S
*).
This allow code reuse, and will be used by epoll, signalfd and timerfd
(and whatever else there'll be).
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/anon_inodes.c
===
--- /dev/null 1970-01-01
This patch implement the necessary compat code for the signalfd system call.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/compat.c
===
--- linux-2.6.20.ep2.orig/fs/compat.c 2007-03-11 14:28:28.0
This patch wire the signalfd system call to the x86_64 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/include/asm-x86_64/unistd.h
===
--- linux-2.6.20.ep2.orig/include/asm-x86_64/unistd.h 2007
apno */
__s32 status; /* si_status */
__s32 svint;/* si_int */
__u64 svptr;/* si_ptr */
__u64 utime;/* si_utime */
__u64 stime;/* si_stime */
__u64 addr; /* si_addr */
};
Signed-off-by: D
This patch wire the timerfd system call to the i386 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/i386/kernel/syscall_table.S
===
--- linux-2.6.20.ep2.orig/arch/i386/kernel/syscall_table.S
This patch wire the timerfd system call to the x86_64 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/x86_64/ia32/ia32entry.S
===
--- linux-2.6.20.ep2.orig/arch/x86_64/ia32/ia32entry.S 2007
This patch implement the necessary compat code for the timerfd system call.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/compat.c
===
--- linux-2.6.20.ep2.orig/fs/compat.c 2007-03-12 11:28:03.0
all
to read(2). The read(2) call supportes the O_NONBLOCK flag too, and EAGAIN
will be returned if no ticks happened.
A quick test program, shows timerfd working correctly on my amd64 box:
http://www.xmailserver.org/timerfd-test.c
Signed-off-by: Davide Libenzi
- Davide
Index:
On Wed, 14 Mar 2007, Frank Seidel wrote:
> On Monday 12 March 2007 20:19:27 Davide Libenzi wrote:
> Hi,
> i'm not (at least until yet) really that familiar with the kernel, but
> currently trying to get into it also via reading of code and patches
> here. So please don
*).
This allow code reuse, and will be used by epoll, signalfd and timerfd
(and whatever else there'll be).
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/anon_inodes.c
===
--- /dev/null 1970-01-01
This patch wire the signalfd system call to the x86_64 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/include/asm-x86_64/unistd.h
===
--- linux-2.6.20.ep2.orig/include/asm-x86_64/unistd.h 2007
apno */
__s32 status; /* si_status */
__s32 svint;/* si_int */
__u64 svptr;/* si_ptr */
__u64 utime;/* si_utime */
__u64 stime;/* si_stime */
__u64 addr; /* si_addr */
};
Signed-off-by: D
This patch wire the signalfd system call to the i386 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/i386/kernel/syscall_table.S
===
--- linux-2.6.20.ep2.orig/arch/i386/kernel/syscall_table.S
it'd, of course, work with epoll too.
This can allow to schedule both block I/O and other poll-able devices
requests, and wait for results using select/poll/epoll.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/
This patch wire the asyncfd system call to the x86_64 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/x86_64/ia32/ia32entry.S
===
--- linux-2.6.20.ep2.orig/arch/x86_64/ia32/ia32entry.S 2007
This patch wire the timerfd system call to the x86_64 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/x86_64/ia32/ia32entry.S
===
--- linux-2.6.20.ep2.orig/arch/x86_64/ia32/ia32entry.S 2007
This patch implement the necessary compat code for the signalfd system call.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/compat.c
===
--- linux-2.6.20.ep2.orig/fs/compat.c 2007-03-11 14:28:28.0
This patch implement the necessary compat code for the timerfd system call.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/compat.c
===
--- linux-2.6.20.ep2.orig/fs/compat.c 2007-03-12 11:28:03.0
s to include all the members currently necessary
to ship a KAIO result to userspace, but even this, is not set in stone.
As I see it, the asyncfd should be an optional delivery machanism to be
included in the struct async_head_user used by syslets/threadlets, and hence
offer a result transport to them.
This patch wire the timerfd system call to the i386 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/i386/kernel/syscall_table.S
===
--- linux-2.6.20.ep2.orig/arch/i386/kernel/syscall_table.S
This patch wire the asyncfd system call to the i386 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/i386/kernel/syscall_table.S
===
--- linux-2.6.20.ep2.orig/arch/i386/kernel/syscall_table.S
all
to read(2). The read(2) call supportes the O_NONBLOCK flag too, and EAGAIN
will be returned if no ticks happened.
A quick test program, shows timerfd working correctly on my amd64 box:
http://www.xmailserver.org/timerfd-test.c
Signed-off-by: Davide Libenzi
- Davide
Index:
On Wed, 14 Mar 2007, Benjamin LaHaise wrote:
> On Wed, Mar 14, 2007 at 03:19:21PM -0700, Davide Libenzi wrote:
> > + /*
> > +* Check if the user asked us to deliver the result through an
> > +* asyncfd. Note that asyncfd_add_results() may sleep. It seems
> &g
On Wed, 14 Mar 2007, Benjamin LaHaise wrote:
> On Wed, Mar 14, 2007 at 04:24:54PM -0700, Davide Libenzi wrote:
> > Can you point me to a kernel path that ends up calling aio_complete() in a
> > do-not-sleep mode?
>
> If you remove that invariant, then it is very difficu
On Wed, 14 Mar 2007, Davide Libenzi wrote:
> On Wed, 14 Mar 2007, Benjamin LaHaise wrote:
>
> > On Wed, Mar 14, 2007 at 04:24:54PM -0700, Davide Libenzi wrote:
> > > Can you point me to a kernel path that ends up calling aio_complete() in
> > > a
> > > do
On Wed, 14 Mar 2007, Benjamin LaHaise wrote:
> On Wed, Mar 14, 2007 at 04:41:58PM -0700, Davide Libenzi wrote:
> > Yeah, of course. I do not plan revolutions. Just asking if it's a possible
> > thing to do. I can mlock the userspace ring, if imposing that burden over
> &
On Wed, 14 Mar 2007, Linus Torvalds wrote:
> On Wed, 14 Mar 2007, Davide Libenzi wrote:
> > >
> > > That won't work. aio_complete() is supposed to be irq safe.
> >
> > Can you point me to a kernel path that ends up calling aio_complete() in a
> > do
On Wed, 14 Mar 2007, Davide Libenzi wrote:
> On Wed, 14 Mar 2007, Benjamin LaHaise wrote:
>
> > On Wed, Mar 14, 2007 at 04:41:58PM -0700, Davide Libenzi wrote:
> > > Yeah, of course. I do not plan revolutions. Just asking if it's a
> > > possible
> >
*).
This allow code reuse, and will be used by epoll, signalfd and timerfd
(and whatever else there'll be).
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/anon_inodes.c
===
--- /dev/null 1970-01-01
This patch wire the eventfd system call to the i386 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/i386/kernel/syscall_table.S
===
--- linux-2.6.20.ep2.orig/arch/i386/kernel/syscall_table.S
t a struct file* from an eventfd
fd (this is an fget() + check of f_op being an eventfd fops pointer).
The kernel can then call eventfd_signal() every time it wants to post
an event to userspace. The eventfd_signal() function can be called from any
context.
Signed-off-by: Davide Libenzi
- David
This patch wire the eventfd system call to the x86_64 architecture.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/arch/x86_64/ia32/ia32entry.S
===
--- linux-2.6.20.ep2.orig/arch/x86_64/ia32/ia32entry.S 2007
-aio-test.c
The test program uses poll(2), but it'd, of course, work with epoll too.
This can allow to schedule both block I/O and other poll-able devices
requests, and wait for results using select/poll/epoll.
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.20.ep2/fs/
On Thu, 15 Mar 2007, Thomas Gleixner wrote:
> Davide,
>
> On Wed, 2007-03-14 at 15:19 -0700, Davide Libenzi wrote:
>
> > +static int timerfd_tmrproc(struct hrtimer *htmr)
> > +{
> > + struct timerfd_ctx *ctx = container_of(htmr, struct timerfd_ctx, tmr);
> &
*).
This allow code reuse, and will be used by epoll, signalfd and timerfd
(and whatever else there'll be).
Signed-off-by: Davide Libenzi
- Davide
Index: linux-2.6.21-rc3.quilt/fs/anon_inodes.c
===
--- /dev/null 1970-01-01
apno */
__s32 status; /* si_status */
__s32 svint;/* si_int */
__u64 svptr;/* si_ptr */
__u64 utime;/* si_utime */
__u64 stime;/* si_stime */
__u64 addr; /* si_addr */
};
Signed-off-by: Davide
all
to read(2). The read(2) call supportes the O_NONBLOCK flag too, and EAGAIN
will be returned if no ticks happened.
A quick test program, shows timerfd working correctly on my amd64 box:
http://www.xmailserver.org/timerfd-test.c
Signed-off-by: Davide Libenzi
- Davide
Index: linux-
401 - 500 of 765 matches
Mail list logo