Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Jan 2009 10:23:12 +0100
From:      Luigi Rizzo <rizzo@iet.unipi.it>
To:        Oleg Bulyzhin <oleg@FreeBSD.org>
Cc:        stable@FreeBSD.org, re@FreeBSD.org
Subject:   Re: backporting dummynet's q_time change ? (svn 184414)
Message-ID:  <20090123092312.GC40642@onelab2.iet.unipi.it>
In-Reply-To: <20090123085337.GB54838@lath.rinet.ru>
References:  <20090123081028.GA38763@onelab2.iet.unipi.it> <20090123085337.GB54838@lath.rinet.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 23, 2009 at 11:53:37AM +0300, Oleg Bulyzhin wrote:
> On Fri, Jan 23, 2009 at 09:10:28AM +0100, Luigi Rizzo wrote:
> > in your logmessage for the q_time change in dummynet
> > http://svn.freebsd.org/viewvc/base?view=revision&revision=184414
> > 
> > mentions an ABI change that would prevent backporting.
> > 
> > However, as far as I can tell, the kernel side of the change is
> > fully self-contained in the ip_dummynet module, and the only
> > side effect on an out-of-sync userland (/sbin/ipfw) is that
> > you would not be able to run "ipfw pipe show" -- but you
> > can still configure ipfw rules and pipes and tables without
> > problems.
> > 
> > It seems to me that the change is sufficiently useful to deserve
> > a MFC, and the side effects are negligible and do not prevent an
> > upgrade with the usual sequence (installkernel-reboot-installworld)
> > 
> > Any objection to an MFC ?
> > 
> > cheers
> > luigi
> > 
> > _______________________________________________
> > freebsd-stable@freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> > To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"
> 
> Have you seen this?
> http://svn.freebsd.org/changeset/base/184506

this is also in RELENG_7 but i am not sure whether this workaround
has any drawback e.g., when curr_time passes a 32-bit boundary
there seems to be an incorrect setting of q->numbytes

@@ -1382,7 +1383,7 @@
 	if (q->head != m)		/* Flow was not idle, we are done. */
 		goto done;
 
-	if (q->q_time < curr_time)
+	if (q->q_time < (uint32_t)curr_time)
 		q->numbytes = io_fast ? fs->pipe->bandwidth : 0;
 	q->q_time = curr_time;

cheers
luigi



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090123092312.GC40642>