summaryrefslogtreecommitdiff
path: root/rtkaio/ChangeLog
blob: b5033f6336f15cdbd26eb3f84a1c137ab8ff8e7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
2006-09-15  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3138]
	* rt/tst-aiod.c (do_prepare): Give name_len type size_t.
	* rt/tst-aiod64.c (do_prepare): Likewise.

2006-09-07  Jakub Jelinek  <jakub@redhat.com>

	* tst-aiod2.c: Adjust test for new semantics of lio_listio.
	* tst-aiod3.c: The thread is now supposed to be created.

	* Makefile: Use $(..) in place of ../.
	(tests): Add tst-aio{8,9,10}, tst-cpuclock{1,2}, tst-cputimer{1,2,3}
	and tst-clock2.
	(CPPFLAGS-librtkaio): Append -I$(..)rt.
	* Versions.def (librtkaio): Add GLIBC_2.4 version.
	* sysdeps/unix/sysv/linux/kaio_misc.c (wait_for_kernel_requests)
	[!DONT_NEED_AIO_MISC_COND]: Don't use condvar, use AIO_MISC_WAIT.
	* sysdeps/unix/sysv/linux/kaio_misc.h [HAVE_FORCED_UNWIND]
	(DONT_NEED_AIO_MISC_COND, AIO_MISC_NOTIFY, AIO_MISC_WAIT): Define.
	(struct waitlist) [DONT_NEED_AIO_MISC_COND]: Remove cond.
	* sysdeps/unix/sysv/linux/kaio_suspend.c (struct clparam)
	[DONT_NEED_AIO_MISC_COND]: Remove cond.
	(cleanup) [DONT_NEED_AIO_MISC_COND]: Lock __aio_requests_mutex on
	entry.  Don't destroy param->cond.
	(aio_suspend): Fail if nent is negative.
	(aio_suspend) [DONT_NEED_AIO_MISC_COND]: Don't use cond, use
	AIO_MISC_WAIT.
	* sysdeps/unix/sysv/linux/klio_listio.c (lio_listio): Renamed to...
	(lio_listio_internal): ... this.  Don't use cond, but AIO_MISC_WAIT,
	if DONT_NEED_AIO_MISC_COND.  Remove mode parameter check.  Only set
	sigevent type to SIGEV_NONE if LIO_NO_INDIVIDUAL_EVENT is set.
	(__lio_listio_21): New function.  Compatiblity version which sets
	LIO_NO_INDIVIDUAL_EVENT before calling lio_listio_internal.
	(__lio_listio_item_notify): New function.
	* sysdeps/unix/sysv/linux/klio_listio64.c: Define __lio_listio_21 and
	__lio_listio_item_notify macros.
	* aio.h: Removed.
	* configure.in: New file
	* configure: Regenerated.
	* sysdeps/rtkaio/kaio_cancel.c: Moved to...
	* kaio_cancel.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_error.c: Moved to...
	* kaio_error.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_fsync.c: Moved to...
	* kaio_fsync.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_misc.c: Moved to...
	* kaio_misc.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_notify.c: Moved to...
	* kaio_notify.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_read.c: Moved to...
	* kaio_read.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_read64.c: Moved to...
	* kaio_read64.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_return.c: Moved to...
	* kaio_return.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_sigqueue.c: Moved to...
	* kaio_sigqueue.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_suspend.c: Moved to...
	* kaio_suspend.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_write.c: Moved to...
	* kaio_write.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_write64.c: Moved to...
	* kaio_write64.c: ... here.  New file.
	* sysdeps/rtkaio/klio_listio.c: Moved to...
	* klio_listio.c: ... here.  New file.
	* sysdeps/rtkaio/klio_listio64.c: Moved to...
	* klio_listio64.c: ... here.  New file.
	* sysdeps/pthread/Versions: New file.
	* tst-aio8.c: New file.
	* tst-aio9.c: New file.
	* tst-aio10.c: New file.
	* tst-clock2.c: New file.
	* tst-cpuclock1.c: New file.
	* tst-cpuclock2.c: New file.
	* tst-cputimer1.c: New file.
	* tst-cputimer2.c: New file.
	* tst-cputimer3.c: New file.
	* sysdeps/unix/sysv/linux/sparc/Makefile: New file.
	* sysdeps/unix/sysv/linux/sparc/rtkaio-sysdep.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
	* sysdeps/mips/Makefile: Removed.
	* sysdeps/unix/mips/rtkaio-sysdep.S: Removed.
	* sysdeps/unix/sysv/linux/hppa/Versions: Removed.
	* sysdeps/unix/sysv/linux/hppa/kaio_cancel.c: Removed.

2006-07-19  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/kaio_misc.c: Include atomic.h.
	(kernel_callback): Ensure __return_value is updated before
	__error_code is set.

2006-05-11  Jakub Jelinek  <jakub@redhat.com>

	* Makefile (tests): Add tst-mqueue{8,9}, tst-timer5 and
	tst-aiod{,64,2,3,4,5}.
	(LDFLAGS-rtkaio.so): Add -Wl,--enable-new-dtags,-z,nodelete.
	* sysdeps/unix/sysv/linux/kaio_misc.h: Include signal.h and
	sysdep.h.
	(aio_start_notify_thread, aio_create_helper_thread): Define
	for !BROKEN_THREAD_SIGNALS.
	(__aio_start_notify_thread, __aio_create_helper_thread): New
	functions for !BROKEN_THREAD_SIGNALS.
	* sysdeps/unix/sysv/linux/kaio_misc.c: Include sys/sysmacros.h.
	(aio_create_helper_thread): Define if not yet defined.
	(__aio_create_helper_thread): New function.
	(__aio_wait_for_events): Pass 1 rather than 0 as min_nr to
	io_getevents.
	(handle_kernel_aio): Likewise.
	(__aio_create_kernel_thread): Use aio_create_helper_thread.
	(__aio_enqueue_user_request): Likewise.
	(handle_fildes_io): Likewise.  Remove noreturn attribute,
	return NULL instead of calling pthread_exit (NULL).
	(__aio_enqueue_request_ctx): Call fcntl and fxstat64 to avoid using
	kaio on non-O_DIRECT non-/dev/raw* filedescriptors.  For LIO_SYNC
	and LIO_DSYNC also set kctx to KCTX_NONE.
	* sysdeps/unix/sysv/linux/kaio_suspend.c (aio_suspend): Don't start
	handle_kernel_aio thread if ktotal is zero.
	* sysdeps/pthread/Makefile (tests): Add tst-mqueue8x.
	(CFLAGS-tst-mqueue8x.c): Add -fexceptions.
	* Versions.def (librtkaio): Add GLIBC_2.3.4 version.
	* kaio_mq_close.c: New file.
	* kaio_mq_getattr.c: New file.
	* kaio_mq_notify.c: New file.
	* kaio_mq_open.c: New file.
	* kaio_mq_receive.c: New file.
	* kaio_mq_send.c: New file.
	* kaio_mq_setattr.c: New file.
	* kaio_mq_timedreceive.c: New file.
	* kaio_mq_timedsend.c: New file.
	* kaio_mq_unlink.c: New file.
	* sysdeps/pthread/tst-mqueue8x.c: New file.
	* sysdeps/unix/sysv/linux/syscalls.list: New file.
	* tst-mqueue8.c: New file.
	* tst-mqueue9.c: New file.
	* tst-timer5.c: New file.
	* tst-aiod.h: New file.
	* tst-aiod.c: New test.
	* tst-aiod64.c: New test.
	* tst-aiod2.c: New test.
	* tst-aiod3.c: New test.
	* tst-aiod4.c: New test.
	* tst-aiod5.c: New test.
	* sysdeps/mips/Makefile: New file.
	* sysdeps/unix/alpha/Makefile: New file.
	* sysdeps/unix/alpha/rtkaio-sysdep.S: New file.
	* sysdeps/unix/mips/rtkaio-sysdep.S: New file.
	* sysdeps/unix/sysv/linux/Makefile: New file.
	* sysdeps/unix/sysv/linux/s390/Makefile: New file.
	* sysdeps/unix/sysv/linux/s390/rtkaio-sysdep.S: New file.
	* sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
	* sysdeps/unix/sysv/linux/powerpc/rtkaio-sysdep.c: New file.
	* sysdeps/unix/sysv/linux/ia64/Makefile: New file.
	* sysdeps/unix/sysv/linux/ia64/rtkaio-sysdep.S: New file.

2004-04-17  Jakub Jelinek  <jakub@redhat.com>

	* rt/Makefile (mq-routines): Set.
	(librt-routines): Use it.
	(tests): Add tst-mqueue{1,2,3,4,5,6,7} and tst-timer{3,4}.
	(tst-mqueue7-ARGS): Set.
	* rt/Versions (librt): Add mq_*@@GLIBC_2.3.4.
	* rt/tst-mqueue1.c: New file.
	* rt/tst-mqueue2.c: New file.
	* rt/tst-mqueue3.c: New file.
	* rt/tst-mqueue4.c: New file.
	* rt/tst-mqueue5.c: New file.
	* rt/tst-mqueue6.c: New file.
	* rt/tst-mqueue7.c: New file.
	* rt/tst-timer3.c: New file.
	* rt/tst-timer4.c: New file.

2003-08-14  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/kaio_misc.c (wait_for_kernel_requests):
	New function.
	(handle_fildes_io): Use it for LIO_SYNC and LIO_DSYNC.

	* sysdeps/pthread/Makefile (CPPFLAGS): Add -DBROKEN_THREAD_SIGNALS
	for rtkaio/linuxthreads combo.
	* sysdeps/unix/sysv/linux/kaio_misc.c (__aio_enqueue_request_ctx):
	Only set caller_pid if BROKEN_THREAD_SIGNALS.
	* sysdeps/unix/sysv/linux/kaio_misc.h (struct waitlist,
	struct requestlist): Remove caller_pid unless BROKEN_THREAD_SIGNALS.
	(__aio_notify_only): Remove last argument if not
	BROKEN_THREAD_SIGNALS.
	* sysdeps/unix/sysv/linux/kaio_suspend.c (aio_suspend): Only set
	caller_pid if not BROKEN_THREAD_SIGNALS.
	* sysdeps/unix/sysv/linux/klio_listio.c (lio_listio): Likewise.
	Remove last argument in call to __aio_notify_only unless
	BROKEN_THREAD_SIGNALS.

	* tst-aio.c: Avoid test duplication.  Include rt/aio.c instead.
	* tst-aio2.c: Similarly.
	* tst-aio3.c: Similarly.
	* tst-aio4.c: Similarly.
	* tst-aio5.c: Similarly.
	* tst-aio6.c: Similarly.
	* tst-aio64.c: Similarly.
	* tst-aio7.c: Similarly.
	* tst-clock.c: Similarly.
	* tst-clock_nanosleep.c: Similarly.
	* tst-shm.c: Similarly.
	* tst-timer2.c: Similarly.

2003-07-29  Roland McGrath  <roland@redhat.com>

	* rt/tst-timer2.c: New file.
	* rt/Makefile (tests): Add it.

2003-07-25  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/kaio_cancel.c (aio_cancel): Attempt
	to cancel kioctx != KCTX_NONE requests even if second argument
	to aio_cancel is NULL.

2003-07-24  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/kaio_cancel.c (aio_cancel): Return
	AIO_ALLDONE if aiocbp != NULL and has already completed.  Return
	-1/EINVAL if aiocbp->aio_fildes does not match fildes.

	* sysdeps/unix/sysv/linux/alpha/kaio_cancel.c: New file.
	* sysdeps/unix/sysv/linux/hppa/kaio_cancel.c: New file.
	* sysdeps/unix/sysv/linux/sparc/kaio_cancel.c: New file.
	* sysdeps/unix/sysv/linux/kaio_cancel.c (aio_cancel): Attempt
	to cancel request handled by kernel (so far just if aiocbp != NULL).
	* sysdeps/unix/sysv/linux/kaio_misc.c (__aio_remove_krequest): Fix
	assertion, req->kioctx must NOT be KCTX_NONE.
	* sysdeps/unix/sysv/linux/kaio_misc.h (__aio_remove_krequest): New
	prototype.

2003-07-23  Jakub Jelinek  <jakub@redhat.com>

	* New add-on.