On Thu, Feb 17, 2022 at 08:15:29PM +0800, Xiaoguang Wang wrote: > hi, > > > On Thu, Feb 17, 2022 at 10:29:21AM +0800, Guixin Liu wrote: > > > In TCMU, if backstore holds its own userspace buffer, for read cmd, the > > > data needs to be copied from userspace buffer to tcmu data area first, > > > and then needs to be copied from tcmu data area to scsi sgl pages again. > > > > > > To solve this problem, add ioctl to uio to let userspace backstore can > > > copy data between scsi sgl pages and its own buffer directly. > > > > > > Reviewed-by: Xiaoguang Wang<xiaoguang.wang@xxxxxxxxxxxxxxxxx> > > > Signed-off-by: Guixin Liu<kanie@xxxxxxxxxxxxxxxxx> > > > --- > > > drivers/uio/uio.c | 22 ++++++++++++++++++++++ > > > include/linux/uio_driver.h | 1 + > > No, sorry, thie uio driver will not be adding ioctls to them. If you > > need an ioctl, then you should not be using the UIO api but rather use a > > custom character driver instead. > > I found that early in 2015, there was developer trying to add ioctl interface > to uio framework:https://lore.kernel.org/lkml/20151005080149.GB1747@xxxxxxxxx/ See, I rejected your ioctl for the very same reasons :) It's good that I was consistent... > Some of my customers use tcm_loop & tcmu to simulate block devices, it's tcmu > driver that uses uio framework. There maybe more extra work if we tries to replace > uio with a new character driver. Why is tcmu using uio at all? > Currently tcmu has performance bottleneck, Guixin's patch uses ioctl interface > to bypass tcmu data area. I also have implemented a tcmu zero-copy feature that > allows tcmu driver map io request sgl's pages to user space, which uses ioctl > to do this mapping work, similar to network getsockopt(TCP_ZEROCOPY_RECEIVE). > > I also understand your concerns about ioctl interface. Except that replacing > uio with a new character driver in tcmu, are there any less complicated methods > to complete our needs? Thanks. I do not know what your needs are, nor what tcmu is, nor why you would want to simulate a block device to userspace like this through the uio api, sorry. good luck! greg k-h