linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick Mansfield <patman@aracnet.com>
To: Douglas Gilbert <dougg@torque.net>
Cc: Chris Paulson-Ellis <chris@edesix.com>,
	Bill Nottingham <notting@redhat.com>,
	linux-hotplug-devel@lists.sourceforge.net,
	linux-scsi@vger.kernel.org, linux-ide@vger.kernel.org,
	jgarzik@pobox.com
Subject: Re: [PATCH] /dev/disk/by-id incomplete and unhelpful for SATA drives
Date: Fri, 06 Jan 2006 19:46:52 +0000	[thread overview]
Message-ID: <20060106194652.GB6404@aracnet.com> (raw)
In-Reply-To: <43BE6506.7090901@torque.net>

On Fri, Jan 06, 2006 at 10:39:34PM +1000, Douglas Gilbert wrote:

> Changelog:
>   - make existing libata VPD device identification page (0x83)
>     supply the ATA serial number in the libata "vendor
>     specific" designator (from Chris Paulson-Ellis)
>   - add a "t10 vendor id based" designator as defined in
>     SAT rev 07a (section 10.3.4.2.3) that supplies ATA
>     model and serial numbers

> --- linux/drivers/scsi/libata-scsi.c	2006-01-04 08:50:42.000000000 +1000
> +++ linux/drivers/scsi/libata-scsi.c2615vpd	2006-01-06 20:16:25.000000000 +1000

>  unsigned int ata_scsiop_inq_83(struct ata_scsi_args *args, u8 *rbuf,
>  			      unsigned int buflen)
>  {
> +	int num;
> +	const int sat_model_serial_desc_len = 68;
> +	const int ata_model_byte_len = 40;
> +
>  	rbuf[1] = 0x83;			/* this page code */
> -	rbuf[3] = 4 + strlen(inq_83_str);	/* page len */
> +	num = 4;
>  
> -	/* our one and only identification descriptor (vendor-specific) */
> -	if (buflen > (strlen(inq_83_str) + 4 + 4 - 1)) {
> -		rbuf[4 + 0] = 2;	/* code set: ASCII */
> -		rbuf[4 + 3] = strlen(inq_83_str);
> -		memcpy(rbuf + 4 + 4, inq_83_str, strlen(inq_83_str));
> +	if (buflen > (ATA_SERNO_LEN + num + 3)) {
> +		/* piv=0, assoc=lu, code_set¬SII, designator=vendor */
> +		rbuf[num + 0] = 2;	
> +		rbuf[num + 3] = ATA_SERNO_LEN;
> +		num += 4;
> +		ata_dev_id_string(args->id, (unsigned char *) rbuf + num,
> +				  ATA_ID_SERNO_OFS, ATA_SERNO_LEN);
> +		num += ATA_SERNO_LEN;
>  	}
> -
> +	if (buflen > (sat_model_serial_desc_len + num + 3)) {
> +		/* SAT defined lu model and serial numbers descriptor */
> +		/* piv=0, assoc=lu, code_set¬SII, designator=t10 vendor id */
> +		rbuf[num + 0] = 2;	
> +		rbuf[num + 1] = 1;	
> +		rbuf[num + 3] = sat_model_serial_desc_len;
> +		num += 4;
> +		strncpy(rbuf + num, "ATA     ", 8);
> +		num += 8;
> +		ata_dev_id_string(args->id, (unsigned char *) rbuf + num,
> +				  ATA_ID_PROD_OFS, ata_model_byte_len);
> +		num += ata_model_byte_len;
> +		ata_dev_id_string(args->id, (unsigned char *) rbuf + num,
> +				  ATA_ID_SERNO_OFS, ATA_SERNO_LEN);
> +		num += ATA_SERNO_LEN;
> +	}
> +	rbuf[3] = num - 4;    /* page len (assume less than 256 bytes) */


I was trying to figure out if we are guranteed will have unique values
across all ATA devices with Doug's patch. I am not familiar with ATA and
IDENTIFY DEVICE.

For page 0x83, Doug's change above gives us:

	ATA + 40 bytes of model/product (must have white space) + serial number

Under "10.3.4.2.3 Logical unit name derived from the model number and
serial number" the spec says:

	NOTE 9 The logical unit name using the T10 vendor identification
	format is not guaranteed to be worldwide unique, since ATA/ATAPI-7
	only requires the combination of the MODEL NUMBER field and SERIAL
	NUMBER field to be unique for a given manufacturer but defines no
	manufacturer identification field.

I don't know why they have this given the above. So it is possible (though
unlikely?) that model numbers will overlap, and so scsi_id values too?

If we put had an actual vendor in the sdev->vendor, we could use page 0x83
type 0 with no name collisions (if that vendor + model actually gives us
unique serial numbers). 

Why does the SAT translation spec have the vendor identification of ATA???

The "logical unit name derived from the world wide name" looks nicer, but I
assume not all vendors support that.

-- Patrick Mansfield


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37&alloc_id\x16865&op=click
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

  parent reply	other threads:[~2006-01-06 19:46 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-21 18:05 /dev/disk/by-id incomplete and unhelpful for SATA drives Chris Paulson-Ellis
2005-12-21 18:55 ` Kay Sievers
2005-12-21 21:57 ` Chris Paulson-Ellis
2005-12-22  4:35 ` Kay Sievers
2005-12-22 11:24 ` Chris Paulson-Ellis
2005-12-22 18:35 ` Bill Nottingham
2005-12-22 21:08 ` David Liontooth
2005-12-22 22:48 ` Chris Paulson-Ellis
2005-12-23  0:12 ` Chris Paulson-Ellis
2006-01-06  1:36   ` patman
2006-01-06  2:57     ` Douglas Gilbert
2006-01-06 12:39       ` [PATCH] " Douglas Gilbert
2006-01-06 13:34         ` Chris Paulson-Ellis
2006-01-06 18:58           ` Patrick Mansfield
2006-01-06 19:46         ` Patrick Mansfield [this message]
2006-01-06 23:44           ` Douglas Gilbert
2006-03-06 20:08         ` Jeff Garzik
2006-03-07 17:05           ` Douglas Gilbert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060106194652.GB6404@aracnet.com \
    --to=patman@aracnet.com \
    --cc=chris@edesix.com \
    --cc=dougg@torque.net \
    --cc=jgarzik@pobox.com \
    --cc=linux-hotplug-devel@lists.sourceforge.net \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=notting@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).