1. 18 8月, 2008 2 次提交
  2. 05 8月, 2008 2 次提交
    • J
      net_sched: Add qdisc __NET_XMIT_BYPASS flag · c27f339a
      Jarek Poplawski 提交于
      Patrick McHardy <kaber@trash.net> noticed that it would be nice to
      handle NET_XMIT_BYPASS by NET_XMIT_SUCCESS with an internal qdisc flag
      __NET_XMIT_BYPASS and to remove the mapping from dev_queue_xmit().
      
      David Miller <davem@davemloft.net> spotted a serious bug in the first
      version of this patch.
      Signed-off-by: NJarek Poplawski <jarkao2@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c27f339a
    • J
      net_sched: Add qdisc __NET_XMIT_STOLEN flag · 378a2f09
      Jarek Poplawski 提交于
      Patrick McHardy <kaber@trash.net> noticed:
      "The other problem that affects all qdiscs supporting actions is
      TC_ACT_QUEUED/TC_ACT_STOLEN getting mapped to NET_XMIT_SUCCESS
      even though the packet is not queued, corrupting upper qdiscs'
      qlen counters."
      
      and later explained:
      "The reason why it translates it at all seems to be to not increase
      the drops counter. Within a single qdisc this could be avoided by
      other means easily, upper qdiscs would still increase the counter
      when we return anything besides NET_XMIT_SUCCESS though.
      
      This means we need a new NET_XMIT return value to indicate this to
      the upper qdiscs. So I'd suggest to introduce NET_XMIT_STOLEN,
      return that to upper qdiscs and translate it to NET_XMIT_SUCCESS
      in dev_queue_xmit, similar to NET_XMIT_BYPASS."
      
      David Miller <davem@davemloft.net> noticed:
      "Maybe these NET_XMIT_* values being passed around should be a set of
      bits. They could be composed of base meanings, combined with specific
      attributes.
      
      So you could say "NET_XMIT_DROP | __NET_XMIT_NO_DROP_COUNT"
      
      The attributes get masked out by the top-level ->enqueue() caller,
      such that the base meanings are the only thing that make their
      way up into the stack. If it's only about communication within the
      qdisc tree, let's simply code it that way."
      
      This patch is trying to realize these ideas.
      Signed-off-by: NJarek Poplawski <jarkao2@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      378a2f09
  3. 20 7月, 2008 2 次提交
  4. 18 7月, 2008 1 次提交
    • D
      pkt_sched: Remove RR scheduler. · 1d8ae3fd
      David S. Miller 提交于
      This actually fixes a bug added by the RR scheduler changes.  The
      ->bands and ->prio2band parameters were being set outside of the
      sch_tree_lock() and thus could result in strange behavior and
      inconsistencies.
      
      It might be possible, in the new design (where there will be one qdisc
      per device TX queue) to allow similar functionality via a TX hash
      algorithm for RR but I really see no reason to export this aspect of
      how these multiqueue cards actually implement the scheduling of the
      the individual DMA TX rings and the single physical MAC/PHY port.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1d8ae3fd
  5. 09 7月, 2008 2 次提交
    • D
      pkt_sched: Remove 'dev' member of struct Qdisc. · 5ce2d488
      David S. Miller 提交于
      It can be obtained via the netdev_queue.  So create a helper routine,
      qdisc_dev(), to make the transformations nicer looking.
      
      Now, qdisc_alloc() now no longer needs a net_device pointer argument.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5ce2d488
    • D
      netdev: Create netdev_queue abstraction. · bb949fbd
      David S. Miller 提交于
      A netdev_queue is an entity managed by a qdisc.
      
      Currently there is one RX and one TX queue, and a netdev_queue merely
      contains a backpointer to the net_device.
      
      The Qdisc struct is augmented with a netdev_queue pointer as well.
      
      Eventually the 'dev' Qdisc member will go away and we will have the
      resulting hierarchy:
      
      	net_device --> netdev_queue --> Qdisc
      
      Also, qdisc_alloc() and qdisc_create_dflt() now take a netdev_queue
      pointer argument.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bb949fbd
  6. 02 7月, 2008 1 次提交
  7. 29 1月, 2008 3 次提交
  8. 24 10月, 2007 1 次提交
  9. 31 8月, 2007 1 次提交
    • L
      [NET_SCHED] sch_prio.c: remove duplicate call of tc_classify() · dbaaa07a
      Lucas Nussbaum 提交于
      When CONFIG_NET_CLS_ACT is enabled, tc_classify() is called twice in
      prio_classify(). This causes "interesting" behaviour: with the setup
      below, packets are duplicated, sent twice to ifb0, and then loop in and
      out of ifb0.
      
      The patch uses the previously calculated return value in the switch,
      which is probably what Patrick had in mind in commit
      bdba91ec -- maybe Patrick can
      double-check this?
      
      -- example setup --
      ifconfig ifb0 up
      tc qdisc add dev ifb0 root netem delay 2s
      tc qdisc add dev $ETH root handle 1: prio
      tc filter add dev $ETH parent 1: protocol ip prio 10 u32 \
       match ip dst 172.24.110.6/32 flowid 1:1 \
       action mirred egress redirect dev ifb0
      ping -c1 172.24.110.6
      Signed-off-by: NLucas Nussbaum <lucas.nussbaum@imag.fr>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dbaaa07a
  10. 31 7月, 2007 2 次提交
  11. 11 7月, 2007 2 次提交
  12. 14 5月, 2007 1 次提交
  13. 26 4月, 2007 4 次提交
  14. 15 2月, 2007 1 次提交
    • T
      [PATCH] remove many unneeded #includes of sched.h · cd354f1a
      Tim Schmielau 提交于
      After Al Viro (finally) succeeded in removing the sched.h #include in module.h
      recently, it makes sense again to remove other superfluous sched.h includes.
      There are quite a lot of files which include it but don't actually need
      anything defined in there.  Presumably these includes were once needed for
      macros that used to live in sched.h, but moved to other header files in the
      course of cleaning it up.
      
      To ease the pain, this time I did not fiddle with any header files and only
      removed #includes from .c-files, which tend to cause less trouble.
      
      Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
      arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
      allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
      configs in arch/arm/configs on arm.  I also checked that no new warnings were
      introduced by the patch (actually, some warnings are removed that were emitted
      by unnecessarily included header files).
      Signed-off-by: NTim Schmielau <tim@physik3.uni-rostock.de>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cd354f1a
  15. 11 2月, 2007 1 次提交
  16. 09 2月, 2007 1 次提交
  17. 03 12月, 2006 2 次提交
  18. 01 7月, 2006 1 次提交
  19. 21 3月, 2006 1 次提交
  20. 17 1月, 2006 1 次提交
  21. 10 1月, 2006 1 次提交
  22. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4