Whamcloud - gitweb
b=14425
[fs/lustre-release.git] / lnet / ChangeLog
1 tbd  Sun Microsystems, Inc.
2        * version 1.6.5
3        * Support for networks:
4         socklnd   - any kernel supported by Lustre,
5         qswlnd    - Qsnet kernel modules 5.20 and later,
6         openiblnd - IbGold 1.8.2,
7         o2iblnd   - OFED 1.1 and 1.2.0, 1.2.5
8         viblnd    - Voltaire ibhost 3.4.5 and later,
9         ciblnd    - Topspin 3.2.0,
10         iiblnd    - Infiniserv 3.3 + PathBits patch,
11         gmlnd     - GM 2.1.22 and later,
12         mxlnd     - MX 1.2.1 or later,
13         ptllnd    - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x
14
15 Severity   : major
16 Bugzilla   : 14425
17 Description: o2iblnd/ptllnd credit deadlock in a routed config.
18 Details    : o2iblnd/ptllnd credit deadlock in a routed config.
19
20 Severity   : normal
21 Bugzilla   : 14956
22 Description: High load after starting lnet
23 Details    : gmlnd should sleep in rx thread in interruptible way. Otherwise,
24              uptime utility reports high load that looks confusingly.
25
26 Severity   : normal
27 Bugzilla   : 14838
28 Description: ksocklnd fails to establish connection if accept_port is high
29 Details    : PID remapping must not be done for active (outgoing) connections
30
31 --------------------------------------------------------------------------------
32
33 2008-01-11  Sun Microsystems, Inc.
34        * version 1.4.12
35        * Support for networks:
36         socklnd   - any kernel supported by Lustre,
37         qswlnd    - Qsnet kernel modules 5.20 and later,
38         openiblnd - IbGold 1.8.2,
39         o2iblnd   - OFED 1.1 and 1.2.0, 1.2.5
40         viblnd    - Voltaire ibhost 3.4.5 and later,
41         ciblnd    - Topspin 3.2.0,
42         iiblnd    - Infiniserv 3.3 + PathBits patch,
43         gmlnd     - GM 2.1.22 and later,
44         mxlnd     - MX 1.2.1 or later,
45         ptllnd    - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x
46 Severity   : normal
47 Bugzilla   : 14387
48 Description: liblustre network error
49 Details    : liblustre clients should understand LNET_ACCEPT_PORT environment
50              variable even if they don't start lnet acceptor.
51
52 Severity   : normal
53 Bugzilla   : 14300
54 Description: Strange message from lnet (Ignoring prediction from the future)
55 Details    : Incorrect calculation of peer's last_alive value in ksocklnd
56
57 --------------------------------------------------------------------------------
58
59 2007-12-07         Cluster File Systems, Inc. <info@clusterfs.com>
60        * version 1.6.4
61        * Support for networks:
62         socklnd   - any kernel supported by Lustre,
63         qswlnd    - Qsnet kernel modules 5.20 and later,
64         openiblnd - IbGold 1.8.2,
65         o2iblnd   - OFED 1.1 and 1.2.0, 1.2.5.
66         viblnd    - Voltaire ibhost 3.4.5 and later,
67         ciblnd    - Topspin 3.2.0,
68         iiblnd    - Infiniserv 3.3 + PathBits patch,
69         gmlnd     - GM 2.1.22 and later,
70         mxlnd     - MX 1.2.1 or later,
71         ptllnd    - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x
72
73 Severity   : normal
74 Bugzilla   : 14238
75 Description: ASSERTION(me == md->md_me) failed in lnet_match_md()
76
77 Severity   : normal
78 Bugzilla   : 12494
79 Description: increase send queue size for ciblnd/openiblnd
80
81 Severity   : normal
82 Bugzilla   : 12302
83 Description: new userspace socklnd
84 Details    : Old userspace tcpnal that resided in lnet/ulnds/socklnd replaced
85              with new one - usocklnd.
86
87 Severity   : enhancement
88 Bugzilla   : 11686
89 Description: Console message flood
90 Details    : Make cdls ratelimiting more tunable by adding several tunable in
91              procfs /proc/sys/lnet/console_{min,max}_delay_centisecs and
92              /proc/sys/lnet/console_backoff.
93
94 --------------------------------------------------------------------------------
95
96 2007-09-27         Cluster File Systems, Inc. <info@clusterfs.com>
97        * version 1.6.3
98        * Support for networks:
99         socklnd   - any kernel supported by Lustre,
100         qswlnd    - Qsnet kernel modules 5.20 and later,
101         openiblnd - IbGold 1.8.2,
102         o2iblnd   - OFED 1.1 and 1.2,
103         viblnd    - Voltaire ibhost 3.4.5 and later,
104         ciblnd    - Topspin 3.2.0,
105         iiblnd    - Infiniserv 3.3 + PathBits patch,
106         gmlnd     - GM 2.1.22 and later,
107         mxlnd     - MX 1.2.1 or later,
108         ptllnd    - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x
109
110 Severity   : normal
111 Bugzilla   : 12782
112 Description: /proc/sys/lnet has non-sysctl entries
113 Details    : Updating dump_kernel/daemon_file/debug_mb to use sysctl variables
114
115 Severity   : major
116 Bugzilla   : 13236
117 Description: TOE Kernel panic by ksocklnd
118 Details    : offloaded sockets provide their own implementation of sendpage,
119              can't call tcp_sendpage() directly
120
121 Severity   : normal
122 Bugzilla   : 10778
123 Description: kibnal_shutdown() doesn't finish; lconf --cleanup hangs
124 Details    : races between lnd_shutdown and peer creation prevent 
125              lnd_shutdown from finishing.
126
127 Severity   : normal
128 Bugzilla   : 13279
129 Description: open files rlimit 1024 reached while liblustre testing
130 Details    : ulnds/socklnd must close open socket after unsuccessful
131              'say hello' attempt.
132
133 Severity   : major 
134 Bugzilla   : 13482
135 Description: build error
136 Details    : fix typos in gmlnd, ptllnd and viblnd
137
138 ------------------------------------------------------------------------------
139
140 2007-07-30  Cluster File Systems, Inc. <info@clusterfs.com>
141        * version 1.6.1
142        * Support for networks:
143         socklnd   - kernels up to 2.6.16,
144         qswlnd    - Qsnet kernel modules 5.20 and later,
145         openiblnd - IbGold 1.8.2,
146         o2iblnd   - OFED 1.1 and 1.2
147         viblnd    - Voltaire ibhost 3.4.5 and later,
148         ciblnd    - Topspin 3.2.0,
149         iiblnd    - Infiniserv 3.3 + PathBits patch,
150         gmlnd     - GM 2.1.22 and later,
151         mxlnd     - MX 1.2.1 or later,
152         ptllnd    - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x
153
154 2007-06-21  Cluster File Systems, Inc. <info@clusterfs.com>
155        * version 1.4.11
156        * Support for networks:
157         socklnd   - kernels up to 2.6.16,
158         qswlnd    - Qsnet kernel modules 5.20 and later,
159         openiblnd - IbGold 1.8.2,
160         o2iblnd   - OFED 1.1
161         viblnd    - Voltaire ibhost 3.4.5 and later,
162         ciblnd    - Topspin 3.2.0,
163         iiblnd    - Infiniserv 3.3 + PathBits patch,
164         gmlnd     - GM 2.1.22 and later,
165         mxlnd     - MX 1.2.1 or later,
166         ptllnd    - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x
167
168 Severity   : minor
169 Bugzilla   : 13288
170 Description: Initialize cpumask before use
171
172 Severity   : major
173 Bugzilla   : 12014
174 Description: ASSERTION failures when upgrading to the patchless zero-copy
175              socklnd 
176 Details    : This bug affects "rolling upgrades", causing an inconsistent
177              protocol version negotiation and subsequent assertion failure
178              during rolling upgrades after the first wave of upgrades.
179
180 Severity   : minor
181 Bugzilla   : 11223
182 Details    : Change "dropped message" CERRORs to D_NETERROR so they are
183              logged instead of creating "console chatter" when a lustre
184              timeout races with normal RPC completion.
185
186 Severity   : minor
187 Details    : lnet_clear_peer_table can wait forever if user forgets to
188              clear a lazy portal.
189
190 Severity   : minor
191 Details    : libcfs_id2str should check pid against LNET_PID_ANY.
192
193 Severity   : major
194 Bugzilla   : 10916
195 Description: added LNET self test
196 Details    : landing b_self_test
197
198 Severity   : minor
199 Frequency  : rare
200 Bugzilla   : 12227
201 Description: cfs_duration_{u,n}sec() wrongly calculate nanosecond part of
202              struct timeval.
203 Details    : do_div() macro is used incorrectly.
204
205 2007-04-23  Cluster File Systems, Inc. <info@clusterfs.com>
206
207 Severity   : normal
208 Bugzilla   : 11680
209 Description: make panic on lbug configurable
210
211 Severity   : major
212 Bugzilla   : 12316
213 Description: Add OFED1.2 support to o2iblnd
214 Details    : o2iblnd depends on OFED's modules, if out-tree OFED's modules
215              are installed (other than kernel's in-tree infiniband), there
216              could be some problem while insmod o2iblnd (mismatch CRC of 
217              ib_* symbols).
218              If extra Module.symvers is supported in kernel (i.e, 2.6.17),
219              this link provides solution:
220              https://bugs.openfabrics.org/show_bug.cgi?id=355
221              if extra Module.symvers is not supported in kernel, we will
222              have to run the script in bug 12316 to update
223              $LINUX/module.symvers before building o2iblnd.
224              More details about this are in bug 12316.
225
226 ------------------------------------------------------------------------------
227
228 2007-04-01  Cluster File Systems, Inc. <info@clusterfs.com>
229        * version 1.4.10 / 1.6.0
230        * Support for networks:
231         socklnd   - kernels up to 2.6.16,
232         qswlnd    - Qsnet kernel modules 5.20 and later,
233         openiblnd - IbGold 1.8.2,
234         o2iblnd   - OFED 1.1,
235         viblnd    - Voltaire ibhost 3.4.5 and later,
236         ciblnd    - Topspin 3.2.0,
237         iiblnd    - Infiniserv 3.3 + PathBits patch,
238         gmlnd     - GM 2.1.22 and later,
239         mxlnd     - MX 1.2.1 or later,
240         ptllnd    - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x
241         
242 Severity   : minor
243 Frequency  : rare
244 Description: Ptllnd didn't init kptllnd_data.kptl_idle_txs before it could be
245              possibly accessed in kptllnd_shutdown. Ptllnd should init 
246              kptllnd_data.kptl_ptlid2str_lock before calling kptllnd_ptlid2str.
247
248 Severity   : normal
249 Frequency  : rare
250 Description: gmlnd ignored some transmit errors when finalizing lnet messages.
251
252 Severity   : minor
253 Frequency  : rare
254 Description: ptllnd logs a piece of incorrect debug info in kptllnd_peer_handle_hello.
255
256 Severity   : minor
257 Frequency  : rare
258 Description: the_lnet.ln_finalizing was not set when the current thread is
259              about to complete messages. It only affects multi-threaded 
260              user space LNet.
261         
262 Severity   : normal
263 Frequency  : rare
264 Bugzilla   : 11472
265 Description: Changed the default kqswlnd ntxmsg=512
266         
267 Severity   : major
268 Frequency  : rare
269 Bugzilla   : 12458
270 Description: Assertion failure in kernel ptllnd caused by posting passive
271              bulk buffers before connection establishment complete.
272         
273 Severity   : major
274 Frequency  : rare
275 Bugzilla   : 12445
276 Description: A race in kernel ptllnd between deleting a peer and posting
277              new communications for it could hang communications -
278              manifesting as "Unexpectedly long timeout" messages.
279         
280 Severity   : major
281 Frequency  : rare
282 Bugzilla   : 12432
283 Description: Kernel ptllnd lock ordering issue could hang a node.
284         
285 Severity   : major
286 Frequency  : rare
287 Bugzilla   : 12016
288 Description: node crash on socket teardown race
289
290 Severity   : minor
291 Frequency  : 'lctl peer_list' issued on a mx net
292 Bugzilla   : 12237
293 Description: Enable lctl's peer_list for MXLND
294
295 Severity   : major
296 Frequency  : after Ptllnd timeouts and portals congestion
297 Bugzilla   : 11659
298 Description: Credit overflows
299 Details    : This was a bug in ptllnd connection establishment.  The fix
300              implements better peer stamps to disambiguate connection
301              establishment and ensure both peers enter the credit flow
302              state machine consistently.
303
304 Severity   : major
305 Frequency  : rare       
306 Bugzilla   : 11394
307 Description: kptllnd didn't propagate some network errors up to LNET 
308 Details    : This bug was spotted while investigating 11394.  The fix
309              ensures network errors on sends and bulk transfers are
310              propagated to LNET/lustre correctly.
311
312 Severity   : enhancement
313 Bugzilla   : 10316
314 Description: Fixed console chatter in case of -ETIMEDOUT.
315
316 Severity   : enhancement
317 Bugzilla   : 11684
318 Description: Added D_NETTRACE for recording network packet history
319              (initially only for ptllnd).  Also a separate userspace
320              ptllnd facility to gather history which should really be
321              covered by D_NETTRACE too, if only CDEBUG recorded history in
322              userspace.
323
324 Severity   : major
325 Frequency  : rare       
326 Bugzilla   : 11616
327 Description: o2iblnd handle early RDMA_CM_EVENT_DISCONNECTED.
328 Details    : If the fabric is lossy, an RDMA_CM_EVENT_DISCONNECTED
329              callback can occur before a connection has actually been
330              established.  This caused an assertion failure previously.
331
332 Severity   : enhancement
333 Bugzilla   : 11094
334 Description: Multiple instances for o2iblnd
335 Details    : Allow multiple instances of o2iblnd to enable networking over
336              multiple HCAs and routing between them.
337
338 Severity   : major
339 Bugzilla   : 11201
340 Description: lnet deadlock in router_checker
341 Details    : turned ksnd_connd_lock, ksnd_reaper_lock, and ksock_net_t:ksnd_lock
342              into BH locks to eliminate potential deadlock caused by
343              ksocknal_data_ready() preempting code holding these locks.
344
345 Severity   : major
346 Bugzilla   : 11126
347 Description: Millions of failed socklnd connection attempts cause a very slow FS
348 Details    : added a new route flag ksnr_scheduled to distinguish from
349              ksnr_connecting, so that a peer connection request is only turned
350              down for race concerns when an active connection to the same peer
351              is under progress (instead of just being scheduled).
352
353 ------------------------------------------------------------------------------
354
355 2007-02-09  Cluster File Systems, Inc. <info@clusterfs.com>
356        * version 1.4.9
357        * Support for networks:
358         socklnd   - kernels up to 2.6.16
359         qswlnd    - Qsnet kernel modules 5.20 and later
360         openiblnd - IbGold 1.8.2
361         o2iblnd   - OFED 1.1
362         viblnd    - Voltaire ibhost 3.4.5 and later
363         ciblnd    - Topspin 3.2.0
364         iiblnd    - Infiniserv 3.3 + PathBits patch
365         gmlnd     - GM 2.1.22 and later
366         mxlnd     - MX 1.2.1 or later
367         ptllnd    - Portals 3.3 / UNICOS/lc 1.5.x, 2.0.x
368        * bug fixes
369
370 Severity   : major on XT3
371 Bugzilla   : none
372 Description: libcfs overwrites /proc/sys/portals
373 Details    : libcfs created a symlink from /proc/sys/portals to
374              /proc/sys/lnet for backwards compatibility.  This is no
375              longer required and makes the Cray portals /proc variables
376              inaccessible.
377
378 Severity   : minor
379 Bugzilla   : 11312
380 Description: OFED FMR API change
381 Details    : This changes parameter usage to reflect a change in
382              ib_fmr_pool_map_phys() between OFED 1.0 and OFED 1.1.  Note
383              that FMR support is only used in experimental versions of the
384              o2iblnd - this change does not affect standard usage at all.
385
386 Severity   : enhancement
387 Bugzilla   : 11245
388 Description: new ko2iblnd module parameter: ib_mtu
389 Details    : the default IB MTU of 2048 performs badly on 23108 Tavor
390              HCAs.  You can avoid this problem by setting the MTU to 1024
391              using this module parameter.
392
393 Severity   : enhancement
394 Bugzilla   : 11118/11620
395 Description: ptllnd small request message buffer alignment fix
396 Details    : Set the PTL_MD_LOCAL_ALIGN8 option on small message receives.
397              Round up small message size on sends in case this option
398              is not supported.  11620 was a defect in the initial
399              implementation which effectively asserted all peers had to be
400              running the correct protocol version which was fixed by always
401              NAK-ing such requests and handling any misalignments they
402              introduce.
403
404 Severity   : minor
405 Frequency  : rarely
406 Description: When kib(nal|lnd)_del_peer() is called upon a peer whose
407              ibp_tx_queue is not empty, kib(nal|lnd)_destroy_peer()'s
408              'LASSERT(list_empty(&peer->ibp_tx_queue))' will fail.
409
410 Severity   : enhancement
411 Bugzilla   : 11250
412 Description: Patchless ZC(zero copy) socklnd
413 Details    : New protocol for socklnd, socklnd can support zero copy without
414              kernel patch, it's compatible with old socklnd. Checksum is 
415              moved from tunables to modparams.
416
417 Severity   : minor
418 Frequency  : rarely
419 Description: When ksocknal_del_peer() is called upon a peer whose
420              ksnp_tx_queue is not empty, ksocknal_destroy_peer()'s
421              'LASSERT(list_empty(&peer->ksnp_tx_queue))' will fail.
422
423 Severity   : normal
424 Frequency  : when ptlrpc is under heavy use and runs out of request buffer
425 Bugzilla   : 11318
426 Description: In lnet_match_blocked_msg(), md can be used without holding a
427              ref on it.
428
429 Severity   : minor
430 Frequency  : very rarely
431 Bugzilla   : 10727
432 Description: If ksocknal_lib_setup_sock() fails, a ref on peer is lost.
433              If connd connects a route which has been closed by
434              ksocknal_shutdown(), ksocknal_create_routes() may create new
435              routes which hold references on the peer, causing shutdown
436              process to wait for peer to disappear forever.
437
438 Severity   : enhancement
439 Bugzilla   : 11234
440 Description: Dump XT3 portals traces on kptllnd timeout
441 Details    : Set the kptllnd module parameter "ptltrace_on_timeout=1" to
442              dump Cray portals debug traces to a file.  The kptllnd module
443              parameter "ptltrace_basename", default "/tmp/lnet-ptltrace",
444              is the basename of the dump file.
445
446 Severity   : major
447 Frequency  : infrequent
448 Bugzilla   : 11308
449 Description: kernel ptllnd fix bug in connection re-establishment
450 Details    : Kernel ptllnd could produce protocol errors e.g. illegal
451              matchbits and/or violate the credit flow protocol when trying
452              to re-establish a connection with a peer after an error or
453              timeout. 
454
455 Severity   : enhancement
456 Bugzilla   : 10316
457 Description: Allow /proc/sys/lnet/debug to be set symbolically
458 Details    : Allow debug and subsystem debug values to be read/set by name
459              in addition to numerically, for ease of use.
460
461 Severity   : normal
462 Frequency  : only in configurations with LNET routers
463 Bugzilla   : 10316
464 Description: routes automatically marked down and recovered
465 Details    : In configurations with LNET routers if a router fails routers
466              now actively try to recover routes that are down, unless they
467              are marked down by an administrator.
468
469 ------------------------------------------------------------------------------
470
471 2006-12-09  Cluster File Systems, Inc. <info@clusterfs.com>
472
473 Severity   : critical
474 Frequency  : very rarely, in configurations with LNET routers and TCP
475 Bugzilla   : 10889
476 Description: incorrect data written to files on OSTs
477 Details    : In certain high-load conditions incorrect data may be written
478              to files on the OST when using TCP networks.
479
480 ------------------------------------------------------------------------------
481
482 2006-07-31  Cluster File Systems, Inc. <info@clusterfs.com>
483         * version 1.4.7
484         - rework CDEBUG messages rate-limiting mechanism b=10375
485         - add per-socket tunables for socklnd if the kernel is patched b=10327
486
487 ------------------------------------------------------------------------------
488
489 2006-02-15  Cluster File Systems, Inc. <info@clusterfs.com>
490         * version 1.4.6
491         - fix use of portals/lnet pid to avoid dropping RPCs b=10074
492         - iiblnd wasn't mapping all memory, resulting in comms errors b=9776
493         - quiet LNET startup LNI message for liblustre b=10128
494         - Better console error messages if 'ip2nets' can't match an IP address
495         - Fixed overflow/use-before-set bugs in linux-time.h
496         - Fixed ptllnd bug that wasn't initialising rx descriptors completely
497         - LNET teardown failed an assertion about the route table being empty
498         - Fixed a crash in LNetEQPoll(<invalid handle>)
499         - Future protocol compatibility work (b_rls146_lnetprotovrsn)
500         - improve debug message for liblustre/Catamount nodes (b=10116)
501
502 2005-10-10  Cluster File Systems, Inc. <info@clusterfs.com>
503         * Configuration change for the XT3
504              The PTLLND is now used to run Lustre over Portals on the XT3.
505              The configure option(s) --with-cray-portals are no longer
506              used.  Rather --with-portals=<path-to-portals-includes> is
507              used to enable building on the XT3.  In addition to enable
508              XT3 specific features the option --enable-cray-xt3 must be
509              used.
510
511 2005-10-10  Cluster File Systems, Inc. <info@clusterfs.com>
512         * Portals has been removed, replaced by LNET.
513            LNET is new networking infrastructure for Lustre, it includes a
514            reorganized network configuration mode (see the user
515            documentation for full details) as well as support for routing
516            between different network fabrics.  Lustre Networking Devices
517            (LNDS) for the supported network fabrics have also been created
518            for this new infrastructure.
519
520 2005-08-08  Cluster File Systems, Inc. <info@clusterfs.com>
521        * version 1.4.4
522        * bug fixes
523
524 Severity   : major
525 Frequency  : rare (large Voltaire clusters only)
526 Bugzilla   : 6993
527 Description: the default number of reserved transmit descriptors was too low
528              for some large clusters
529 Details    : As a workaround, the number was increased.  A proper fix includes
530              a run-time tunable.
531
532 2005-06-02  Cluster File Systems, Inc. <info@clusterfs.com>
533        * version 1.4.3
534        * bug fixes
535
536 Severity   : major
537 Frequency  : occasional (large-scale events, cluster reboot, network failure)
538 Bugzilla   : 6411
539 Description: too many error messages on console obscure actual problem and
540              can slow down/panic server, or cause recovery to fail repeatedly
541 Details    : enable rate-limiting of console error messages, and some messages
542              that were console errors now only go to the kernel log
543
544 Severity   : enhancement
545 Bugzilla   : 1693
546 Description: add /proc/sys/portals/catastrophe entry which will report if
547              that node has previously LBUGged
548
549 2005-04-06  Cluster File Systems, Inc. <info@clusterfs.com>
550        * bugs
551         - update gmnal to use PTL_MTU, fix module refcounting (b=5786)
552
553 2005-04-04  Cluster File Systems, Inc. <info@clusterfs.com>
554        * bugs
555         - handle error return code in kranal_check_fma_rx() (5915,6054)
556
557 2005-02-04  Cluster File Systems, Inc. <info@clusterfs.com>
558        * miscellania
559         - update vibnal (Voltaire IB NAL)
560         - update gmnal (Myrinet NAL), gmnalid
561
562 2005-02-04  Eric Barton  <eeb@bartonsoftware.com>
563
564         * Landed portals:b_port_step as follows...
565
566           - removed CFS_DECL_SPIN* 
567             just use 'spinlock_t' and initialise with spin_lock_init()
568
569           - removed CFS_DECL_MUTEX*
570             just use 'struct semaphore' and initialise with init_mutex()
571
572           - removed CFS_DECL_RWSEM*
573             just use 'struct rw_semaphore' and initialise with init_rwsem()
574
575           - renamed cfs_sleep_chan -> cfs_waitq
576                     cfs_sleep_link -> cfs_waitlink
577
578           - fixed race in linux version of arch-independent socknal
579             (the ENOMEM/EAGAIN decision).
580
581           - Didn't fix problems in Darwin version of arch-independent socknal
582             (resetting socket callbacks, eager ack hack, ENOMEM/EAGAIN decision)
583
584           - removed libcfs types from non-socknal header files (only some types
585             in the header files had been changed; the .c files hadn't been
586             updated at all).