1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
virtio-scsi gives improper discard sysfs entries
Apologies if this is just an inherent part of paravirtualization that should be expected.
In my host, I have an LVM thin pool with chunk_size 128MB. Within it, I have a thin volume "tmp". In the host:
# fdisk -l /dev/lvm/tmp
Disk /dev/lvm/tmp: 256 MiB, 268435456 bytes, 524288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 262144 bytes / 134217728 bytes
Disklabel type: gpt
Disk identifier: BAE3154E-6E85-F642-8129-BAD7B58B2775
Device Start End Sectors Size Type
/dev/lvm/tmp1 2048 524254 522207 255M Linux filesystem
$ lsblk
...
└─lvm-tmp 254:13 0 256M 0 lvm
└─lvm-tmp1 254:14 0 255M 0 part
$ cat /sys/dev/block/254:13/discard_alignment
0
$ cat /sys/dev/block/254:13/queue/discard_granularity
134217728
$ cat /sys/dev/block/254:13/queue/discard_max_bytes
17179869184
$ cat /sys/dev/block/254:13/queue/discard_max_hw_bytes
0
$ cat /sys/dev/block/254:13/queue/discard_zeroes_data
0
$ cat /sys/dev/block/254:14/discard_alignment
133169152
$ cat /sys/dev/block/254:14/queue/discard_granularity
134217728
$ cat /sys/dev/block/254:14/queue/discard_max_bytes
17179869184
$ cat /sys/dev/block/254:14/queue/discard_max_hw_bytes
0
$ cat /sys/dev/block/254:14/queue/discard_zeroes_data
0
If this is given to QEMU using virtio-scsi:
-device virtio-scsi-pci,id=scsi1 \
-drive driver=raw,node-name=hdb,file=/dev/lvm/tmp,if=none,discard=unmap,id=hd2 \
-device scsi-hd,drive=hd2,bootindex=1 \
Then incorrect values are given:
$ lsblk
...
sdb 8:16 0 256M 0 disk
└─sdb1 8:17 0 255M 0 part /mnt
$ cat /sys/dev/block/8:16/discard_alignment
0
$ cat /sys/dev/block/8:16/queue/discard_granularity
4096
$ cat /sys/dev/block/8:16/queue/discard_max_bytes
1073741824
$ cat /sys/dev/block/8:16/queue/discard_max_hw_bytes
1073741824
$ cat /sys/dev/block/8:16/queue/discard_zeroes_data
0
$ cat /sys/dev/block/8:17/discard_alignment
133169152
And, there isn't even a /sys/dev/block/8:17/queue direcotry.
|