Re: [PATCH] sched_ext: don't BUG_ON a destroyed DSQ in process_deferred_reenq_users
Tao Cui <[email protected]>
| Newsgroups | org.kernel.vger.bpf,dev.linux.lists.sched-ext,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
在 2026/8/15 02:56, Tejun Heo 写道:
> Hello,
>
> On Tue, Aug 11, 2026 at 03:59:12PM +0800, Tao Cui wrote:
>> - BUG_ON(dsq->id & SCX_DSQ_FLAG_BUILTIN);
>> + /* destroy_dsq() may race and invalidate @dsq; skip */
>> + if (unlikely(dsq->id & SCX_DSQ_FLAG_BUILTIN))
>> + continue;
>
> Nice catch, but this also swallows states which can never occur
> legitimately. The only builtin-flagged value that can show up here is
> SCX_DSQ_INVALID from destroy_dsq(). Let's keep the BUG_ON for everything
> else:
>
> /* destroy_dsq() may have raced and invalidated @dsq, nothing to reenq */
> if (unlikely(dsq->id == SCX_DSQ_INVALID))
> continue;
>
> BUG_ON(dsq->id & SCX_DSQ_FLAG_BUILTIN);
>
> Can you please spin v2? Also, please capitalize the subject after the
> prefix ("Don't ...") and remove the blank line between the tags.
>
Right, that was too broad. v2 skips only SCX_DSQ_INVALID and keeps the BUG_ON otherwise, as you suggested. Also fixed the subject capitalization and the blank line between the tags.
Thanks,
Tao
> Thanks.
>
> --
> tejun