netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jamal Hadi Salim <jhs-jkUAjuhPggJWk0Htik3J/w@public.gmane.org>
To: John Fastabend
	<john.r.fastabend-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: "dev-yBygre7rU0TnMu66kgdUjQ@public.gmane.org"
	<dev-yBygre7rU0TnMu66kgdUjQ@public.gmane.org>,
	Herbert Xu
	<herbert-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>,
	Eric Dumazet
	<eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	"netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Lennert Buytenhek
	<kernel-OLH4Qvv75CYX/NnBR394Jw@public.gmane.org>,
	David Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
Subject: Re: [GIT PULL v2] Open vSwitch
Date: Thu, 24 Nov 2011 08:19:39 -0500	[thread overview]
Message-ID: <1322140779.1949.191.camel@mojatatu> (raw)
In-Reply-To: <4ECD19AC.8090505-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>

On Wed, 2011-11-23 at 08:05 -0800, John Fastabend wrote:

> > Makes sense in most cases. If you have a lot of flow setup/teardown
> > it may harm.
> 
> We could have a CONFIG option to always do locking in some
> cases if thats not too ugly.

What i mean is RCU is useful when you have a substantially 
larger reads over writes(DEL/updates). The later comes up
when you are setting up and tearing down state all the
time. Actually, I think conntrack uses rcu now - that would
be a good metric of how much useful it is since conntrack
falls under this category.

> I assume you mean something like setup_tc() which we have
> today to call into into the driver at qdisc create time. This
> happens with the RTNL held. I don't see any reason not to also
> call into the hardware on qdisc_change() I just haven't done
> it yet.

Yes, the operative piece is "also". In other words, I should be
able to run tc qdisc blah and not see the difference.
In the distant past what i have done in the case of absence of software
support is to write the "hwardware" scheduler in the kernel. If we
already have the hardware support, then there is no need for that step.
Let tc be responsible for controlling this "hardware" qdisc. It doesnt
talk to the hardware.
A user space helper app listens to things being added and deleted by
tc in the kernel and synchronizes them via a driver-specific call.
Different drivers tend to have different lower layer "hard-coded" 
ways of setting up the hardware; so you may end up with different
backends.
The challenge is synchronizing stats.

> Although I'm pretty sure we don't want to add a new ndo_ops
> ever time we have some hardware feature we want to expose.
> Assuming there are more than 1 or 2 hw features. So maybe
> we could convert to something more generic. A setup_qos()
> call that passes an skb with nl attributes.

You only need one - call it "hardware_setup" so you can do
other esoteric things with it.

> Is that what you were asking?

Something like that. I described how i did it - but thats because
I wanted to make zero changes to the kernel. It is better to have
kernel support of some sort but you dont want to do too much
otherwise you start adding a lot of shit in the kernel like
the infiniband guys. Have a user space helper when in doubt.
I almost forgot, a good example (of good work in the kernel already)
you wanna take  a look at is something Lennert (added to CC) did for
Marvel chips (i think it is called DSA). 

> One of the problems this resolves is not being able to
> call the classifier-actions until after the queue is
> already selected. At this point you can't send it to
> a higher/lower priority queue.
> 

Still blanking out - will wait for the code to comment.

cheers,
jamal

  parent reply	other threads:[~2011-11-24 13:19 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-21 21:30 [GIT PULL v2] Open vSwitch Jesse Gross
     [not found] ` <1321911029-20707-1-git-send-email-jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
2011-11-21 21:30   ` [PATCH v2 1/5] genetlink: Add genl_notify() Jesse Gross
2011-11-21 21:30   ` [PATCH v2 2/5] genetlink: Add lockdep_genl_is_held() Jesse Gross
2011-11-21 21:30   ` [PATCH v2 3/5] genetlink: Add rcu_dereference_genl and genl_dereference Jesse Gross
2011-11-21 21:30   ` [PATCH v2 4/5] vlan: Move vlan_set_encap_proto() to vlan header file Jesse Gross
2011-11-21 21:30   ` [PATCH v2 5/5] net: Add Open vSwitch kernel components Jesse Gross
     [not found]     ` <1321911029-20707-6-git-send-email-jesse-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
2011-11-21 21:59       ` Stephen Hemminger
     [not found]         ` <20111121135955.571254b1-We1ePj4FEcvRI77zikRAJc56i+j3xesD0e7PPNI6Mm0@public.gmane.org>
2011-11-21 23:18           ` Jesse Gross
     [not found]             ` <CAEP_g=8uoq7tJjUTAC_Sp3kOYwZJuKjD3J7Ratu67Kq56ZiyYA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-11-21 23:25               ` Stephen Hemminger
     [not found]                 ` <20111121152518.79e82eb8-We1ePj4FEcvRI77zikRAJc56i+j3xesD0e7PPNI6Mm0@public.gmane.org>
2011-11-21 23:49                   ` Michał Mirosław
2011-11-21 22:12       ` Stephen Hemminger
     [not found]         ` <20111121141235.71a5f8fd-We1ePj4FEcvRI77zikRAJc56i+j3xesD0e7PPNI6Mm0@public.gmane.org>
2011-11-21 23:23           ` Jesse Gross
2011-11-22  0:27       ` Stephen Hemminger
2011-11-22 17:03         ` Jesse Gross
2011-11-22 20:50   ` [GIT PULL v2] Open vSwitch David Miller
2011-11-22 23:18     ` Stephen Hemminger
     [not found]       ` <20111122151854.198da33d-We1ePj4FEcvRI77zikRAJc56i+j3xesD0e7PPNI6Mm0@public.gmane.org>
2011-11-23  5:34         ` Chris Wright
2011-11-23  7:54     ` Herbert Xu
     [not found]       ` <20111123075433.GA7928-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2011-11-23  8:12         ` Eric Dumazet
2011-11-23  8:21           ` Herbert Xu
2011-11-23 12:47           ` jamal
2011-11-23 12:55             ` Eric Dumazet
2011-11-23 13:44               ` Jamal Hadi Salim
2011-11-23 16:05                 ` John Fastabend
     [not found]                   ` <4ECD19AC.8090505-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2011-11-24 13:19                     ` Jamal Hadi Salim [this message]
2011-11-27 19:34                       ` Lennert Buytenhek
     [not found]                         ` <20111127193438.GV795-OLH4Qvv75CYX/NnBR394Jw@public.gmane.org>
2011-11-27 21:31                           ` jamal
2011-11-23 13:13             ` David Täht
     [not found]               ` <4ECCF17D.5020509-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-11-23 13:36                 ` jamal
2011-11-23 14:15                   ` Eric Dumazet
2011-11-24 13:04                     ` Jamal Hadi Salim
2011-11-27 14:14                       ` WANG Cong
2011-11-23 12:22       ` jamal
2011-11-28 13:04         ` Herbert Xu
     [not found]           ` <20111128130409.GB16828-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2011-11-28 13:54             ` Fischer, Anna
     [not found]               ` <0199E0D51A61344794750DC57738F58E7586A74137-1IhDuF6AwYvulpxXP3Mx0dVKv6DIAtwysh7EHKopUjU@public.gmane.org>
2011-11-28 14:07                 ` Issues with openflow protocol WAS(RE: " Jamal Hadi Salim
2011-11-28 18:44                   ` Justin Pettit
     [not found]                     ` <20124540-D566-41B0-B86F-0BCA19B948AA-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
2011-11-28 18:54                       ` Fischer, Anna
2011-11-28 22:55                       ` Jamal Hadi Salim
2011-11-28 16:04                 ` Ben Pfaff
     [not found]                   ` <20111128160400.GB6349-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
2011-11-28 18:52                     ` Fischer, Anna
2011-11-28 14:51               ` Herbert Xu
     [not found]                 ` <20111128145157.GA17678-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2011-11-30  6:21                   ` Jesse Gross
2011-11-30  7:02                     ` Herbert Xu
     [not found]                       ` <20111130070219.GB32630-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2011-12-01  7:24                         ` Simon Horman
2011-12-01  7:52                           ` Herbert Xu
     [not found]                             ` <20111201075237.GA12799-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2011-12-01  8:06                               ` Simon Horman
2011-12-02 23:00                               ` Jesse Gross
2011-11-28 14:02             ` Jamal Hadi Salim
2011-11-28 15:27               ` Martin Casado
2011-11-28 15:32                 ` [ovs-dev] " Jamal Hadi Salim
2011-11-28 15:50                   ` Martin Casado
2011-11-28 16:01               ` Ben Pfaff
     [not found]                 ` <20111128160117.GA6349-l0M0P4e3n4LQT0dZR+AlfA@public.gmane.org>
2011-11-28 22:21                   ` Jamal Hadi Salim
2011-11-28 23:14                     ` [ovs-dev] " Ben Pfaff
2011-11-30  6:18             ` Jesse Gross
2011-11-30  7:06               ` Herbert Xu
     [not found]               ` <CAEP_g=-+F8bpkb8Qe1bPk65PQVNxz+VO7NoUrBCw6=GDUFbOFg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-11-30 13:23                 ` jamal

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=1322140779.1949.191.camel@mojatatu \
    --to=jhs-jkuajuhpggjwk0htik3j/w@public.gmane.org \
    --cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \
    --cc=dev-yBygre7rU0TnMu66kgdUjQ@public.gmane.org \
    --cc=eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=herbert-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org \
    --cc=john.r.fastabend-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=kernel-OLH4Qvv75CYX/NnBR394Jw@public.gmane.org \
    --cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /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).