Remove the magic mfi_array is 288 bytes and just use the
sizeof the array since it is not 288 bytes.
Change reporting of a "SYSTEM" disk to "JBOD" to match
LSI MegaCli and firmware reporting.
This means that fiutil command to "create jbod" is now a
little confusing since a RAID per drive is not really what
LSI defines JBOD to be. This should be fixed in the future
and support added to really create LSI JBOD and enable that
feature on cards that support it.
make the mfi_array 288 bytes, remove this magic number and the
calculations that go with it. Use the MFI_MAX_ROW_SIZE and
sizeof(struct mfi_array) in place of the prior calculations.
Change reporting a disk as "SYSTEM" when it is a "JBOD" reported
by the firmware and MegaCli. A JBOD appears as /dev/mfisyspd<n>.
This also means the mfiutil command to "create jbod" is now a
little confusing since a RAID per drive is not really what LSI
defines JBOD to be. In the future mfiutil should have an option
to create real JBOD's and enable that option in RAID controllers
that support it. In testing, it appears the RAID cache is not
used with JBOD but is with the RAID per disk. When this is
implemented more testing should be done to determine the pro's and
con's of JBOD versus RAID per disk.
Reviewed by: jhb
items. While parsing the arrays input, it's possible that we reach the
error path before initializing the 'arrays' pointer, which in turn leads
to a NULL deference.
Submitted by: Garrett Cooper
MFC after: 1 week
When a status pointer is passed in mfi_dcmd_command does not return an
errno (if the ioctl is successful), so move the test for NO_HW_PRESENT
outside of the error case. This should fix incorrect reporting for
systems with a dead or no battery.
Additionally, handle error codes other than NO_HW_PRESENT by omitting
the battery capacity display. LSI's supercap-based parts (CV series)
report their data using the same interface as battery-based parts,
except that they do not include the capacity stats (state of charge,
cumulative charge cycles, etc.)
Reviewd by: jhb, bz
Tested by: pluknet@, Garrett Cooper
PR: bin/160581
MFC after: 1 week
and use a loop so that multiple cache commands can be strung together on
the command line into a single update to the volume's properties.
Reviewed by: bz
Approved by: re (kib)
MFC after: 1 week
new line after the pd state information as well, so move it to the outside
of the block.
Submitted by: Mark Johnston at Sandvine Inc
MFC atfer: 3 days
Approved by: re (kib)
data when 'show drives' succeeds, often resulting in a failing exit code
even though the command worked fine.
Reviewed by: bz
Approved by: re (kib)
MFC after: 3 days
did not free memory (1) or close the file descriptor (2) in error cases.
Reported by: Mark Johnston (1)
Reported by: attilio (2)
Reviewed by: jhb
Sponsored by: Sandvine Incorporated
MFC after: 1 week
These cause problems when trying to include the header in a C++ project.
Rename them to 'evt_class', and track the change in mfi and mfiutil.
Submitted by: Mark Johnston
Sponsored by: Sandvine Incorporated
Reviewed by: jhb@
MFC after: 1 week
commands for a given adapter. Specifically, it shows the status of any
drive or volume activities currently in progress similar to the
'drive process' and 'volume progress' commands.
Reviewed by: emaste
MFC after: 1 week
back-up is missing or dead. The current state of this field is reported
in 'mfiutil cache <volume>' and can be adjusted via
'mfiutil cache <volume> bad-bbu-write-cache <enable|disable>'. This
setting should generally be disabled to avoid data loss.
MFC after: 1 week
command.
It was possible to read a value of zero from a busy controller used
as the divisor to calculate the remaining rebuild time.
Reported by: Pavel Udovenko <udovenko att nic.ru>
Discussed with: jhb
Approved by: kib (mentor)
MFC after: 1 week
controllers. Controller, array, and drive status can be checked, basic
attributes can be changed, and arrays and spares can be created and deleted.
Controller firmware can also be flashed.
This does not replace MegaCLI, found in ports, as that is officially sanctioned
and supported by LSI and includes vastly more functionality. However, mfiutil
is open source and guaranteed to provide basic functionality, which can be
especially useful if you have a problem and can't get MegaCLI to work.
Approved by: re
Obtained from: Yahoo! Inc.