[10:45] <alexzzz> Hi! I'm trying to test hybrid polling. Using ubuntu 16.04 with 4.10.0-42-generic kernel (from linux-generic-hwe-16.04 package). When i do echo 0 > /sys/block/sdc/queue/io_poll_delay then i get error: -bash: echo: write error: Invalid argument. I'm logged in as root, so it is not user permissions problem. Did i miss something?
[10:48] <alexzzz> I'm using blk-mq for this disk. scsi_mod.use_blk_mq=y while booting and scheduler for this disk is 'none', which means that scsi_mq is active
[11:26] <alexzzz> Any suggestions?:( i really don't know where to look at now
[11:26] <juergh> alexzzz, looking
[11:26] <alexzzz> juergh: Thak you!:)
[11:26] <juergh>         if (!q->request_fn && !q->mq_ops)
[11:26] <juergh>                 return -EINVAL;
[11:26] <juergh> that's what you're hitting
[11:28] <juergh> oh no wait. that's the one:
[11:28] <juergh>         if (!q->mq_ops || !q->mq_ops->poll)
[11:28] <juergh>                 return -EINVAL;
[11:35] <juergh> alexzzz, you need to write 0 to /sys/block/sdc/queue/io_poll first to enable polling (according to the docs).
[11:35] <juergh> maeh, make that 'write 1' :-)
[11:35] <alexzzz> Hm, but it is 1
[11:35] <juergh> :-(
[11:35] <alexzzz> it is a default behavior
[11:36] <alexzzz> and i can't turn polling off, echo 0 to io_poll fails with same error invalid argument
[11:40] <TJ-> alexzzz: any apparmor denials or other clues in the system logs?
[11:44] <alexzzz> TJ-: no, nothing in logs
[12:05] <juergh> alexzzz, The low-level driver needs to support IO polling. Currently, only NVME supports it so you're out of luck with a SCSI disk.
[12:05] <juergh> $ find drivers/ -type f -name '*.c' | xargs grep -A20 '^static.* struct blk_mq_ops' | grep '\.poll'
[12:05] <juergh> drivers/nvme/host/rdma.c-	.poll		= nvme_rdma_poll,
[12:05] <juergh> drivers/nvme/host/pci.c-	.poll		= nvme_poll,
[12:05] <juergh> drivers/nvme/host/fc.c-	.poll		= nvme_fc_poll,
[12:06] <alexzzz> Oh
[12:07] <alexzzz> juergh: Thank you very much!
[12:07] <juergh> alexzzz, np
[12:07] <alexzzz> i will try it on NVMe some time later