+       if (!test_bit(QUEUE_FLAG_POLL, &q->queue_flags))
+               bio->bi_opf &= ~REQ_HIPRI;
+

Maybe we can simply check (q->queue_flags & (1 << QUEUE_FLAG_POLL)) and
avoid the extra atomic operation in the host path?

Would it make sense?

test_bit is not usually implemented as an atomic operation.

Take a look at e.g.

arch/x86/include/asm/bitops.h:constant_test_bit()

Ah.. But its still read from volatile argument so still more expensive?

Reply via email to