Subject: Re: kernel config declaration order
To: Paul Kranenburg <pk@cs.few.eur.nl>
From: Chris G. Demetriou <cgd@cs.cmu.edu>
List: tech-kern
Date: 03/31/1997 02:18:57
> I can see three possible solutions to this:
> 
> 1) Do nothing and stipulate that kernel config files always should have
>    explicit unit-number declarations before wild-carded ones.  I don't
>    find this very appealing.

or, modify config so that it ouputs non-wildcard declarations before
wildcard declarations.  This seems to follow the spirit of what was
meant by the config files which do this.


> 2) Have config_search() make an effort to give priority to explicit
>    unit declarations over wild-carded ones.

This seems losing, but perhaps it makes sense to do something like:
	if the existing 'winner' has the same match value as the
	just-checked cfdata's match function, and the existing
	'winner' is a wildcarded entry, and the just checked cfdata
	is not, then make the just-checked entry the winner.

Unless i'm mistaken, however, this would have the same resulting
semantics as the modification I suggested above, but doing it this way
would have run-time, rather than config-time cost.  (Of course, the
cost wouldn't be much, and the cost doesn't really matter much since
it'd be done at autocnfig-time...)


> 3) Leave it to subsystem's match function to decide upon returned
>    priorities based on locators passed to it.
>    E.g., in the example, scsibussubmatch() could return a higher priority
>    value whenever one of its locators (target and lun) are present.
>    Since there are two locators, it should also implement a policy that
>    handles relative priorities, in case someone writes:
> 
> 	sd0	at scsibus? target 3 lun ?
> 	sd1	at scsibus? target ? lun 4
> 
>    for example.

I'd say that this is a good idea in general (and i've used it where I
thought it was appropriate), but shouldn't be necessary (and still
doesn't solve the problem when people say sd0 sd1 and sd* with _no_
interesting locators, for whatever reason).  I think fixing the
problem in config is a good idea too.



cgd