On 01/08/2020 20:01, Jens Axboe wrote: > On 8/1/20 9:37 AM, Matthew Wilcox wrote: >> On Sat, Aug 01, 2020 at 01:36:33PM +0300, Pavel Begunkov wrote: >>> Use a local var to collect flags in kiocb_set_rw_flags(). That spares >>> some memory writes and allows to replace most of the jumps with MOVEcc. >>> >>> Signed-off-by: Pavel Begunkov <asml.silence@xxxxxxxxx> >> >> Reviewed-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> >> >> If you want to improve the codegen here further, I would suggest that >> renumbering the IOCB flags to match the RWF flags would lead to better >> codegen (can't do it the other way around; RWF flags are userspace ABI, >> IOCB flags are not). iocb_flags() probably doesn't get any worse because >> the IOCB_ flags don't have the same numbers as the O_ bits (which differ >> by arch anyway). > > Yeah that's not a bad idea, would kill a lot of branches. Is that common here to do so? I've done this for io_uring flags a while ago, but left RWF alone at the time, reluctant to check for possible complications (e.g. bit magic). -- Pavel Begunkov