--- site/data/status/Attic/diary.cgi 2005/04/09 23:11:52 1.26
+++ site/data/status/Attic/diary.cgi 2006/01/08 19:05:33 1.27
@@ -4,6 +4,236 @@
$TITLE(DragonFly - Big-Picture Status)
+
Sat 7 January 2006
+
+ - Add the closefrom() system call.
+
- GCC 3.4 is now the default compiler. 2.95.x is no longer
+ supported (it can't handle the new threading storage classes
+ properly).
+
- Import Citrus from NetBSD.
+
- Implement direct TLS support for programs whether threaded or not.
+
- Major library and user-visible system structure changes
+ (dirent, stat, errno, etc), and other work requires a major
+ library bump for libc and other libraries. libc is now
+ libc.so.6.
+
- stat: inode size now 64 bits, nlink now 32 bits. new fields,
+ added pad.
+
- dirent: inode size now 64 bits, various fields disentangled from
+ the UFS dirent.
+
- statfs: new fields, added pad.
+
- Clean up RC scripts that are not used by DragonFly.
+
- Remove the OS keyword requirement for RC scripts.
+
- Add support for unsigned quads to sysctl.
+
- Implement DNTPD, DragonFly's own NTP client time synchronization
+ demon.
+
- Correct a large number of bugs in the third party ntpd code, but
+ for client-side operations we now recommend you use dntpd.
+
- Add a framework for aggregating per-cpu structures for user
+ reporting.
+
- Userland TLS (data spaces for threads) support added.
+
- Create a binary library compatibility infrastructure that
+ allows us to install and/or upgrade older revs of shared
+ libraries on newer machines to maintain compatibility with
+ older programs.
+
- Fix issues related to the expansion of symbolic links by the
+ bourne shell.
+
- Many, Many mdoc cleanups and fixes.
+
- Update cvs, openssl, ssh, sendmail, groff,
+ and other numerous contributed applications.
+
- Bring in a brand new pam infrastructure.
+
- Introduce pkgsrc support.
+
- Get rid of libmsun.
+
- Implement backwards scanning and partial-transaction handling
+ features in jscan.
+
+
+
- FreeBSD-SA-05:06.iir - major disk access vulnerability for IIR
+
- FreeBSD-SA-05:04.ifconf - memory disclosure vulnerability
+
- FreeBSD-SA-05:08.kmem - memory disclosure vulnerability
+
- FreeBSD-SA-05:16.zlib - possible buffer overflow in zlib
+
- FreeBSD-SA-05:18.zlib - possible buffer overflow in zlib
+
- FreeBSD-SA-05:15.tcp - fix TCP RESET window check
+ (DOS attack vulnerability)
+
- ? - a bzip2 vulnerability
+
+
+
- Fix a bug in the TCP NewReno algorithm which could result in
+ a large amount of data being unnecessarily retransmitted.
+
- Fix numerous TCP buffering issues.
+
- Implement TCP Appropriate Byte Counting
+
- Bring in ALTQ and reorganize the IF queueing code to remove
+ per-driver depdendancies on ALTQ.
+
- Strip away numerous TCP hidden indirections that make code hard
+ to read and understand.
+
- Introduce BPF_MTAP which includes an address family parameter.
+
- Reimplement network polling with a systimer, allowing the
+ frequency to be adjusted on the fly.
+
- Remove the really bad hack that was calling the network polling
+ code from the trap code.
+
- Completely rewrite nework polling support.
+
- Make the network IF serializer mandatory for all network device
+ driver interrupts, ioctl's, and if_ callbacks.
+
- Implement a very fast memory object caching infrastructure. This
+ will eventually replace zalloc() (but not yet).
+
- Rewrite the mbuf allocator using the new memory object caching
+ infrastructure. Remove many crazily-large mbuf macros in favor
+ of the new infrastructure.
+
- Convert all remaining uses of the old mbuf m_ext API to the new
+ API. Remove support for the old API.
+
- Reorder the detach sequence in all network drivers. Unhook the
+ interrupt first rather then last.
+
- Fix all instances where an mbuf packet header and mbuf data
+ buffer were being referenced by the wrong name and all instances
+ where the packet header flag was being improperly set or cleared.
+
- Fix a number of mbuf statistics counting bugs.
+
- Fix numerous bugs in ipfw/ipfw2 where m_tag data was not being
+ stored in the right place, resulting in a panic.
+
- Add support for the experiemental SCTP protocol.
+
- Fix an issue with cloned interfaces being added twice.
+
+
+
- Add a passive IPIQ call for non-time-critical events such as
+ memory free() calls.
+
- Add TLS support for threads using the GDT instead of the LDT.
+
- Greatly simplify and demystify the NTP kernel interface. Convert
+ most aspects of the interface over to sysctls.
+
- Implement ranged fsync's in-kernel. This capability will
+ eventually replace the write-behind heuristic.
+
+
- Introduce MP-safe mountlist scanning code.
+
- Introduce rip-out-safe red-black tree scanning code.
+
- Use the new RB scanning code to get rid of VPLACEMARKER and
+ generally use the new RB scanning code to handle all RB tree
+ scanning in a safe way (allowing the scan code callback to block).
+
- Zoneinfo upgrades
+
- Rename cpu_mb*() functions to cpu_mfence(), cpu_lfence(), and
+ cpu_sfence() to make their function more apparent.
+
- Fix bugs in the LWKT token code related to token references
+ being lost due to a preemption or blocking condition.
+
- Fix bugs in the LWKT rwlock code relating to preemption occuring
+ during token acquisition.
+
- Fix a bug in the LWKT thread queueing and dequeueing code
+ related to a preemption.
+
- Increase the size of the physmap[] array to accomodate newer
+ PC's which have a larger number of memory segments and fix
+ an overflow bug.
+
- Use the ACPI timer if present instead of one of the other 8254
+ timers (which are not dependable because BIOS calls might
+ manipulate them).
+
- Change cpu statistics to be accounted for on a per-cpu basis.
+
- Make network routing statistics per-cpu.
+
- Extend the interrupt vector code to pass a frame as a pointer.
+
- Remove the last vestiges of the old mbuf tagging code.
+
- Add a serializer API and code (basically blockable mutexes).
+
- Add interrupt enablement and disablement features to the new
+ serializer module to deal with races against blocked serializer
+ locks when e.g. removing a driver.
+
- Remove bus_{disable,enable}_intr(), it was not generic enough
+ for our needs.
+
- Remove all spl*() procedures and convert all uses to critical
+ sections.
+
- Do not try to completely halt all cpus when panic()ing as this
+ will likely leave the machine in a state that prevents it from
+ being able to do a dump.
+
- Try to unwind certain conditions when panic()ing from a trap
+ in order to give the machine a better chance to dump its core.
+
- A number of malloc()'s using M_NOWAIT really needed to be
+ using M_WAITOK.
+
- Attempt to avoid a livelocked USB interrupt during boot by
+ delaying the enablement of the EHCI interrupt until after all
+ companion controllers have been attached.
+
- Reimplement the kernel tracepoint facility (KTR) to greatly
+ reduce the complexity of the API as well as remove all hardwired
+ flags and values. In addition, record two levels of call
+ backtrace for each entry, if enabled.
+
- Beef up ktrdump to display symbolic results when possible.
+
- Beef up the slab allocator build with INVARINTS by adding a
+ bitmap to detect duplicate frees and such.
+
- Remove the 16 bit count limit for file descriptors.
+
- Replace the file descriptor allocator with an O(log N)
+ full-on in-place binary search tree.
+
- Allow the initial stack pointer for a use process to be
+ randomized.
+
- Fix numerous scheduling issues that could cause the scheduler
+ to lose track of a reschedule request, resulting in poor
+ interactive performance. Rewrite the interactive/batch
+ heuristic.
+
- Begin to implement a management system to allow multiple
+ userland schedulers to be configured in a system.
+
- Add rm -I and add an alias for interactive shells to use it
+ by default. -I is a less invasive -i.
+
- Fix a bug in the pipe code that was not handling kernel-space
+ writes correctly. Such writes can occur whenever the kernel
+ writes KVM-referenced data to a descriptor, such as that
+ journaling code might do.
+
- Fix many issues with the high level filesystem journaling code.
+ High level journal records are now considered fairly solid.
+
- Implement the transactional features of the high level journaling
+ subsystem by allowing a journaling record to be written prior to
+ the VFS operation being executed, then aborted if the VFS operation
+ fails.
+
- Implement UNDO records for most journaling transaction types.
+
- Implement the journaling code's full-duplex ack protocol feature
+ which allows journals to be broken and restarted without losing
+ data.
+
- Implement a stat-visible FSMID (filesystem modification id). This
+ identifier changes whenever any modifying operation on the file
+ or directory occurs, and for directories this identifier also
+ changes if anything in the sub-tree under the directory is
+ modified (recursively). The FSMID is synthesized for filesystems
+ which do not implement it directly in order to guarentee its
+ usefulness for at least a subset of operations.
+
- Implement pesistent storage of the FSMID for UFS.
+
- Implement shutdown() support for pipes.
+
- Implement a low level spinlock facility. Basically the
+ implementation gives us an MP-safe critical section type of
+ vehicle. However, being a spinlock the facility may only be
+ used for very short sections of code.
+
- Fix a bug with USB<->CAM communication for USB mass storage
+ devices.
+
- Fix numerous bugs in USB, primarily EHCI.
+
- Fix multiple panics when a fatal trap occurs from an IPI or
+ FAST interrupt. Interlock panics on multiple cpus so only the
+ first is recognized as the 'real' panic.
+
- Add a large number of assertions to the scheduler and interrupt
+ subsystems.
+
- Fix a critical IPI messaging bug (SMP only).
+
- Do not compile the kernel with the stack protector. The stack
+ protector generates weird incorrect or unexpected code in some
+ cases which interfere with the C<->assembly interactions in the
+ kernel build
+
- Various bug fixes to softupdates.
+
- Fix a bitmap scanning bug in UFS which could sometimes result
+ in a sanity check panic, but no data corruption.
+
- Fix a deadlock in UFS's ffs_balloc() related to an incorrect
+ buffer locking order.
+
- Continued work on the buffer cache.
+
- Separate out APIC and ICU interrupt management.
+
- Rewrite the interrupt setup code.
+
- Major rewriting of the VFS directory scanning code. Add a new
+ function vop_write_dirent() to create the dirent for return to
+ userland. The new API is mandatory and filesystem code (not
+ even UFS) may not make assumptions about the size of the
+ userland-returned dirent.
+
- Major cleanup of the device identification method.
+
- Lots of driver updates.
+
- Ansify a great deal more of the codebase.
+
- Remove the now obsolete smp_rendezvous() mechanism.
+
- Compile up both the TFTP and the NFS PXE bootp code rather
+ then the (previous) make.conf option to select one or the other.
+
- Convert the lockmgr interlock from a token to a spinlock, also
+ incidently fixing an issue where non-blocking locks would
+ still potentially issue a thread switch.
+
- Fix bugs in the interrupt livelock code.
+
- Rewrite the code handling stopped user processes.
+
- Rewrite tsleep()/wakeup() to be per-cpu and MPSAFE. Reorganize
+ the process states (p_stat), removing a number of states but
+ resynthesizing them in eproc for 'ps'.
+
- Integrate the new if_bridge code from Open/Net/FreeBSD.
+
- Add an emergency interrupt polling feature that can be used
+ to get an otherwise non-working system working.
+
+
Thu 7 April 2005
- Fix numerous issues in the new namecache code. The new code is