netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* SFQ: backport some features from ESFQ (try 4)
@ 2007-09-28 22:52 Corey Hickey
  2007-09-28 22:52 ` [PATCH 01/10] Preparatory refactoring part 1 Corey Hickey
                   ` (14 more replies)
  0 siblings, 15 replies; 37+ messages in thread
From: Corey Hickey @ 2007-09-28 22:52 UTC (permalink / raw)
  To: netdev


Patchset try 2 addresses the review by Michael Buesch.
Patchset try 3 addresses the review by Patrick McHardy.
Patchset try 4 has a few cosmetic improvements.

Nobody reviewed my last set of patches, and I wasn't pushy about asking.
Since it's been a while, I ported the kernel and userspace patchsets to
current git of net-2.6 and iproute2, respectively.

The first 7 patches in this series resemble the corresponding 7 patches
in patchset try 2. There aren't any major changes--just modifications
to address errors noticed in review and slight reorganizations to make
the next patches easier.

Patches 8-10 implement parameter passing via nested compat attributes.
This is necessary for using 'tc qdisc change' to disable perturbation.
The rest of the parameters were added for consistency.

Iproute2 patches will follow shortly.



The following is the original patch text.

This set of patches adds some of ESFQ's modifications to the original 
SFQ. Thus far, I have received support for this approach rather than for 
trying to get ESFQ included as a separate qdisc.

http://mailman.ds9a.nl/pipermail/lartc/2007q2/021056.html

My patches here implement "tc qdisc change", user-configurable depth 
(number of flows), and user-configurable divisor (for setting hash table 
size). I've left out the remaining ESFQ features (usage of jhash and 
different hashing methods) because Patrick McHardy intends to submit a 
patch that will supersede that functionality; see the URL above.

Default values remain the same, and SFQ's default behavior remains the 
same, so there should be no user disruption.

Thanks for your consideration,
Corey



 include/linux/pkt_sched.h |   23 ++--
 net/sched/sch_sfq.c       |  353 ++++++++++++++++++++++++++++++---------------
 2 files changed, 254 insertions(+), 122 deletions(-)


[PATCH 01/10] Preparatory refactoring part 1.
[PATCH 02/10] Preparatory refactoring part 2.
[PATCH 03/10] Move two functions.
[PATCH 04/10] Make "depth" (number of queues) user-configurable:
[PATCH 05/10] Add divisor.
[PATCH 06/10] Make qdisc changeable.
[PATCH 07/10] Remove comments about hardcoded values.
[PATCH 08/10] Multiply perturb_period by HZ when used rather than when assigned.
[PATCH 09/10] Change perturb_period to unsigned.
[PATCH 10/10] Use nested compat attributes to pass parameters.

^ permalink raw reply	[flat|nested] 37+ messages in thread
* [iproute2] SFQ: backport some features from ESFQ (try 5)
@ 2007-10-29  7:24 Corey Hickey
  2007-10-29  7:24 ` [PATCH 2/3] Change perturb_period to unsigned Corey Hickey
  0 siblings, 1 reply; 37+ messages in thread
From: Corey Hickey @ 2007-10-29  7:24 UTC (permalink / raw)
  To: netdev


These patches follow the ESFQ-->SFQ kernel patches. See the kernel
patch summary for general information.

Thanks,
Corey


 include/linux/pkt_sched.h |   23 ++++++++++++++---------
 tc/q_sfq.c                |   42 +++++++++++++++++++++++++++++++++++++-----
 2 files changed, 51 insertions(+), 14 deletions(-)


[PATCH 1/3] SFQ: Support changing depth and divisor.
[PATCH 2/3] Change perturb_period to unsigned.
[PATCH 3/3] Use nested compat attributes for passing parameters to the kernel.

^ permalink raw reply	[flat|nested] 37+ messages in thread
* [PATCH 2/3] Change perturb_period to unsigned.
@ 2007-08-25 22:30 Corey Hickey
  0 siblings, 0 replies; 37+ messages in thread
From: Corey Hickey @ 2007-08-25 22:30 UTC (permalink / raw)
  To: netdev

This corresponds to the kernel patch doing the same.

Here, too, this will technically break binary compatibility with older
kernels, but that shouldn't be a problem because negative perturb_period
values aren't usable anyway.
---
 include/linux/pkt_sched.h |    2 +-
 tc/q_sfq.c                |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/linux/pkt_sched.h b/include/linux/pkt_sched.h
index 37946d4..0252bb7 100644
--- a/include/linux/pkt_sched.h
+++ b/include/linux/pkt_sched.h
@@ -133,7 +133,7 @@ enum
 struct tc_sfq_qopt
 {
 	unsigned	quantum;	/* Bytes per round allocated to flow */
-	int		perturb_period;	/* Period of hash perturbation */
+	unsigned	perturb_period;	/* Period of hash perturbation */
 	__u32		limit;		/* Maximal packets in queue */
 	unsigned	divisor;	/* Hash divisor  */
 	unsigned	flows;		/* Maximal number of flows  */
diff --git a/tc/q_sfq.c b/tc/q_sfq.c
index 7754db7..c9fcc53 100644
--- a/tc/q_sfq.c
+++ b/tc/q_sfq.c
@@ -47,7 +47,7 @@ static int sfq_parse_opt(struct qdisc_util *qu, int argc, char **argv, struct nl
 			ok++;
 		} else if (strcmp(*argv, "perturb") == 0) {
 			NEXT_ARG();
-			if (get_integer(&opt.perturb_period, *argv, 0)) {
+			if (get_u32(&opt.perturb_period, *argv, 0)) {
 				fprintf(stderr, "Illegal \"perturb\"\n");
 				return -1;
 			}
@@ -115,7 +115,7 @@ static int sfq_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt)
 		fprintf(f, "flows %u/%u ", qopt->flows, qopt->divisor);
 	}
 	if (qopt->perturb_period)
-		fprintf(f, "perturb %dsec ", qopt->perturb_period);
+		fprintf(f, "perturb %usec ", qopt->perturb_period);
 	return 0;
 }
 
-- 
1.5.2.4


^ permalink raw reply related	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2007-10-29  7:24 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-28 22:52 SFQ: backport some features from ESFQ (try 4) Corey Hickey
2007-09-28 22:52 ` [PATCH 01/10] Preparatory refactoring part 1 Corey Hickey
2007-10-01 13:25   ` Patrick McHardy
2007-10-01 20:46     ` Corey Hickey
2007-10-02  3:17       ` Patrick McHardy
2007-09-28 22:52 ` [PATCH 02/10] Preparatory refactoring part 2 Corey Hickey
2007-10-01 13:33   ` Patrick McHardy
2007-10-01 20:46     ` Corey Hickey
2007-10-02  3:19       ` Patrick McHardy
2007-09-28 22:52 ` [PATCH 03/10] Move two functions Corey Hickey
2007-10-01 13:27   ` Patrick McHardy
2007-10-01 20:46     ` Corey Hickey
2007-09-28 22:52 ` [PATCH 04/10] Make "depth" (number of queues) user-configurable: Corey Hickey
2007-09-28 22:52 ` [PATCH 05/10] Add divisor Corey Hickey
2007-10-01 13:38   ` Patrick McHardy
2007-10-01 20:47     ` Corey Hickey
2007-09-28 22:52 ` [PATCH 06/10] Make qdisc changeable Corey Hickey
2007-10-01 13:43   ` Patrick McHardy
2007-10-01 20:47     ` Corey Hickey
2007-09-28 22:52 ` [PATCH 07/10] Remove comments about hardcoded values Corey Hickey
2007-09-28 22:52 ` [PATCH 08/10] Multiply perturb_period by HZ when used rather than when assigned Corey Hickey
2007-09-28 22:52 ` [PATCH 09/10] Change perturb_period to unsigned Corey Hickey
2007-10-01 13:45   ` Patrick McHardy
2007-10-01 20:47     ` Corey Hickey
2007-09-28 22:52 ` [PATCH 10/10] Use nested compat attributes to pass parameters Corey Hickey
2007-10-01 13:54   ` Patrick McHardy
2007-10-01 20:47     ` Corey Hickey
2007-10-02  3:21       ` Patrick McHardy
2007-09-28 22:54 ` sfq Corey Hickey
2007-09-28 22:57   ` sfq (iproute2 patches) Corey Hickey
2007-09-28 22:54 ` [PATCH 1/3] SFQ: Support changing depth and divisor Corey Hickey
2007-09-28 22:54 ` [PATCH 2/3] Change perturb_period to unsigned Corey Hickey
2007-09-28 22:54 ` [PATCH 3/3] Use nested compat attributes for passing parameters to the kernel Corey Hickey
2007-09-29 15:38 ` SFQ: backport some features from ESFQ (try 4) Patrick McHardy
2007-09-29 17:36   ` Corey Hickey
  -- strict thread matches above, loose matches on Subject: below --
2007-10-29  7:24 [iproute2] SFQ: backport some features from ESFQ (try 5) Corey Hickey
2007-10-29  7:24 ` [PATCH 2/3] Change perturb_period to unsigned Corey Hickey
2007-08-25 22:30 Corey Hickey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).