When to burn those bridges

Doug Rabson dfr at nlsystems.com
Wed Sep 10 01:08:14 PDT 2003


On Wed, 2003-09-10 at 02:03, M. Warner Losh wrote:
> If there's a really compelling reason (and this would be it), we can
> burn some bridges early.  I wouldn't hold up your development based on
> these bridges being in harm's way.  Others in the BSDcon terminal room
> are saying "do it now, screw waiting for 6".  If you can get it done
> and solid, I'd do it before the branch.  The drivers in harm's way
> either have out of tree replacements, or aren't that important, or
> need to be redone and this is a good excuse.

If I commit this work to -current now, it will break ABI compatibility
with 5.1-RELEASE. When is the ABI for 5.x suppose to be frozen? Does it
matter if I break the 5.1 ABI in current? For what its worth, this
change will also make the kobj method dispatch SMP safe (without locks).

> 
> : It would also be nice to have some kind of inheritance tree for device
> : classes. Currently, drivers are grouped by devclass and the driver
> : matching election is done by iterating through the drivers listed in the
> : parent device's devclass. This means that many drivers have several
> : attachment declarations for different alternatives, e.g.:
> : 
> : 	DRIVER_MODULE(fxp, pci, fxp_driver, fxp_devclass, 0, 0);
> : 	DRIVER_MODULE(fxp, cardbus, fxp_driver, fxp_devclass, 0, 0);
> 
> Many cardbus drivers do nothing different.  There are a few that do,
> but so long as it is possible to override things if they want it.

Drivers which really need something special for cardbus will be able to
override things by defining a subclass of their pci driver which is
listed in the cardbus devclass.

> 
> : The same technique could be used to reduce the number of 'converter'
> : devices.
> 
> I like this.  pcic/cbb have similar issues, but the size of the
> problem is small.

Its mainly a cosmetic thing but it has always been an irritation to me
to have these little clusters of devices where there is only one piece
of hardware, e.g.:

	hostb0
	 pci0
	  pcib1
	   pci1
	    amdpm0
	     smbus0
	      smb0

should become:

	pci0
	 pci1
	  amdpm0
			




More information about the freebsd-arch mailing list