On 5/3/24 1:24 PM, Christophe JAILLET wrote: > Le 03/05/2024 ? 20:41, Jens Axboe a ?crit : >> On 5/3/24 11:37 AM, Breno Leitao wrote: >>> @@ -631,7 +631,8 @@ static int io_wq_worker(void *data) >>> bool exit_mask = false, last_timeout = false; >>> char buf[TASK_COMM_LEN]; >>> - worker->flags |= (IO_WORKER_F_UP | IO_WORKER_F_RUNNING); >>> + set_bit(IO_WORKER_F_UP, &worker->flags); >>> + set_bit(IO_WORKER_F_RUNNING, &worker->flags); >> >> You could probably just use WRITE_ONCE() here with the mask, as it's >> setup side. >> > > Or simply: > set_mask_bits(&worker->flags, 0, IO_WORKER_F_UP | IO_WORKER_F_RUNNING); Looks like overkill, as we don't really need that kind of assurances here. WRITE_ONCE should be fine. Not that it _really_ matters as it's not a performance critical part, but it also sends wrong hints to the reader of the code on which kind of guarantees are needing here. -- Jens Axboe