On 2/13/19 2:50 AM, Bob Liu wrote: > rd_hint is a bitmap for stacked layer support(see patch 4/9), > set a bit to 1 means already read from the corresponding mirror device. > > rd_hint will be set properly recording read i/o went to which real device > during end_bio(). > If the upper layer want to retry other mirrors, just preserve the returned > bi_rd_hint and resubmit bio. > > The upper layer e.g fs can set bitmap_zero(rd_hint) if don't care about alt > mirror device retry feature which is also the default setting. You just made the bio 16 bytes bigger on my build, which is an increase of 12.5% and spills it into a third cacheline. That's not going to work at all. At least look at where you are placing this thing. That goes for the request as well, you can just toss members in there at random. Also, why is BLKDEV_MAX_MIRRORS in types.h? That makes very little sense. Look into options of carrying this elsewhere, or (at the very least) making it dependent on whoever needs it. This is NOT a negligible amount of wasted space. -- Jens Axboe