1. 26 3月, 2008 1 次提交
  2. 24 3月, 2008 1 次提交
  3. 01 2月, 2008 2 次提交
    • E
      [IPV4] route cache: Introduce rt_genid for smooth cache invalidation · 29e75252
      Eric Dumazet 提交于
      Current ip route cache implementation is not suited to large caches.
      
      We can consume a lot of CPU when cache must be invalidated, since we
      currently need to evict all cache entries, and this eviction is
      sometimes asynchronous. min_delay & max_delay can somewhat control this
      asynchronism behavior, but whole thing is a kludge, regularly triggering
      infamous soft lockup messages. When entries are still in use, this also
      consumes a lot of ram, filling dst_garbage.list.
      
      A better scheme is to use a generation identifier on each entry,
      so that cache invalidation can be performed by changing the table
      identifier, without having to scan all entries.
      No more delayed flushing, no more stalling when secret_interval expires.
      
      Invalidated entries will then be freed at GC time (controled by
      ip_rt_gc_timeout or stress), or when an invalidated entry is found
      in a chain when an insert is done.
      Thus we keep a normal equilibrium.
      
      This patch :
      - renames rt_hash_rnd to rt_genid (and makes it an atomic_t)
      - Adds a new rt_genid field to 'struct rtable' (filling a hole on 64bit)
      - Checks entry->rt_genid at appropriate places :
      29e75252
    • L
      [NET]: Introducing socket mark socket option. · 4a19ec58
      Laszlo Attila Toth 提交于
      A userspace program may wish to set the mark for each packets its send
      without using the netfilter MARK target. Changing the mark can be used
      for mark based routing without netfilter or for packet filtering.
      
      It requires CAP_NET_ADMIN capability.
      Signed-off-by: NLaszlo Attila Toth <panther@balabit.hu>
      Acked-by: NPatrick McHardy <kaber@trash.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4a19ec58
  4. 29 1月, 2008 8 次提交
  5. 07 12月, 2007 1 次提交
  6. 11 7月, 2007 2 次提交
  7. 11 2月, 2007 1 次提交
  8. 09 2月, 2007 1 次提交
  9. 29 9月, 2006 6 次提交
  10. 23 9月, 2006 1 次提交
  11. 26 4月, 2006 1 次提交
  12. 25 3月, 2006 1 次提交
    • I
      [IPV4]: Aggregate route entries with different TOS values · cef2685e
      Ilia Sotnikov 提交于
      When we get an ICMP need-to-frag message, the original TOS value in the
      ICMP payload cannot be used as a key to look up the routes to update.
      This is because the TOS field may have been modified by routers on the
      way.  Similarly, ip_rt_redirect should also ignore the TOS as the router
      that gave us the message may have modified the TOS value.
      
      The patch achieves this objective by aggregating entries with different
      TOS values (but are otherwise identical) into the same bucket.  This
      makes it easy to update them at the same time when an ICMP message is
      received.
      
      In future we should use a twin-hashing scheme where teh aggregation
      occurs at the entry level.  That is, the TOS goes back into the hash
      for normal lookups while ICMP lookups will end up with a node that
      gives us a list that contains all other route entries that differ
      only by TOS.
      Signed-off-by: NIlia Sotnikov <hostcc@gmail.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cef2685e
  13. 01 2月, 2006 1 次提交
  14. 23 11月, 2005 1 次提交
  15. 30 8月, 2005 2 次提交
    • A
      [NET]: Fix sparse warnings · 20380731
      Arnaldo Carvalho de Melo 提交于
      Of this type, mostly:
      
      CHECK   net/ipv6/netfilter.c
      net/ipv6/netfilter.c:96:12: warning: symbol 'ipv6_netfilter_init' was not declared. Should it be static?
      net/ipv6/netfilter.c:101:6: warning: symbol 'ipv6_netfilter_fini' was not declared. Should it be static?
      Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      20380731
    • A
      [IPV4]: possible cleanups · 0742fd53
      Adrian Bunk 提交于
      This patch contains the following possible cleanups:
      - make needlessly global code static
      - #if 0 the following unused global function:
        - xfrm4_state.c: xfrm4_state_fini
      - remove the following unneeded EXPORT_SYMBOL's:
        - ip_output.c: ip_finish_output
        - ip_output.c: sysctl_ip_default_ttl
        - fib_frontend.c: ip_dev_find
        - inetpeer.c: inet_peer_idlock
        - ip_options.c: ip_options_compile
        - ip_options.c: ip_options_undo
        - net/core/request_sock.c: sysctl_max_syn_backlog
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0742fd53
  16. 22 6月, 2005 1 次提交
    • I
      [PATCH] smp_processor_id() cleanup · 39c715b7
      Ingo Molnar 提交于
      This patch implements a number of smp_processor_id() cleanup ideas that
      Arjan van de Ven and I came up with.
      
      The previous __smp_processor_id/_smp_processor_id/smp_processor_id API
      spaghetti was hard to follow both on the implementational and on the
      usage side.
      
      Some of the complexity arose from picking wrong names, some of the
      complexity comes from the fact that not all architectures defined
      __smp_processor_id.
      
      In the new code, there are two externally visible symbols:
      
       - smp_processor_id(): debug variant.
      
       - raw_smp_processor_id(): nondebug variant. Replaces all existing
         uses of _smp_processor_id() and __smp_processor_id(). Defined
         by every SMP architecture in include/asm-*/smp.h.
      
      There is one new internal symbol, dependent on DEBUG_PREEMPT:
      
       - debug_smp_processor_id(): internal debug variant, mapped to
                                   smp_processor_id().
      
      Also, i moved debug_smp_processor_id() from lib/kernel_lock.c into a new
      lib/smp_processor_id.c file.  All related comments got updated and/or
      clarified.
      
      I have build/boot tested the following 8 .config combinations on x86:
      
       {SMP,UP} x {PREEMPT,!PREEMPT} x {DEBUG_PREEMPT,!DEBUG_PREEMPT}
      
      I have also build/boot tested x64 on UP/PREEMPT/DEBUG_PREEMPT.  (Other
      architectures are untested, but should work just fine.)
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NArjan van de Ven <arjan@infradead.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      39c715b7
  17. 30 5月, 2005 1 次提交
  18. 06 5月, 2005 1 次提交
  19. 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