Skip to content

Releases: westerndigitalcorporation/libzbc

Version 5.6.1

30 Jul 23:51

Choose a tag to compare

This minor release temporarily removes some tests failing on some devices from the device conformance tests. The tests removed (cross-zone write tests) need further analysis of the ZBC specifications to be correct for all devices.
This release also brings a small performance improvement which reduces device open time, which results in noticeably shorter test times.

Version 5.6.0

25 Jun 05:50

Choose a tag to compare

This release brings improvements in mainly two areas:

  • Improved handling of non-scsi zoned block devices
  • Improvements of the test suite to cover all transitions of the ZBC zone state machine as well as all sense keys and codes returned in case of invalid commands.

Some additional code cleanups are also included to improve code readability and to avoid compilation warnings with gcc 8.

Version 5.5.1

25 Apr 21:16

Choose a tag to compare

This minor release improves tests and tools command line parsing.

  • Improved tests for devices with different logical and physical block sizes
  • Improved command line parsing and error messages for the zone operation tools (open, close, finish and reset zone).
  • Added next test 01.074 to test a device response to physical sector unaligned write to a sequential zone

Version 5.5.0

20 Feb 02:30

Choose a tag to compare

This release fixes many problems with the fake backend driver (emulation mode of libzbc) and the test suite. In more details, the changes are:

  • Fix corrupted buffer address in zbc_pread() and zbc_pwrite() (incorrectly modified in the previous patches)
  • Properly handle the maximum and optimal number of open zones for drives with no limit and drives not reporting any limit.
  • Skip open zone resource tests for drives with no limit or an unreported limit on the maximum/optimal number of open zones
  • Add a new test to verify that a drive returns the correct ASC/ASCQ sense error codes when writing to a full zone (HM drives only)
  • Various improvements to the fake backend driver error handling as well as rework of the meta-data locking mechanism to avoid persistence across reboot of the meta-data lock state

Version 5.4.1

07 Dec 07:08

Choose a tag to compare

This is a minor release addressing a problem with zbc_pread() and zbc_pwrite() processing when the request needs to be split into multiple commands. The remaining changes in this release are code improvements.
The changes are:

  • Fix corrupted buffer address in zbc_pread() and zbc_pwrite()
  • Various improvements in the core SG request handling (command setup, sense buffer handling, error message print, etc)

Version 5.4.0

10 Nov 04:58

Choose a tag to compare

This release introduces many bug fixes and improvements.

  • Fixed various problems with the fake backend driver (emulation mode), in particular when using a 4K sector disk as backend storage
  • Fixed some false positive results in the test suite
  • Properly set up direct I/O operation with the SG_IO interface (SCSI and ATA bakend drivers)

Version 5.3.2

08 Sep 18:53

Choose a tag to compare

This is a minor release addressing a problem with the ZBC compliance tests which could fail to execute depending on the name of the top directory used for the entire libzbc tree.

Version 5.3.1

07 Aug 08:10

Choose a tag to compare

This minor release fixes incorrect handling within zbc_open() in the block backend driver of device mapper target devices.

Version 5.3.0

03 Aug 07:42

Choose a tag to compare

This release fixes a bug in the pread/pwrite functions and introduces performance improvements with the ATA backend driver. The changes are as follows:

  • Properly increment the buffer offset in the internal I/O loop of zbc_pread() and zbc_pwrite(). Bug found and fixed by Rajat Goel.
  • Fix compilation warning with gcc 7 in the gzbc tool. Also the non working zone search function.
  • Improve read, write and flush execution in the ATA backend driver by using SCSI commands if the system SAT layer correctly translates these commands. This generally leads to the use of NCQ commands instead of the libzbc coded unqueued DMA commands and so can improve performance in multi-threaded applications.

Version 5.2.0

30 Jun 08:15

Choose a tag to compare

This is release introduces new device open flags and improvements to the test suite. The changes are as follows:

  • Introduce the ZBC_O_DRV_BLOCK, ZBC_O_DRV_SCSI, ZBC_O_DRV_ATA and ZBC_O_DRV_FAKE device open flags to control which backend driver use is allowed when opening a device. This is especially useful for ZAC devices connected to a SAS HBA with a defective ZBC/ZAC command translation functionality. In such case, specifying only the ZBC_O_DRV_ATA flag in zbc_open() (or'ed with the access mode flags) will force libzbc to use the ATA backend driver and so bypass the HBA SAT using the ATA passthru command. If none of the ZBC_O_DRV_xxx flags are specified when executing zbc_open(), the default behavior is used and libzbc will use the first working backend driver.
  • Introduce the --ata option to the zbc_test.sh utility to force the use of the ATA backend driver for ZAC device testing