Hi LVM Team! A very good day to you. I have a question about the chunk size configuration supported on a thin pool and its relation to the exported discard_granularity on the many thin volumes from that pool.
Per the docs, chunk sizes range from 64K to 2M and must be a multiple of 64K. So I assume , any integral units of 64K, for example, 192K (which is three times 64K, is also supported, even though it's not a power of 2). Now, I need confirmation on the correct behavior: I've observed that thin volumes from a thin pool use the chunk size as the discard granularity. To my understanding, the block layer code heavily assumes that the discard granularity is a power of 2. In this case, this is not honoured, and I do not fully understand the reason for or the impact of this behavior. Can you please help me understand what this setting means? a) thin pools can safely support any integral multiple of 64K chunk size b) thin volumes always export chunk size as discard granularity c) thin volumes exporting a non power of 2 discard granularity implies what? d) what else is impacted here outside discard - and its behavior in this case. Regular IO activity is fine, as discard granularity do not impact it. e) anything else surrounding this context that is relevant to support this configuration. As always, thank you so much for your inputs. Best regards LN
