>On 11/13/24 10:03 PM, hexue wrote: >> diff --git a/man/io_uring_setup.2 b/man/io_uring_setup.2 >> index 2f87783..fa928fa 100644 ... > >This flag must be used with > >> +.B IORING_SETUP_IOPOLL >> +flag. hybrid poll is a new > >Like before, skip new. Think about what happens when someone reads this >in 5 years time. What does new mean? Yes it may be new now, but docs >are supposed to be timeless. > >> +feature baed on iopoll, this could be a suboptimal solution when running > >based on > >> +on a single thread, it offers higher performance than IRQ and lower CPU >> +utilization than polling. Similarly, this feature also requires the devices >> +to support polling configuration. > >This doesn't explain how it works. I'd say something like: > >Hybrid io polling differs from strict polling in that it will delay a >bit before doing completion side polling, to avoid wasting too much CPU. >Like IOPOLL, it requires that devices support polling. Thanks, will change the description. ... >> + return -EINVAL; >> + >The kernel should already do this, no point duplicating it in liburing. > >The test bits look much better now, way simpler. I'll just need to >double check that they handle EINVAL on setup properly, and EOPNOTSUPP >at completion time will turn off further testing of it. Did you run it >on configurations where hybrid io polling will both fail at setup time, >and at runtime (eg the latter where the kernel supports it, but the >device/fs does not)? Yes, I have run both of these error configurations. The running cases are: hybrid poll without IORING_SETUP_IOPOLL and device with incorrect queue configuration, EINVAL and EOPNOTSUPP are both identified. -- hexue