Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1616600
| From | Mike Galbraith <efault@gmx.de> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: net/sched: latent livelock in dev_deactivate_many() due to yield() usage |
| Date | 2017-04-05 08:20 +0200 |
| Message-ID | <tsMsp-7lZ-7@gated-at.bofh.it> (permalink) |
| References | <trFjj-40B-3@gated-at.bofh.it> <tsFhf-2yy-13@gated-at.bofh.it> <tsJNT-5yF-1@gated-at.bofh.it> <tsLG1-6OS-1@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Tue, 2017-04-04 at 22:25 -0700, Cong Wang wrote: > On Tue, Apr 4, 2017 at 8:20 PM, Mike Galbraith <efault@gmx.de> wrote: > > - while (some_qdisc_is_busy(dev)) > > - yield(); > > + swait_event_timeout(swait, > > !some_qdisc_is_busy(dev), 1); > > } > > I don't see why this is an improvement even if I don't care about the > hardcoded timeout for now... Why the scheduler can make a better > decision with swait_event_timeout() than with cond_resched()? Because sleeping gets you out of the way? There is no other decision the scheduler can make while a SCHED_FIFO task is trying to yield when it is the one and only task at it's priority. The scheduler is doing exactly what it is supposed to do, problem is people calling yield() tend to think it does something it does not do, which is why it is decorated with "if you think you want yield(), think again" Yes, yield semantics suck rocks, basically don't exist. Hop in your time machine and slap whoever you find claiming responsibility :) -Mike
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
net/sched: latent livelock in dev_deactivate_many() due to yield() usage Mike Galbraith <efault@gmx.de> - 2017-04-02 06:30 +0200
Re: net/sched: latent livelock in dev_deactivate_many() due to yield() usage Cong Wang <xiyou.wangcong@gmail.com> - 2017-04-05 00:40 +0200
Re: net/sched: latent livelock in dev_deactivate_many() due to yield() usage Mike Galbraith <efault@gmx.de> - 2017-04-05 05:30 +0200
Re: net/sched: latent livelock in dev_deactivate_many() due to yield() usage Cong Wang <xiyou.wangcong@gmail.com> - 2017-04-05 07:30 +0200
Re: net/sched: latent livelock in dev_deactivate_many() due to yield() usage Mike Galbraith <efault@gmx.de> - 2017-04-05 08:20 +0200
Re: net/sched: latent livelock in dev_deactivate_many() due to yield() usage Cong Wang <xiyou.wangcong@gmail.com> - 2017-04-06 02:00 +0200
Re: net/sched: latent livelock in dev_deactivate_many() due to yield() usage Mike Galbraith <efault@gmx.de> - 2017-04-06 03:10 +0200
Re: net/sched: latent livelock in dev_deactivate_many() due to yield() usage Peter Zijlstra <peterz@infradead.org> - 2017-04-06 12:30 +0200
Re: net/sched: latent livelock in dev_deactivate_many() due to yield() usage Stephen Hemminger <stephen@networkplumber.org> - 2017-04-06 02:40 +0200
Re: net/sched: latent livelock in dev_deactivate_many() due to yield() usage Mike Galbraith <efault@gmx.de> - 2017-04-06 03:30 +0200
Re: net/sched: latent livelock in dev_deactivate_many() due to yield() usage Peter Zijlstra <peterz@infradead.org> - 2017-04-06 12:30 +0200
Re: net/sched: latent livelock in dev_deactivate_many() due to yield() usage Peter Zijlstra <peterz@infradead.org> - 2017-04-06 13:10 +0200
csiph-web