In a plugin I was debugging, I discovered problems caused by jobs that had not depleted their budget when put into the ready queue, but that were out of budget when taken out. I decided to test what was happening by adding a "BUG_ON(is_queued(p));" statement to the update_time_litmus function in sched_litmus.c, which did indeed trigger for my plugin. I think that's the source of my problems, although I'm not sure why it's happening.<div>
<br></div><div>I discovered, however, that the same BUG_ON statement is triggered in 2012.2 with the standard GSN-EDF plugin. That seems incorrect to me - a job should only be in the release or ready queue if it is not executing, in which case it should not be consuming any budget. Is that a bug in LITMUS^RT? I used the attached test script and got the attached stack trace pretty consistently on KVM.</div>
<div><br></div><div>-Jeremy Erickson</div><div><br></div>