Hi, while debugging some problems on a virtio host that supports only few dma segments per request, I noticed that the minphys function is not called in all code paths. It is only used for physio but not for other (cached) disk operations. An example trace is below.
Am I missing something or is this as broken as I think it is? I thought the minphys function is a way for a driver to say that it does not support larger transfers and that transfers are split accordingly. What's the purpose of the minphys mechanism if it does not affect all code paths? Cheers, Stefan panic() at 0x1027bcf5 panic+0x1a5/0x1061006f0 vioblk_scsi_cmd() at 0x103ecccf vioblk_scsi_cmd+0x8ff/0x106100770 sdstart() at 0x103bc4d6 sdstart+0x176/0x1061007b0 scsi_ioh_runqueue() at 0x103b3c05 scsi_ioh_runqueue+0x55/0x1061007e0 scsi_xsh_runqueue() at 0x103b3d72 scsi_xsh_runqueue+0x132/0x106100800 sdstrategy() at 0x103bc6bf sdstrategy+0x10f/0x106100830 spec_strategy() at 0x102a8b3b spec_strategy+0x5b/0x106100850 VOP_STRATEGY() at 0x102a75be VOP_STRATEGY+0x2e/0x106100870 bio_doread() at 0x102991fc bio_doread+0xbc/0x1061008a0 bread() at 0x102992c3 bread+0x13/0x1061008c0 fillinusemap() at 0x102ad6d9 fillinusemap+0xb9/0x106100920 msdosfs_mountfs() at 0x102af78d msdosfs_mountfs+0x59d/0x106100990 msdosfs_mount() at 0x102afcf6 msdosfs_mount+0x3e6/0x106100b70 sys_mount() at 0x102a6a3c sys_mount+0x36c/0x106100d90