camcontrol devlist device name ordering

Kenneth D. Merry ken at freebsd.org
Fri Aug 31 05:02:36 UTC 2012


On Fri, Aug 31, 2012 at 00:31:06 +0000, John wrote:
> Hi Folks,
> 
>    I've been working on a small utility to map devices and enclosures
> and generate a small report. Nothing special really.
> 
>    However, I've run into a small parsing issue I thought I'd ask
> about here.
> 
>    When running "camcontrol devlist", the device names are not always
> printed out the same. For instance:
> 
> <HP EG0600FBLSH HPD2>              at scbus7 target 165 lun 0 (pass24,da21)
> <HP EG0600FBLSH HPD2>              at scbus7 target 166 lun 0 (pass25,da22)
> <HP EG0600FBLSH HPD2>              at scbus7 target 167 lun 0 (pass26,da23)
> <HP EG0600FBLSH HPD2>              at scbus7 target 168 lun 0 (pass27,da24)
> <HP D2700 SAS AJ941A 0131>         at scbus7 target 169 lun 0 (ses0,pass28) <---
> <HP EG0600FBLSH HPD2>              at scbus7 target 170 lun 0 (pass29,da25)
> <HP EG0600FBLSH HPD2>              at scbus7 target 171 lun 0 (pass30,da26)
> <HP EG0600FBLSH HPD2>              at scbus7 target 172 lun 0 (pass31,da27)
> 
>    In the last column, the disk devices are pass device / disk device. For
> the enclosure, it's enclosure device / pass device.
> 
>    First I looked at camcontrol, but it is simply looping over the list
> as presented. It is not responsible for the ordering. I then started
> poking around in sys/cam/scsi/scsi_ses.c and I can see where the device
> is allocated, but I'm not sure how the insertion ordering is controlled
> for the pass & ses devices.
> 
>    Does someone with a bit more knowledge of this area have an idea
> where I should look?

It is done in the order that the peripherals attach, and so it is rather
random and timing dependent.

Specifically, see cam_periph_alloc() in sys/cam/cam_periph.c, and
xpt_add_periph() in sys/cam/cam_xpt.c.

You could also do a 'camcontrol periphlist' for the first peripheral or
bus/target/lun in the devlist output and grep for the type of peripheral
you're interested in.

Some day I suppose we should do an XML output version of the devlist code,
or make it more script friendly.

Ken
-- 
Kenneth Merry
ken at FreeBSD.ORG


More information about the freebsd-scsi mailing list