goggin, edward wrote:
I don't see a way around needing to use pre-allocated bio memory which is reserved strictly for this purpose -- albeit it is possible that a single bio could be reserved for making progress in serial fashion across all multipaths which are in this state.
Hey back on the subject of bio allocations. Is failback going to stay in userspace? If so, the bio allocation there suffers from the same problem. Would it work to have a fs_bio_set and block_bio_set so the allocations coming into the block layer would use the fs set and everything below (like block/scsi_ioctl or hw handlers) would use the block layer one (today everyone uses the fs_bio_set which causes problems)? If you stacked multipath on top of multipath I guess this would not work. Or will you need per device bio sets? For sg io there other allocations, so this just handles the bio itself.