In message <[EMAIL PROTECTED]>, Bruce Evans writes:
>>Hmmm, I know this is your code, but are you sure? 8-). My understanding of
>>dkmodslice() and friends is that they manipulate dev_t entries, but don't
>>actually initialise them. Since the subr_diskslice code takes a dev_t
>
>dkmodslice() once just manipulated bits in dev_t scalars.  Now that dev_t
>is a pointer, dkmodslice() has to create something for the pointer to
>point to.  That something needs to be fully initialised and not created
>more than once.  The initialisation is apparently incomplete.  Multiple
>creation is avoided by searching the list of previously created entries.
>
>Now I understand why my memory is filling up with unused dev_t
>entries :-).  subr_diskslice churns through a not insignificant part
>of the per-drive minor number space (32 slices * 8 partitions * {raw,
>buffered}), using dkmodslice to create new dev_t's.

yes, this is the remaining sticky issue, and the only cure I know for
this and for the DEVFS issue is to relayer the slice/label processing
out of the device driver entirely.  This is now almost possible to do.

--
Poul-Henning Kamp             FreeBSD coreteam member
[EMAIL PROTECTED]               "Real hackers run -current on their laptop."
FreeBSD -- It will take a long time before progress goes too far!


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to