Date: Sun, 25 Oct 1998 16:49:09 -0700 (MST) From: "Kenneth D. Merry" <ken@plutotech.com> To: jgreco@solaria.sol.net (Joe Greco) Cc: scsi@FreeBSD.ORG Subject: Re: Do we support > 32 drives yet? Message-ID: <199810252349.QAA08774@panzer.plutotech.com> In-Reply-To: <199810251825.MAA04658@aurora.sol.net> from Joe Greco at "Oct 25, 98 12:25:10 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
Joe Greco wrote...
> Installed a 3.0-BETA shortly before -RELEASE.
>
> This machine has a lot of disks :-)
>
> % camcontrol devlist -v
> scbus-1 on xpt0 bus 0: <= Huh? What's this?
That's the transport layer "bus". Don't worry about it. :)
> scbus0 on ahc0 bus 0:
> scbus1 on ncr0 bus 0:
> <SEAGATE ST31055N 0318> at scbus1 target 0 lun 0 (da0)
> <SEAGATE ST31055N 0532> at scbus1 target 1 lun 0 (da1)
> <SEAGATE ST31055N 0532> at scbus1 target 2 lun 0 (da2)
> <SEAGATE ST31055N 0532> at scbus1 target 3 lun 0 (da3)
> <SEAGATE ST31055N 0532> at scbus1 target 4 lun 0 (da4)
> <SEAGATE ST31055N 0532> at scbus1 target 5 lun 0 (da5)
> <SEAGATE ST32171N 0338> at scbus1 target 6 lun 0 (da6)
[ ...bunch more disks.. ]
> ahc0 is the built-in 7890 on the motherboard; I purchased an ASUS
> P2B-DS on the theory that I didn't want to place any artificial future
> limits on what I did, since I knew CAM would support it.
It's a good board. I see you don't have the passthrough driver configured.
You may want to do that, since you can't use camcontrol (or any other SCSI
passthrough utilities) without it.
> I'm seriously looking at adding some nice (newer) Seagate Cheetah W
> drives to this machine, but the question is, how many can I actually
> do?
>
> We used to have a limit of 32 drives, and as you can see, I'm pushing
> to near that limit with 28. The code in MAKEDEV looks to me like we
> might still have that limit. I'd like to know for sure before I
> commit to a pointless expense.
>From looking at src/sys/sys/disklabel.h, it looks like we support 2^9
disks. (512):
========================================================================
/*
3 2 1 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
_________________________________________________________________
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
-----------------------------------------------------------------
| TYPE |UNIT_2 | SLICE | MAJOR? | UNIT |PART |
-----------------------------------------------------------------
*/
#define dkmakeminor(unit, slice, part) \
(((slice) << 16) | (((unit) & 0x1e0) << 16) | \
(((unit) & 0x1f) << 3) | (part))
#define dkmodpart(dev, part) (((dev) & ~(dev_t)7) | (part))
#define dkmodslice(dev, slice) (((dev) & ~(dev_t)0x1f0000) | ((slice) << 16))
#define dkpart(dev) (minor(dev) & 7)
#define dkslice(dev) ((minor(dev) >> 16) & 0x1f)
#define dktype(dev) ((minor(dev) >> 25) & 0x7f)
#define dkunit(dev) ((((dev) >> 16) & 0x1e0) | (((dev) >> 3) & 0x1f))
========================================================================
The da driver uses dkunit() to figure out the unit number. It looks like
that means it supports 2^9 disk devices.
Ken
--
Kenneth Merry
ken@plutotech.com
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-scsi" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199810252349.QAA08774>
