Commit Graph

17 Commits

Author SHA1 Message Date
Justin T. Gibbs
416494d7c9 Plumb device physical path reporting from CAM devices, through GEOM and
DEVFS, and make it accessible via the diskinfo utility.

Extend GEOM's generic attribute query mechanism into generic disk consumers.
sys/geom/geom_disk.c:
sys/geom/geom_disk.h:
sys/cam/scsi/scsi_da.c:
sys/cam/ata/ata_da.c:
	- Allow disk providers to implement a new method which can override
	  the default BIO_GETATTR response, d_getattr(struct bio *).  This
	  function returns -1 if not handled, otherwise it returns 0 or an
	  errno to be passed to g_io_deliver().

sys/cam/scsi/scsi_da.c:
sys/cam/ata/ata_da.c:
	- Don't copy the serial number to dp->d_ident anymore, as the CAM XPT
	  is now responsible for returning this information via
	  d_getattr()->(a)dagetattr()->xpt_getatr().

sys/geom/geom_dev.c:
	- Implement a new ioctl, DIOCGPHYSPATH, which returns the GEOM
	  attribute "GEOM::physpath", if possible.  If the attribute request
	  returns a zero-length string, ENOENT is returned.

usr.sbin/diskinfo/diskinfo.c:
	- If the DIOCGPHYSPATH ioctl is successful, report physical path
	  data when diskinfo is executed with the '-v' option.

Submitted by:	will
Reviewed by:	gibbs
Sponsored by:	Spectra Logic Corporation

Add generic attribute change notification support to GEOM.

sys/sys/geom/geom.h:
	Add a new attrchanged method field to both g_class
	and g_geom.

sys/sys/geom/geom.h:
sys/geom/geom_event.c:
	- Provide the g_attr_changed() function that providers
	  can use to advertise attribute changes.
	- Perform delivery of attribute change notifications
	  from a thread context via the standard GEOM event
	  mechanism.

sys/geom/geom_subr.c:
	Inherit the attrchanged method from class to geom (class instance).

sys/geom/geom_disk.c:
	Provide disk_attr_changed() to provide g_attr_changed() access
	to consumers of the disk API.

sys/cam/scsi/scsi_pass.c:
sys/cam/scsi/scsi_da.c:
sys/geom/geom_dev.c:
sys/geom/geom_disk.c:
	Use attribute changed events to track updates to physical path
	information.

sys/cam/scsi/scsi_da.c:
	Add AC_ADVINFO_CHANGED to the registered asynchronous CAM
	events for this driver.  When this event occurs, and
	the updated buffer type references our physical path
	attribute, emit a GEOM attribute changed event via the
	disk_attr_changed() API.

sys/cam/scsi/scsi_pass.c:
	Add AC_ADVINFO_CHANGED to the registered asynchronous CAM
	events for this driver.  When this event occurs, update
	the physical patch devfs alias for this pass instance.

Submitted by:	gibbs
Sponsored by:	Spectra Logic Corporation
2011-06-14 17:10:32 +00:00
Xin LI
f5d62d03ad Don't consider ioctl returning error as a fatal error and move on to next
disk.  When multiple devices are specified, a non-supporting ioctl will
cause diskinfo(8) to stop at the point which does not seem to be necessary.

Ok'ed by:	phk
MFC after:	1 month
2011-02-08 11:32:22 +00:00
Ed Schouten
71ccf09269 The last big commit: let usr.sbin/ use WARNS=6 by default. 2010-01-02 11:07:44 +00:00
Alexander Motin
851b967a27 Make diskinfo report disk stripe size and offset. It should help users to
make file systems optimally aligned and tuned for better performance.
2009-12-24 21:39:30 +00:00
Pawel Jakub Dawidek
18e5fe2840 Don't bother obtaining the ident if we are not going to print it. 2009-09-03 22:19:09 +00:00
Pawel Jakub Dawidek
c5791aae52 Print provider's ident when in verbose mode. 2007-05-06 00:25:21 +00:00
Ruslan Ermilov
59a3c79da6 Sort sections. 2005-01-18 20:02:45 +00:00
Ruslan Ermilov
9046f8cd17 Add -c to SYNOPSIS and usage(). 2005-01-11 10:53:09 +00:00
Søren Schmidt
6a33b3c60b Add -c option that calculates the overhead of read I/O ops. 2004-11-09 12:28:41 +00:00
Pawel Jakub Dawidek
8a4979c259 Actually negative size is possible for file system, but not for disk. 2004-05-25 12:11:13 +00:00
Pawel Jakub Dawidek
991d64ece8 In verbose mode print disk sizes in human readable form as well.
OK'ed by:	phk
2004-05-24 22:52:32 +00:00
Poul-Henning Kamp
cbf67506f6 Make WARNS=5 clean.
Prodded by:	Stefan Farfeleder <stefan@fafoe.narf.at>
2004-04-05 08:15:04 +00:00
Ruslan Ermilov
9137d52af5 Sync manpage's synopsis with usage(). 2004-03-30 07:37:04 +00:00
Ruslan Ermilov
a388918d35 Assorted mdoc(7) fixes. 2003-05-31 18:07:09 +00:00
Gordon Tetlow
a885db9a13 Correct a type in the bugs section. Also turn it into a list.
Approved by:	re(murray)
2003-05-11 22:22:10 +00:00
Poul-Henning Kamp
b8c2d40de1 I forgot a rather crucial cast when I made this sectorsize agnostic.
Tune iteration counts a bit.
2003-04-09 14:25:04 +00:00
Poul-Henning Kamp
a362eb6374 Diskinfo is a small program to access the basic properties of a disk device:
sectorsize, mediasize etc.

It also contains a small and naïve benchmark which reports on seek
and transfer performance.
2003-04-09 10:52:10 +00:00