Hi Thomas, Hackers, While looking at d1c01b79d4ae (aio: Adjust I/O worker pool automatically), I had a question about the intended semantics for io_min_workers > io_max_workers.
Both GUCs currently have independent 1..MAX_IO_WORKERS range checks, so a configuration such as: io_min_workers = 32 io_max_workers = 1 is accepted. In maybe_start_io_workers_scheduled_at(), the io_max_workers check comes first, so io_max_workers effectively caps the minimum: if (io_worker_count >= io_max_workers) return 0; if (io_worker_count < io_min_workers) return TIMESTAMP_MINUS_INFINITY; Is that intended? If so, should we document that the effective minimum is capped by io_max_workers, or perhaps emitting a warning similar to the autovacuum_max_workers / autovacuum_worker_slots case? -- Best, Xuneng
