On 10/31/24 21:22, Jens Axboe wrote:
In hindsight everything is clearer, but it probably should've been known that 8 bits of ->flags would run out sooner than later. Rather than gobble up the last bit for a random use case, add a bit that controls whether or not ->personality is used as a flags2 argument. If that is the case, then there's a new IOSQE2_PERSONALITY flag that tells io_uring which personality field to read. While this isn't the prettiest, it does allow extending with 15 extra flags, and retains being able to use personality with any kind of command. The exception is uring cmd, where personality2 will overlap with the space set aside for SQE128. If they really need that, then that would have to be done via a uring cmd flag.
Interesting, I was just experimenting using the personality bits for similar purposes I mentioned but in a different way, and I even thought if anything it could be used to extend sqe flags though I'm not a huge fan of that. -- Pavel Begunkov