Subject: Re: CVS commit: src/sys/dev/scsipi
To: None <blymn@baesystems.com.au>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-kern
Date: 08/10/2005 21:38:59
> > i think you can use config(9) facilities to make any tape devices require
> > the code. (like wlan does)
>
> Yes, that is true but the sticking point is the sysctl hooks. At the
> moment they refer to functions that are only defined if st.c is built,
> I fixed that by including st.h which addressed the unresolved symbols
> but I have subsequently found that there are some architectures that
> have no scsipi at all so st.h is not generated. A kernel build on
> these architectures is now failing.
can't you create sysctl nodes when attaching devices?
> > i still don't understand why these tape-specific code is necessary, tho.
> >
>
> Because they are not disk drives? because they don't have partitions?
> They are not block devices? Seeks are meaningless (even though these
> are not tracked...).
afaik, only disk-specific part of diskstats is its name.
yes, you can just seek=0 for tapes.
> I _could_ have put them in amongst the disks
> but, really, they are a different class of device and thought it
> better that they be treated a bit differently.
i have an opposite opinion.
if possible, being generic is a good idea.
> kern/subr_disk.c:disk_unbusy is the one that worried me most, having
> the kernel panic because the tape drive was unexpectedly busy seems a
> bit harsh to me. Maybe I am worrying too much.
that panic is to detect bugs.
type of the device is not important.
> > can't you solve it by adding some "if (tape)" conditions?
> >
>
> If you know it is a tape drive - a new field would have to be added to
> the disk struct or a flag passed to the function calls... and really
> the calls should be renamed (and disk_subr.c) to drive_* instead of
> disk_* since the names would be misleading. I am not averse to doing
> this, if it is seen as appropriate.
to me, "if (tape)" doesn't seem to be needed, at least for disk_unbusy().
IMO, you can/should just use diskstats for tapes as well.
there is no need to have tape-specific one.
i have no strong opinion about s/disk/something/ renaming.
YAMAMOTO Takashi