Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1617449
| 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-06 03:10 +0200 |
| Message-ID | <tt45X-1FN-3@gated-at.bofh.it> (permalink) |
| References | (1 earlier) <tsFhf-2yy-13@gated-at.bofh.it> <tsJNT-5yF-1@gated-at.bofh.it> <tsLG1-6OS-1@gated-at.bofh.it> <tsMsp-7lZ-7@gated-at.bofh.it> <tt30e-NG-13@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Wed, 2017-04-05 at 16:55 -0700, Cong Wang wrote: > On Tue, Apr 4, 2017 at 11:12 PM, Mike Galbraith <efault@gmx.de> wrote: > > 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 :) > > I am not trying to defend for yield(), I am trying to understand when > cond_resched() is not a right solution to replace yield() and when it is. > For me, the dev_deactivate_many() case is, because I interpret > "be nice" differently. Yeah, I know you weren't defending it, just as I know that the net-fu masters don't need that comment held close to their noses in order to be able to read it.. waving it about wasn't for their benefit ;-) -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