[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH 00/11] storage_scsi: Stable SCSI host addressing support



The SCSI host number is not stable on Linux platform, the number
can be changed after a system rebooting or scsi kernel modules
reloaded. To have a stable address for the scsi_host adapter of
scsi pool, this introduces new XMLs like:

  <adapter type='scsi_host' parent='pci_0000_00_1f_2' unique_id='5'/>

Where "parent" is the parent device of the scsi host, it should be
consistent with the name style what node device driver uses (Either
udev backend style or HAL backend style), or the PCI address in format
"domain:bus:slot:function" format. "unique_id" is the number exposed
by sysfs. E.g:

% cat /sys/bus/pci/devices/0000:00:1f.2/ata5/host4/scsi_host/host4/unique_id
5

The attribute "parent" is required, attribute "unique_id" is optional,
if it's omitted, the scsi host which has smallest unique_id under the
"parent" device will be used.

"parent" and the old "name" attribute are exclusive, since they are both to
indicate scsi host number.

Osier Yang (11):
  storage: Add a struct for scsi_host type adapter
  storage: Introduce new XMLs for stable SCSI host addressing
  util: Add a util to traverse directory tree
  util: Add util to find PCI device address by its vendor and product
    IDs
  util: Add util to parse the stable scsi host address
  storage_scsi: Don't ignore the return value of VIR_STRDUP
  storage_scsi: Translate the stable address into scsi host number
  util: Add util to pad string
  storage_scsi: Allow the direct PCI address for 'parent'
  util: Add a util to guess the scsi host name with specified "parent"
  storage_scsi: Allow the omitted 'unique_id'

 docs/schemas/basictypes.rng                        |  20 +-
 src/conf/storage_conf.c                            |  66 ++-
 src/conf/storage_conf.h                            |   7 +-
 src/libvirt_private.syms                           |   5 +
 src/phyp/phyp_driver.c                             |   8 +-
 src/storage/storage_backend_scsi.c                 | 152 +++++-
 src/util/virstring.c                               |  38 ++
 src/util/virstring.h                               |   6 +
 src/util/virutil.c                                 | 549 +++++++++++++++++++++
 src/util/virutil.h                                 |  67 +++
 .../pool-scsi-type-scsi-host-stable.xml            |  15 +
 .../pool-scsi-type-scsi-host-stable.xml            |  18 +
 tests/storagepoolxml2xmltest.c                     |   1 +
 .../ata1/host0/scsi_host/host0/unique_id           |   1 +
 .../ata2/host1/scsi_host/host1/unique_id           |   1 +
 tests/sysfs/devices/pci0000:00/0000:00:1f.1/device |   1 +
 tests/sysfs/devices/pci0000:00/0000:00:1f.1/vendor |   1 +
 tests/sysfs/devices/pci0000:00/0000:00:1f.2/device |   1 +
 tests/sysfs/devices/pci0000:00/0000:00:1f.2/vendor |   1 +
 tests/sysfs/devices/pci0000:00/0000:00:1f.4/device |   1 +
 tests/sysfs/devices/pci0000:00/0000:00:1f.4/vendor |   1 +
 tests/utiltest.c                                   | 137 +++++
 22 files changed, 1076 insertions(+), 21 deletions(-)
 create mode 100644 tests/storagepoolxml2xmlin/pool-scsi-type-scsi-host-stable.xml
 create mode 100644 tests/storagepoolxml2xmlout/pool-scsi-type-scsi-host-stable.xml
 create mode 100644 tests/sysfs/bus/pci/devices/0000:00:1f.2/ata1/host0/scsi_host/host0/unique_id
 create mode 100644 tests/sysfs/bus/pci/devices/0000:00:1f.2/ata2/host1/scsi_host/host1/unique_id
 create mode 100644 tests/sysfs/devices/pci0000:00/0000:00:1f.1/device
 create mode 100644 tests/sysfs/devices/pci0000:00/0000:00:1f.1/vendor
 create mode 100644 tests/sysfs/devices/pci0000:00/0000:00:1f.2/device
 create mode 100644 tests/sysfs/devices/pci0000:00/0000:00:1f.2/vendor
 create mode 100644 tests/sysfs/devices/pci0000:00/0000:00:1f.4/device
 create mode 100644 tests/sysfs/devices/pci0000:00/0000:00:1f.4/vendor

-- 
1.8.1.4


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]