trim: added debug output.

* Can you give it another try, Alexander? The outcome won't change, I'm afraid,
  but maybe we'll know some more afterwards.
This commit is contained in:
Axel Dörfler
2014-02-15 20:50:57 +01:00
parent 8f4db360bc
commit ef18b77adc
2 changed files with 19 additions and 0 deletions
@@ -816,6 +816,13 @@ AHCIPort::ScsiUnmap(scsi_ccb* request, scsi_unmap_parameter_list* unmapBlocks)
uint32 scsiRangeCount = B_BENDIAN_TO_HOST_INT16(
unmapBlocks->block_data_length) / sizeof(scsi_unmap_block_descriptor);
dprintf("TRIM SCSI:\n");
for (uint32 i = 0; i < scsiRangeCount; i++) {
dprintf("[3%" B_PRIu32 "] %" B_PRIu64 " : %" B_PRIu32 "\n", i,
B_BENDIAN_TO_HOST_INT64(unmapBlocks->blocks[i].lba),
B_BENDIAN_TO_HOST_INT32(unmapBlocks->blocks[i].block_count));
}
uint32 scsiIndex = 0;
uint32 scsiLastBlocks = 0;
uint32 maxLBARangeCount = fMaxTrimRangeBlocks * 512 / 8;
@@ -886,6 +893,13 @@ AHCIPort::ScsiUnmap(scsi_ccb* request, scsi_unmap_parameter_list* unmapBlocks)
}
}
dprintf("TRIM AHCI:\n");
for (uint32 i = 0; i < lbaRangeCount; i++) {
uint64 value = B_HOST_TO_LENDIAN_INT64(lbaRanges[i]);
dprintf("[3%" B_PRIu32 "] %" B_PRIu64 " : %" B_PRIu64 "\n", i,
value >> 48, value & ((uint64)1 << 48) - 1);
}
sata_request sreq;
sreq.SetATA48Command(ATA_COMMAND_DATA_SET_MANAGEMENT, 0,
(lbaRangesSize + 511) / 512);
@@ -2213,6 +2213,11 @@ BlockAllocator::_TrimNext(fs_trim_data& trimData, uint32 maxRanges,
if (!pushed || force) {
// Trim now
trimData.trimmed_size = 0;
dprintf("TRIM FS:\n");
for (uint32 i = 0; i < trimData.range_count; i++) {
dprintf("[3%" B_PRIu32 "] %" B_PRIu64 " : %" B_PRIu64 "\n", i,
trimData.ranges[i].offset, trimData.ranges[i].size);
}
if (ioctl(fVolume->Device(), B_TRIM_DEVICE, &trimData,
sizeof(fs_trim_data)) != 0) {
return errno;