在 2023/3/28 22:19, David Howells 写道:
Jia Zhu <[email protected]> wrote:+ if (!xa_empty(xa)) { + xa_lock(xa); + xa_for_each_marked(xa, index, req, CACHEFILES_REQ_NEW) { + if (!cachefiles_ondemand_is_reopening_read(req)) { + mask |= EPOLLIN; + break; + } + } + xa_unlock(xa); + }I wonder if there's a more efficient way to do this. I guess it depends on how many reqs you expect to get in a queue. It might be worth taking the rcu_read_lock before calling xa_lock() and holding it over the whole loop.
Thanks for the advice, will use rcu_read_lock(unlock) to replace it.
David
-- Linux-cachefs mailing list [email protected] https://listman.redhat.com/mailman/listinfo/linux-cachefs
