Native pinned pollers can often have lower I/O or VTs activity, which can lead them to decide to park.
If the carrier is recruited as a searcher but I/O happen as well, it would awake handling I/O before calling unpark, which means it would accumulate a backlog of its own VTs, while adding on top the one stolen as a searcher, after them, likely increasing its latency!
We should guard the stealing activity by checking if the current scheduler has no tasks, before thinking to help others - but we should still try to propagate the chain, if still needed.
Native pinned pollers can often have lower I/O or VTs activity, which can lead them to decide to park.
If the carrier is recruited as a searcher but I/O happen as well, it would awake handling I/O before calling unpark, which means it would accumulate a backlog of its own VTs, while adding on top the one stolen as a searcher, after them, likely increasing its latency!
We should guard the stealing activity by checking if the current scheduler has no tasks, before thinking to help others - but we should still try to propagate the chain, if still needed.