Hou Tao <houtao1@xxxxxxxxxx> writes: > Hi all, > > We need to throttle the O_DIRECT IO on data and metadata device > of a dm-thin pool and encounter some problems. If we set the > limitation on the root blkcg, the throttle works. If we set the > limitation on a child blkcg, the throttle doesn't work well. > > The reason why the throttle doesn't work is that dm-thin defers > the process of bio when the physical block of bio has not been > allocated. The bio will be submitted by the pool worker, and the > blkcg of the bio will be the blkcg of the pool worker, namely, > the root blkcg instead of the blkcg of the original IO thread. > We only set a limitation on the blkcg of the original IO thread, > so the blk-throttle doesn't work well. > > In order to handle the situation, we add a "keep_bio_blkcg" feature > to dm-thin. If the feature is enabled, the original blkcg of bio > will be saved at thin_map() and will be used during blk-throttle. Why is this even an option? I would think that you would always want this behavior. -Jeff -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel