We currently have three of them, one normal work queue item, and two delayed work queue items. The two delayed items differ in that one of them only runs the queue it was previously stopped, that's it. The non-delayed one is identical to the non stopped checking delayed variant. Sending this out for early review, as I'll be heading on vacation shortly. This is untested, just compiled. This shrinks the size of a hardware queue from 832 bytes (13 cachelines) to 704 bytes (11 cachelines) on my setup. That's quite a substantial win. Patches are against my 4.12 branch. -- Jens Axboe