From: Jamal Hadi Salim <jhs@mojatatu.com>
To: rshriram@cs.ubc.ca
Cc: netdev@vger.kernel.org, Brendan Cully <brendan@cs.ubc.ca>
Subject: Re: [PATCH] net/sched: sch_plug - Queue traffic until an explicit release command
Date: Tue, 20 Dec 2011 09:38:22 -0500 [thread overview]
Message-ID: <1324391902.17751.227.camel@mojatatu> (raw)
In-Reply-To: <1324329752-28459-1-git-send-email-rshriram@cs.ubc.ca>
Sorry - I didnt see your earlier CC. Cyberus.ca is probably the
worst service provider in Canada (maybe the world; i am sure there
are better ISPs in the middle of an ocean somewhere, deep underwater
probably).
On Mon, 2011-12-19 at 13:22 -0800, rshriram@cs.ubc.ca wrote:
> This qdisc can be used to implement output buffering, an essential
> functionality required for consistent recovery in checkpoint based
> fault tolerance systems.
I am trying to figure where this qdisc runs - is it in the hypervisor?
> The qdisc supports two operations - plug and
> unplug. When the qdisc receives a plug command via netlink request,
> packets arriving henceforth are buffered until a corresponding unplug
> command is received.
Ok, so plug indicates "start of checkpoint" and unplug the end.
Seems all you want is at a certain point to throttle the qdisc and
later on unplug/unthrottle, correct?
Sounds to me like a generic problem that applies to all qdiscs?
> Its intention is to support speculative execution by allowing generated
> network traffic to be rolled back. It is used to provide network
> protection for domUs in the Remus high availability project, available as
> part of Xen. This module is generic enough to be used by any other
> system that wishes to add speculative execution and output buffering to
> its applications.
Should get a nice demo effect of showing a simple ping working with
zero drops, but: what is the effect of not even having this qdisc?
If you just switch the qdisc to a sleeping state from user space, all
packets arriving at that qdisc will be dropped during the checkpoint
phase (and the kernel code will be tiny or none).
If you do nothing some packets will be buffered and a watchdog
will recover them when conditions become right.
So does this qdisc add anything different?
[Note: In your case when arriving packets find the queue filled up
you will drop lotsa packets - depending on traffic patterns; so
not much different than above]
> +
> +#define FIFO_BUF (10*1024*1024)
Aha.
Technically - use tc to do this. Conceptually:
This is probably what makes you look good in a demo if you have one;
huge freaking buffer. If you are doing a simple ping (or a simple
interactive session like ssh) and you can failover in 5 minutes you
still wont be able to fill that buffer!
Look at the other feedback given to you (Stephen and Dave responded).
If a qdisc is needed, should it not be a classful qdisc?
cheers,
jamal
next prev parent reply other threads:[~2011-12-20 14:38 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-19 21:22 [PATCH] net/sched: sch_plug - Queue traffic until an explicit release command rshriram
2011-12-19 21:27 ` Shriram Rajagopalan
2011-12-19 21:53 ` David Miller
2011-12-19 21:32 ` Stephen Hemminger
2011-12-19 21:35 ` David Miller
2011-12-20 14:38 ` Jamal Hadi Salim [this message]
2011-12-20 17:05 ` Shriram Rajagopalan
2011-12-21 14:54 ` Jamal Hadi Salim
[not found] ` <CAP8mzPNtei=6oVC8APf3Og_g+2YEUCnPCB+YOdBEKkcUYqXN1Q@mail.gmail.com>
2012-01-05 18:15 ` Shriram Rajagopalan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1324391902.17751.227.camel@mojatatu \
--to=jhs@mojatatu.com \
--cc=brendan@cs.ubc.ca \
--cc=netdev@vger.kernel.org \
--cc=rshriram@cs.ubc.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).