Re: should_yield problem [Was: svn commit: r251322 - head/sys/kern]

2013-07-03 Thread Andriy Gapon
on 02/07/2013 21:11 Andriy Gapon said the following: > on 02/07/2013 20:59 Ed Maste said the following: >> What about just initializing td_swvoltick to ticks at td creation? > > I like this idea. What would be the best place(s) to do the initialization? Or, perhaps, td_swvoltick should be moved t

Re: should_yield problem [Was: svn commit: r251322 - head/sys/kern]

2013-07-03 Thread Andriy Gapon
on 03/07/2013 07:40 Bruce Evans said the following: > On Tue, 2 Jul 2013, Andriy Gapon wrote: >> distance = (signed)( i1 - i2 ) > > With 2's complement and benign overflow, this is no different from > 'distance = i1 - i2'. Given the particular context I'd say that there is a difference. > But si

Re: should_yield problem [Was: svn commit: r251322 - head/sys/kern]

2013-07-02 Thread Bruce Evans
On Tue, 2 Jul 2013, Andriy Gapon wrote: on 02/07/2013 20:52 Attilio Rao said the following: I was just pointing out that the real bug is not in the subtraction itself but on the hogticks comparison. This is because hogticks is not an absolute measurement but it represents really a ticks differe

Re: should_yield problem [Was: svn commit: r251322 - head/sys/kern]

2013-07-02 Thread Andriy Gapon
on 02/07/2013 20:59 Ed Maste said the following: > On 2 July 2013 12:48, Andriy Gapon wrote: >> I am not sure if the originally reported problem was also caused by >> should_yield() or if it was something else. But in either case I think that >> we >> should fix should_yield. Perhaps (ticks - c

Re: should_yield problem [Was: svn commit: r251322 - head/sys/kern]

2013-07-02 Thread Andriy Gapon
on 02/07/2013 20:52 Attilio Rao said the following: > I was just pointing out that the real bug is not in the subtraction > itself but on the hogticks comparison. > This is because hogticks is not an absolute measurement but it > represents really a ticks difference. > In my opinion we should defin

Re: should_yield problem [Was: svn commit: r251322 - head/sys/kern]

2013-07-02 Thread Ed Maste
On 2 July 2013 12:48, Andriy Gapon wrote: > I am not sure if the originally reported problem was also caused by > should_yield() or if it was something else. But in either case I think that > we > should fix should_yield. Perhaps (ticks - curthread->td_swvoltick) should be > cast to unsigned be

Re: should_yield problem [Was: svn commit: r251322 - head/sys/kern]

2013-07-02 Thread Attilio Rao
On Tue, Jul 2, 2013 at 7:24 PM, Andriy Gapon wrote: > on 02/07/2013 20:12 Attilio Rao said the following: >> While "ticks" is signed it is used as an unsigned int. >> td_swvolticks is always derived by ticks, which again will always be >> used as an unisgned and then the subtractions among the 2 w

Re: should_yield problem [Was: svn commit: r251322 - head/sys/kern]

2013-07-02 Thread Andriy Gapon
on 02/07/2013 20:12 Attilio Rao said the following: > While "ticks" is signed it is used as an unsigned int. > td_swvolticks is always derived by ticks, which again will always be > used as an unisgned and then the subtractions among the 2 will be > consistent. So returning to my example where tic

Re: should_yield problem [Was: svn commit: r251322 - head/sys/kern]

2013-07-02 Thread Attilio Rao
On Tue, Jul 2, 2013 at 6:48 PM, Andriy Gapon wrote: > on 03/06/2013 20:36 Konstantin Belousov said the following: >> Author: kib >> Date: Mon Jun 3 17:36:43 2013 >> New Revision: 251322 >> URL: http://svnweb.freebsd.org/changeset/base/251322 >> >> Log: >> Be more generous when donating the curr

should_yield problem [Was: svn commit: r251322 - head/sys/kern]

2013-07-02 Thread Andriy Gapon
on 03/06/2013 20:36 Konstantin Belousov said the following: > Author: kib > Date: Mon Jun 3 17:36:43 2013 > New Revision: 251322 > URL: http://svnweb.freebsd.org/changeset/base/251322 > > Log: > Be more generous when donating the current thread time to the owner of > the vnode lock while iter

svn commit: r251322 - head/sys/kern

2013-06-03 Thread Konstantin Belousov
Author: kib Date: Mon Jun 3 17:36:43 2013 New Revision: 251322 URL: http://svnweb.freebsd.org/changeset/base/251322 Log: Be more generous when donating the current thread time to the owner of the vnode lock while iterating over the free vnode list. Instead of yielding, pause for 1 tick. T