Fix cancelable syscalls in librtkaio on x86-64.
[glibc.git] / rtkaio / ChangeLog
blob86a56ef1f0d7d5ed0b1d81b8b0eeef8be61ad1b4
1 2009-09-30  Andreas Schwab  <schwab@redhat.com>
3         * sysdeps/unix/sysv/linux/x86_64/librtkaio-cancellation.S: New
4         file.
6 2007-12-12  Jakub Jelinek  <jakub@redhat.com>
8         * sysdeps/unix/sysv/linux/kaio_read.c (aio_read64): Define to
9         something else while including kaio_misc.h.
10         * sysdeps/unix/sysv/linux/kaio_write.c (aio_write64): Likewise.
12 2007-08-01  Jakub Jelinek  <jakub@redhat.com>
14         * sysdeps/unix/sysv/linux/kaio_misc.h (AIO_MISC_NOTIFY,
15         AIO_MISC_WAIT): Add LLL_PRIVATE as last argument to lll_futex_*wait.
17 2006-09-15  Jakub Jelinek  <jakub@redhat.com>
19         [BZ #3138]
20         * rt/tst-aiod.c (do_prepare): Give name_len type size_t.
21         * rt/tst-aiod64.c (do_prepare): Likewise.
23 2006-09-07  Jakub Jelinek  <jakub@redhat.com>
25         * tst-aiod2.c: Adjust test for new semantics of lio_listio.
26         * tst-aiod3.c: The thread is now supposed to be created.
28         * Makefile: Use $(..) in place of ../.
29         (tests): Add tst-aio{8,9,10}, tst-cpuclock{1,2}, tst-cputimer{1,2,3}
30         and tst-clock2.
31         (CPPFLAGS-librtkaio): Append -I$(..)rt.
32         * Versions.def (librtkaio): Add GLIBC_2.4 version.
33         * sysdeps/unix/sysv/linux/kaio_misc.c (wait_for_kernel_requests)
34         [!DONT_NEED_AIO_MISC_COND]: Don't use condvar, use AIO_MISC_WAIT.
35         * sysdeps/unix/sysv/linux/kaio_misc.h [HAVE_FORCED_UNWIND]
36         (DONT_NEED_AIO_MISC_COND, AIO_MISC_NOTIFY, AIO_MISC_WAIT): Define.
37         (struct waitlist) [DONT_NEED_AIO_MISC_COND]: Remove cond.
38         * sysdeps/unix/sysv/linux/kaio_suspend.c (struct clparam)
39         [DONT_NEED_AIO_MISC_COND]: Remove cond.
40         (cleanup) [DONT_NEED_AIO_MISC_COND]: Lock __aio_requests_mutex on
41         entry.  Don't destroy param->cond.
42         (aio_suspend): Fail if nent is negative.
43         (aio_suspend) [DONT_NEED_AIO_MISC_COND]: Don't use cond, use
44         AIO_MISC_WAIT.
45         * sysdeps/unix/sysv/linux/klio_listio.c (lio_listio): Renamed to...
46         (lio_listio_internal): ... this.  Don't use cond, but AIO_MISC_WAIT,
47         if DONT_NEED_AIO_MISC_COND.  Remove mode parameter check.  Only set
48         sigevent type to SIGEV_NONE if LIO_NO_INDIVIDUAL_EVENT is set.
49         (__lio_listio_21): New function.  Compatiblity version which sets
50         LIO_NO_INDIVIDUAL_EVENT before calling lio_listio_internal.
51         (__lio_listio_item_notify): New function.
52         * sysdeps/unix/sysv/linux/klio_listio64.c: Define __lio_listio_21 and
53         __lio_listio_item_notify macros.
54         * aio.h: Removed.
55         * configure.in: New file
56         * configure: Regenerated.
57         * sysdeps/rtkaio/kaio_cancel.c: Moved to...
58         * kaio_cancel.c: ... here.  New file.
59         * sysdeps/rtkaio/kaio_error.c: Moved to...
60         * kaio_error.c: ... here.  New file.
61         * sysdeps/rtkaio/kaio_fsync.c: Moved to...
62         * kaio_fsync.c: ... here.  New file.
63         * sysdeps/rtkaio/kaio_misc.c: Moved to...
64         * kaio_misc.c: ... here.  New file.
65         * sysdeps/rtkaio/kaio_notify.c: Moved to...
66         * kaio_notify.c: ... here.  New file.
67         * sysdeps/rtkaio/kaio_read.c: Moved to...
68         * kaio_read.c: ... here.  New file.
69         * sysdeps/rtkaio/kaio_read64.c: Moved to...
70         * kaio_read64.c: ... here.  New file.
71         * sysdeps/rtkaio/kaio_return.c: Moved to...
72         * kaio_return.c: ... here.  New file.
73         * sysdeps/rtkaio/kaio_sigqueue.c: Moved to...
74         * kaio_sigqueue.c: ... here.  New file.
75         * sysdeps/rtkaio/kaio_suspend.c: Moved to...
76         * kaio_suspend.c: ... here.  New file.
77         * sysdeps/rtkaio/kaio_write.c: Moved to...
78         * kaio_write.c: ... here.  New file.
79         * sysdeps/rtkaio/kaio_write64.c: Moved to...
80         * kaio_write64.c: ... here.  New file.
81         * sysdeps/rtkaio/klio_listio.c: Moved to...
82         * klio_listio.c: ... here.  New file.
83         * sysdeps/rtkaio/klio_listio64.c: Moved to...
84         * klio_listio64.c: ... here.  New file.
85         * sysdeps/pthread/Versions: New file.
86         * tst-aio8.c: New file.
87         * tst-aio9.c: New file.
88         * tst-aio10.c: New file.
89         * tst-clock2.c: New file.
90         * tst-cpuclock1.c: New file.
91         * tst-cpuclock2.c: New file.
92         * tst-cputimer1.c: New file.
93         * tst-cputimer2.c: New file.
94         * tst-cputimer3.c: New file.
95         * sysdeps/unix/sysv/linux/sparc/Makefile: New file.
96         * sysdeps/unix/sysv/linux/sparc/rtkaio-sysdep.c: New file.
97         * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
98         * sysdeps/mips/Makefile: Removed.
99         * sysdeps/unix/mips/rtkaio-sysdep.S: Removed.
100         * sysdeps/unix/sysv/linux/hppa/Versions: Removed.
101         * sysdeps/unix/sysv/linux/hppa/kaio_cancel.c: Removed.
103 2006-07-19  Jakub Jelinek  <jakub@redhat.com>
105         * sysdeps/unix/sysv/linux/kaio_misc.c: Include atomic.h.
106         (kernel_callback): Ensure __return_value is updated before
107         __error_code is set.
109 2006-05-11  Jakub Jelinek  <jakub@redhat.com>
111         * Makefile (tests): Add tst-mqueue{8,9}, tst-timer5 and
112         tst-aiod{,64,2,3,4,5}.
113         (LDFLAGS-rtkaio.so): Add -Wl,--enable-new-dtags,-z,nodelete.
114         * sysdeps/unix/sysv/linux/kaio_misc.h: Include signal.h and
115         sysdep.h.
116         (aio_start_notify_thread, aio_create_helper_thread): Define
117         for !BROKEN_THREAD_SIGNALS.
118         (__aio_start_notify_thread, __aio_create_helper_thread): New
119         functions for !BROKEN_THREAD_SIGNALS.
120         * sysdeps/unix/sysv/linux/kaio_misc.c: Include sys/sysmacros.h.
121         (aio_create_helper_thread): Define if not yet defined.
122         (__aio_create_helper_thread): New function.
123         (__aio_wait_for_events): Pass 1 rather than 0 as min_nr to
124         io_getevents.
125         (handle_kernel_aio): Likewise.
126         (__aio_create_kernel_thread): Use aio_create_helper_thread.
127         (__aio_enqueue_user_request): Likewise.
128         (handle_fildes_io): Likewise.  Remove noreturn attribute,
129         return NULL instead of calling pthread_exit (NULL).
130         (__aio_enqueue_request_ctx): Call fcntl and fxstat64 to avoid using
131         kaio on non-O_DIRECT non-/dev/raw* filedescriptors.  For LIO_SYNC
132         and LIO_DSYNC also set kctx to KCTX_NONE.
133         * sysdeps/unix/sysv/linux/kaio_suspend.c (aio_suspend): Don't start
134         handle_kernel_aio thread if ktotal is zero.
135         * sysdeps/pthread/Makefile (tests): Add tst-mqueue8x.
136         (CFLAGS-tst-mqueue8x.c): Add -fexceptions.
137         * Versions.def (librtkaio): Add GLIBC_2.3.4 version.
138         * kaio_mq_close.c: New file.
139         * kaio_mq_getattr.c: New file.
140         * kaio_mq_notify.c: New file.
141         * kaio_mq_open.c: New file.
142         * kaio_mq_receive.c: New file.
143         * kaio_mq_send.c: New file.
144         * kaio_mq_setattr.c: New file.
145         * kaio_mq_timedreceive.c: New file.
146         * kaio_mq_timedsend.c: New file.
147         * kaio_mq_unlink.c: New file.
148         * sysdeps/pthread/tst-mqueue8x.c: New file.
149         * sysdeps/unix/sysv/linux/syscalls.list: New file.
150         * tst-mqueue8.c: New file.
151         * tst-mqueue9.c: New file.
152         * tst-timer5.c: New file.
153         * tst-aiod.h: New file.
154         * tst-aiod.c: New test.
155         * tst-aiod64.c: New test.
156         * tst-aiod2.c: New test.
157         * tst-aiod3.c: New test.
158         * tst-aiod4.c: New test.
159         * tst-aiod5.c: New test.
160         * sysdeps/mips/Makefile: New file.
161         * sysdeps/unix/alpha/Makefile: New file.
162         * sysdeps/unix/alpha/rtkaio-sysdep.S: New file.
163         * sysdeps/unix/mips/rtkaio-sysdep.S: New file.
164         * sysdeps/unix/sysv/linux/Makefile: New file.
165         * sysdeps/unix/sysv/linux/s390/Makefile: New file.
166         * sysdeps/unix/sysv/linux/s390/rtkaio-sysdep.S: New file.
167         * sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
168         * sysdeps/unix/sysv/linux/powerpc/rtkaio-sysdep.c: New file.
169         * sysdeps/unix/sysv/linux/ia64/Makefile: New file.
170         * sysdeps/unix/sysv/linux/ia64/rtkaio-sysdep.S: New file.
172 2004-04-17  Jakub Jelinek  <jakub@redhat.com>
174         * rt/Makefile (mq-routines): Set.
175         (librt-routines): Use it.
176         (tests): Add tst-mqueue{1,2,3,4,5,6,7} and tst-timer{3,4}.
177         (tst-mqueue7-ARGS): Set.
178         * rt/Versions (librt): Add mq_*@@GLIBC_2.3.4.
179         * rt/tst-mqueue1.c: New file.
180         * rt/tst-mqueue2.c: New file.
181         * rt/tst-mqueue3.c: New file.
182         * rt/tst-mqueue4.c: New file.
183         * rt/tst-mqueue5.c: New file.
184         * rt/tst-mqueue6.c: New file.
185         * rt/tst-mqueue7.c: New file.
186         * rt/tst-timer3.c: New file.
187         * rt/tst-timer4.c: New file.
189 2003-08-14  Jakub Jelinek  <jakub@redhat.com>
191         * sysdeps/unix/sysv/linux/kaio_misc.c (wait_for_kernel_requests):
192         New function.
193         (handle_fildes_io): Use it for LIO_SYNC and LIO_DSYNC.
195         * sysdeps/pthread/Makefile (CPPFLAGS): Add -DBROKEN_THREAD_SIGNALS
196         for rtkaio/linuxthreads combo.
197         * sysdeps/unix/sysv/linux/kaio_misc.c (__aio_enqueue_request_ctx):
198         Only set caller_pid if BROKEN_THREAD_SIGNALS.
199         * sysdeps/unix/sysv/linux/kaio_misc.h (struct waitlist,
200         struct requestlist): Remove caller_pid unless BROKEN_THREAD_SIGNALS.
201         (__aio_notify_only): Remove last argument if not
202         BROKEN_THREAD_SIGNALS.
203         * sysdeps/unix/sysv/linux/kaio_suspend.c (aio_suspend): Only set
204         caller_pid if not BROKEN_THREAD_SIGNALS.
205         * sysdeps/unix/sysv/linux/klio_listio.c (lio_listio): Likewise.
206         Remove last argument in call to __aio_notify_only unless
207         BROKEN_THREAD_SIGNALS.
209         * tst-aio.c: Avoid test duplication.  Include rt/aio.c instead.
210         * tst-aio2.c: Similarly.
211         * tst-aio3.c: Similarly.
212         * tst-aio4.c: Similarly.
213         * tst-aio5.c: Similarly.
214         * tst-aio6.c: Similarly.
215         * tst-aio64.c: Similarly.
216         * tst-aio7.c: Similarly.
217         * tst-clock.c: Similarly.
218         * tst-clock_nanosleep.c: Similarly.
219         * tst-shm.c: Similarly.
220         * tst-timer2.c: Similarly.
222 2003-07-29  Roland McGrath  <roland@redhat.com>
224         * rt/tst-timer2.c: New file.
225         * rt/Makefile (tests): Add it.
227 2003-07-25  Jakub Jelinek  <jakub@redhat.com>
229         * sysdeps/unix/sysv/linux/kaio_cancel.c (aio_cancel): Attempt
230         to cancel kioctx != KCTX_NONE requests even if second argument
231         to aio_cancel is NULL.
233 2003-07-24  Jakub Jelinek  <jakub@redhat.com>
235         * sysdeps/unix/sysv/linux/kaio_cancel.c (aio_cancel): Return
236         AIO_ALLDONE if aiocbp != NULL and has already completed.  Return
237         -1/EINVAL if aiocbp->aio_fildes does not match fildes.
239         * sysdeps/unix/sysv/linux/alpha/kaio_cancel.c: New file.
240         * sysdeps/unix/sysv/linux/hppa/kaio_cancel.c: New file.
241         * sysdeps/unix/sysv/linux/sparc/kaio_cancel.c: New file.
242         * sysdeps/unix/sysv/linux/kaio_cancel.c (aio_cancel): Attempt
243         to cancel request handled by kernel (so far just if aiocbp != NULL).
244         * sysdeps/unix/sysv/linux/kaio_misc.c (__aio_remove_krequest): Fix
245         assertion, req->kioctx must NOT be KCTX_NONE.
246         * sysdeps/unix/sysv/linux/kaio_misc.h (__aio_remove_krequest): New
247         prototype.
249 2003-07-23  Jakub Jelinek  <jakub@redhat.com>
251         * New add-on.