Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Dec 1997 04:48:04 -0800
From:      John-Mark Gurney <gurney_j@efn.org>
To:        Darren Reed <avalon@coombs.anu.edu.au>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: converting drivers to dynamic memory...
Message-ID:  <19971218044804.38303@hydrogen.nike.efn.org>
In-Reply-To: <199712181217.EAA24070@resnet.uoregon.edu>; from Darren Reed on Thu, Dec 18, 1997 at 11:16:48PM %2B1100
References:  <19971218035032.46460@hydrogen.nike.efn.org> <199712181217.EAA24070@resnet.uoregon.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Darren Reed scribbled this message on Dec 18:
> In some mail from John-Mark Gurney, sie said:
> > well...  one of the things that will need to be done in preperation
> > for moving to a dynamic system which will be required by the bus/device
> > code, we will need to eliminate ALL static datat that depends upon
> > Ndevice to size itself.
> > 
> > There are two ways that we can fix this problem.  The first (and
> > technically the best) is to be extend many of the calling functions
> > to pass around a void * pointer that will point to that devices
> > resources.  Though this is technically best, it will require that
> > most major parts of the kernel be significantly changes.
> > 
> > The second solution is to continue to use the major/minor code scheme,
> > but use a binary tree or a B-tree to obtain the private data.  This
> > can cause a performance impact if we use if for things like the sio,
> > but this can be fixed by changing the interrupt interface.
> 
> > I think that we should go with the second solution as it will be
> > initalially easier to do.  I have B-tree code already writen, (I was
> > writing it for another use in my bus/device code) which we could use
> > to access this information.  (Some people will say, why not linked
> > lists, and then I will say, sio, I have 12 ports on my term server,
> > plus you get better data density)
> 
> I guess the question is, do you want a `quick hack' or a real solution to
> fix and addres the problem ?
> 
> How many hours did you spend on the B-Tree stuff and how many do you
> expect it would take to do it the other way ?

the B-tree code is generic, I wasn't writing it to solve the above
problem, just so that I would have the code in my archives for use
when I need it.. :)  so, time taken to write the B-Tree code shouldn't
be counted in the equation...

the reason I say the second solution is that it MIGHT take a person
two hours for the largest device to convert from the current table of
static data to dynamic...

if you do it right, you have to touch almost the ENTIRE system... and
modify any part of the system that calls drivers.. that means changing
the tty, char, block, and net interface code...  ALONG with doing the
modifications to the driver...  I personally haven't looked at the
interface layer for any of that code yet, so I don't know how long it
would take to modify the whole system...

if you do the second method, 90% of the work you do in that step will
be able to be reused for when you finally make the step to the first
method...  so, it's more along the lines of, lets get the system into
a state that I can continue to do my work, and then when I or someone
else has time, finish the job.  In the short term, getting the bus/device
code is a greater benifit then the minor loss of this "hack" to get it
working.

Reminds me of my social science teacher in high school.  She said,
most people think that the cost of college is just that of the tuition
you pay, but you have to also figure in the loss of not being able to
use your time to work.

> "Do it once and do it right."

"If you have time to do it right, do it right, else get it working." :)

-- 
  John-Mark Gurney                          Modem/FAX: +1 541 683 6954
  Cu Networking					  P.O. Box 5693, 97405

  Live in Peace, destroy Micro$oft, support free software, run FreeBSD



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19971218044804.38303>