Hide Forgot
Description of problem: when i do provisioning test for scsi-hd interface with discard=on under UNMAP mode, but it fail to discard the free space after remove the data in guest, we could not see any sector rollback. Also tried the scsi-block did not hit such issue. Version-Release number of selected component (if applicable): host info: 3.10.0-60.el7.x86_64 qemu-kvm-rhev-1.5.3-21.el7.x86_64 seabios-1.7.2.2-4.el7.x86_64 guest info: 3.10.0-60.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1.generate a scsi disk with scsi_debug using UNMAP mode. # modprobe scsi_debug dev_size_mb=1024 lbpu=1 # lsscsi [0:0:0:0] disk ATA ST3500413AS HP64 /dev/sda [2:0:0:0] cd/dvd hp DVD-RAM GH80N RF01 /dev/sr0 [6:0:0:0] disk EQLOGIC 100E-00 5.0 /dev/sdb [12:0:0:0] disk Linux scsi_debug 0004 /dev/sdc # cat /sys/block/sdc/device/scsi_disk/12\:0\:0\:0/provisioning_mode unmap # cat /sys/bus/pseudo/drivers/scsi_debug/map <----------nothing output 2.boot a guest with /dev/sdc as a ide/ahci data disk, like: # /usr/libexec/qemu-kvm -M pc -S -cpu SandyBridge -enable-kvm...-drive file=/dev/sdc,if=none,id=drive-data-disk,cache=none,format=raw,aio=native,werror=stop,rerror=stop,discard=on -device virtio-scsi-pci,id=scsi1,bus=pci.0,addr=0x7 -device scsi-hd,drive=drive-data-disk,bus=scsi1.0,id=data-disk 3.Make file system (both xfs and ext4 hit it) to the disk in the guest. # mkfs.xfs /dev/sdb meta-data=/dev/sdb isize=256 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal log bsize=4096 blocks=12800, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 4.On the host. # cat /sys/bus/pseudo/drivers/scsi_debug/map 5.in the guest # mount /dev/sdb /home/test # dd if=/dev/zero of=/home/test/file dd: writing to ‘/home/test/file’: No space left on device 1928857+0 records in 1928856+0 records out 987574272 bytes (988 MB) copied, 1.74507 s, 566 MB/s 6.cat map in host. # cat /sys/bus/pseudo/drivers/scsi_debug/map 7.in guest. # rm -f /home/test/file # fstrim /home/test 8.cat map in host. # cat /sys/bus/pseudo/drivers/scsi_debug/map Actual results: after step 4, # cat /sys/bus/pseudo/drivers/scsi_debug/map 0-255,524288-524291,524296-524319,1048576-1048579,1048584-1151007,1572864-1572867,1572872-1572895,2096896-2097151 after step 6, # cat /sys/bus/pseudo/drivers/scsi_debug/map 0-524279,524288-524291,524296-524319,524352-1048567,1048576-1048579,1048584-1151007,1151040-1539975,1572864-1572867,1572872-1572895,1572928-2064447,2096896-2097151 after step 8, the cat map output did not change. # cat /sys/bus/pseudo/drivers/scsi_debug/map 0-524279,524288-524291,524296-524319,524352-1048567,1048576-1048579,1048584-1151007,1151040-1539975,1572864-1572867,1572872-1572895,1572928-2064447,2096896-2097151 Expected results: see SCSI disc map info and compare with step8, we should see some sector rollback, just like scsi-block, like: e.g:...-drive file=/dev/sdc,if=none,id=drive-data-disk,cache=none,format=raw,aio=native,werror=stop,rerror=stop,discard=on -device virtio-scsi-pci,id=scsi1,bus=pci.0,addr=0x7 -device scsi-block,drive=drive-data-disk,bus=scsi1.0,id=data-disk after step 4, # cat /sys/bus/pseudo/drivers/scsi_debug/map 0-255,262144-262147,262152-262175,524288-524291,524296-524319,786432-786435,786440-786463,1048576-1048579,1048584-1151007,1310720-1310723,1310728-1310751,1572864-1572867,1572872-1572895,1835008-1835011,1835016-1835039,2096896-2097151 after step 6, # cat /sys/bus/pseudo/drivers/scsi_debug/map 0-262135,262144-262147,262152-262175,262208-524279,524288-524291,524296-524319,524352-786423,786432-786435,786440-786463,786496-1048567,1048576-1048579,1048584-1151007,1151040-1310479,1310720-1310723,1310728-1310751,1310784-1572855,1572864-1572867,1572872-1572895,1572928-1769607,1769616-1834991,1835008-1835011,1835016-1835039,1835072-2031839,2096896-2097151 after step 8, # cat /sys/bus/pseudo/drivers/scsi_debug/map 0-95,262144-262147,262152-262175,524288-524291,524296-524319,786432-786435,786440-786463,1048576-1048579,1048584-1151007,1310720-1310723,1310728-1310751,1572864-1572867,1572872-1572895,1835008-1835011,1835016-1835039 Additional info:
I cannot reproduce this with a RHEL6.3 (2.6.32-358.el6) guest. After step 4: $ cat /sys/bus/pseudo/drivers/scsi_debug/map 0-255,524288-524291,524296-524319,1048576-1048579,1048584-1069087,1572864-1572867,1572872-1572895,2096896-2097151 After step 6: $ cat /sys/bus/pseudo/drivers/scsi_debug/map 0-524279,524288-524291,524296-524319,524352-1048567,1048576-1048579,1048584-1069087,1069120-1539455,1572864-1572867,1572872-1572895,1572928-2064967,2096896-2097151 After step 8: 0-95,524288-524291,524296-524319,1048576-1048579,1048584-1069087,1572864-1572867,1572872-1572895 Will try RHEL7 later.
*** This bug has been marked as a duplicate of bug 1039501 ***