Commits on Jul 6, 2005
  1. Linux v2.6.13-rc3

    Linus Torvalds committed Jul 5, 2005
  2. @davem330

    [SPARC64]: Fix UltraSPARC-III fallout from membar changes.

    The membar changes made the size of __cheetah_flush_tlb_pending
    grow by one instruction, but the boot-time code patching was
    not updated to match.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  3. @rustylynch

    [PATCH] kprobes: fix namespace problem and sparc64 build

    The following renames arch_init, a kprobes function for performing any
    architecture specific initialization, to arch_init_kprobes in order to
    cleanup the namespace.
    
    Also, this patch adds arch_init_kprobes to sparc64 to fix the sparc64 kprobes
    build from the last return probe patch.
    
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>
    rustylynch committed with Linus Torvalds Jul 5, 2005
  4. [PATCH] ppc32: explicitly disable 440GP IRQ compatibility mode in 440…

    …GX setup
    
    Add explicit disabling of 440GP IRQ compatibility mode when configuring
    440GX interrupt controller.  This helps when board firmware for some reason
    uses this compatibility mode and leaves it enabled.  It breaks 440GX
    interrupt code because it assumes native 440GX IRQ mode.  People seems to
    be continuously bitten by this.
    
    Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>
    Eugene Surovegin committed with Linus Torvalds Jul 5, 2005
  5. [PATCH] ppc32: stop misusing NTP's time_offset value

    As part of my timeofday rework, I've been looking at the NTP code and I
    noticed that the PPC architecture is apparently misusing the NTP's
    time_offset (it is a terrible name!) value as some form of timezone offset.
    
    This could cause problems when time_offset changed by the NTP code.  This
    patch changes the PPC code so it uses a more clear local variable:
    timezone_offset.
    
    Signed-off-by: John Stultz <johnstul@us.ibm.com>
    Acked-by: Tom Rini <trini@kernel.crashing.org>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>
    john stultz committed with Linus Torvalds Jul 5, 2005
  6. [PATCH] ppc32: add Freescale MPC885ADS board support

    This patch adds the Freescale MPC86xADS board support.  The supported
    devices are SMC UART and 10Mbit ethernet on SCC1.
    
    The manual for the board says that it "is compatible with the MPC8xxFADS
    for software point of view".  That's why this patch extends FADS instead of
    introducing a new platform.
    
    FEC is not supported as the "combined FCC/FEC ethernet driver" driver by
    Pantelis Antoniou should replace the current FEC driver.
    
    Signed-off-by: Gennadiy Kurtsman <gkurtsman@ru.mvista.com>
    Signed-off-by: Andrei Konovalov <akonovalov@ru.mvista.com>
    Acked-by: Tom Rini <trini@kernel.crashing.org>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Linus Torvalds <torvalds@osdl.org>
    Andrei Konovalov committed with Linus Torvalds Jul 5, 2005
Commits on Jul 5, 2005
  1. @davem330

    [IPV4]: Add LC-Trie implementation notes

    Signed-off-by: Robert Olsson <Robert.Olsson@data.slu.se>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Robert Olsson committed with davem330 Jul 5, 2005
  2. @davem330

    [TCP]: Never TSO defer under periods of congestion.

    Congestion window recover after loss depends upon the fact
    that if we have a full MSS sized frame at the head of the
    send queue, we will send it.  TSO deferral can defeat the
    ACK clocking necessary to exit cleanly from recovery.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  3. @tgraf @davem330

    [PKT_SCHED]: Blackhole queueing discipline

    Useful in combination with classful qdiscs to drop or
    temporary disable certain flows, e.g. one could block
    specific ds flows with dsmark.
    
    Unlike the noop qdisc it can be controlled by the user and
    statistic accounting is done.
    
    Signed-off-by: Thomas Graf <tgraf@suug.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    tgraf committed with davem330 Jul 5, 2005
  4. @davem330

    [TCP]: Move to new TSO segmenting scheme.

    Make TSO segment transmit size decisions at send time not earlier.
    
    The basic scheme is that we try to build as large a TSO frame as
    possible when pulling in the user data, but the size of the TSO frame
    output to the card is determined at transmit time.
    
    This is guided by tp->xmit_size_goal.  It is always set to a multiple
    of MSS and tells sendmsg/sendpage how large an SKB to try and build.
    
    Later, tcp_write_xmit() and tcp_push_one() chop up the packet if
    necessary and conditions warrant.  These routines can also decide to
    "defer" in order to wait for more ACKs to arrive and thus allow larger
    TSO frames to be emitted.
    
    A general observation is that TSO elongates the pipe, thus requiring a
    larger congestion window and larger buffering especially at the sender
    side.  Therefore, it is important that applications 1) get a large
    enough socket send buffer (this is accomplished by our dynamic send
    buffer expansion code) 2) do large enough writes.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  5. @davem330

    [TCP]: Break out send buffer expansion test.

    This makes it easier to understand, and allows easier
    tweaking of the heuristic later on.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  6. @davem330

    [TCP]: Do not call tcp_tso_acked() if no work to do.

    In tcp_clean_rtx_queue(), if the TSO packet is not even partially
    acked, do not waste time calling tcp_tso_acked().
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  7. @davem330

    [TCP]: Kill bogus comment above tcp_tso_acked().

    Everything stated there is out of data.  tcp_trim_skb()
    does adjust the available socket send buffer space and
    skb->truesize now.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  8. @davem330

    [TCP]: Fix send-side cpu utiliziation regression.

    Only put user data purely to pages when doing TSO.
    
    The extra page allocations cause two problems:
    
    1) Add the overhead of the page allocations themselves.
    2) Make us do small user copies when we get to the end
       of the TCP socket cache page.
    
    It is still beneficial to purely use pages for TSO,
    so we will do it for that case.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  9. @davem330

    [TCP]: Eliminate redundant computations in tcp_write_xmit().

    tcp_snd_test() is run for every packet output by a single
    call to tcp_write_xmit(), but this is not necessary.
    
    For one, the congestion window space needs to only be
    calculated one time, then used throughout the duration
    of the loop.
    
    This cleanup also makes experimenting with different TSO
    packetization schemes much easier.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  10. @davem330

    [TCP]: Break out tcp_snd_test() into it's constituent parts.

    tcp_snd_test() does several different things, use inline
    functions to express this more clearly.
    
    1) It initializes the TSO count of SKB, if necessary.
    2) It performs the Nagle test.
    3) It makes sure the congestion window is adhered to.
    4) It makes sure SKB fits into the send window.
    
    This cleanup also sets things up so that things like the
    available packets in the congestion window does not need
    to be calculated multiple times by packet sending loops
    such as tcp_write_xmit().
        
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  11. @davem330

    [TCP]: Fix __tcp_push_pending_frames() 'nonagle' handling.

    'nonagle' should be passed to the tcp_snd_test() function
    as 'TCP_NAGLE_PUSH' if we are checking an SKB not at the
    tail of the write_queue.  This is because Nagle does not
    apply to such frames since we cannot possibly tack more
    data onto them.
    
    However, while doing this __tcp_push_pending_frames() makes
    all of the packets in the write_queue use this modified
    'nonagle' value.
    
    Fix the bug and simplify this function by just calling
    tcp_write_xmit() directly if sk_send_head is non-NULL.
    
    As a result, we can now make tcp_data_snd_check() just call
    tcp_push_pending_frames() instead of the specialized
    __tcp_data_snd_check().
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  12. @davem330

    [TCP]: Fix redundant calculations of tcp_current_mss()

    tcp_write_xmit() uses tcp_current_mss(), but some of it's callers,
    namely __tcp_push_pending_frames(), already has this value available
    already.
    
    While we're here, fix the "cur_mss" argument to be "unsigned int"
    instead of plain "unsigned".
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  13. @davem330

    [TCP]: tcp_write_xmit() tabbing cleanup

    Put the main basic block of work at the top-level of
    tabbing, and mark the TCP_CLOSE test with unlikely().
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  14. @davem330

    [TCP]: Kill extra cwnd validate in __tcp_push_pending_frames().

    The tcp_cwnd_validate() function should only be invoked
    if we actually send some frames, yet __tcp_push_pending_frames()
    will always invoke it.  tcp_write_xmit() does the call for us,
    so the call here can simply be removed.
    
    Also, tcp_write_xmit() can be marked static.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  15. @davem330

    [TCP]: Add missing skb_header_release() call to tcp_fragment().

    When we add any new packet to the TCP socket write queue,
    we must call skb_header_release() on it in order for the
    TSO sharing checks in the drivers to work.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  16. @davem330

    [TCP]: Move __tcp_data_snd_check into tcp_output.c

    It reimplements portions of tcp_snd_check(), so it
    we move it to tcp_output.c we can consolidate it's
    logic much easier in a later change.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  17. @davem330

    [TCP]: Move send test logic out of net/tcp.h

    This just moves the code into tcp_output.c, no code logic changes are
    made by this patch.
    
    Using this as a baseline, we can begin to untangle the mess of
    comparisons for the Nagle test et al.  We will also be able to reduce
    all of the redundant computation that occurs when outputting data
    packets.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  18. @davem330

    [TCP]: Fix quick-ack decrementing with TSO.

    On each packet output, we call tcp_dec_quickack_mode()
    if the ACK flag is set.  It drops tp->ack.quick until
    it hits zero, at which time we deflate the ATO value.
    
    When doing TSO, we are emitting multiple packets with
    ACK set, so we should decrement tp->ack.quick that many
    segments.
    
    Note that, unlike this case, tcp_enter_cwr() should not
    take the tcp_skb_pcount(skb) into consideration.  That
    function, one time, readjusts tp->snd_cwnd and moves
    into TCP_CA_CWR state.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  19. @davem330

    [TCP]: Simplify SKB data portion allocation with NETIF_F_SG.

    The ideal and most optimal layout for an SKB when doing
    scatter-gather is to put all the headers at skb->data, and
    all the user data in the page array.
    
    This makes SKB splitting and combining extremely simple,
    especially before a packet goes onto the wire the first
    time.
    
    So, when sk_stream_alloc_pskb() is given a zero size, make
    sure there is no skb_tailroom().  This is achieved by applying
    SKB_DATA_ALIGN() to the header length used here.
    
    Next, make select_size() in TCP output segmentation use a
    length of zero when NETIF_F_SG is true on the outgoing
    interface.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Jul 5, 2005
  20. @davem330

    [NET]: Remove __ARGS from include/net/slhc_vj.h

    I suspect "#define __ARGS(x) ()" was deprecated before I was born.
    
    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    Signed-off-by: Domen Puncer <domen@coderock.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Alexey Dobriyan committed with davem330 Jul 5, 2005
  21. @davem330

    [NET]: improve readability of dev_set_promiscuity() in net/core/dev.c

    A trivial patch to improve the readability of dev_set_promiscuity()
    in net/core/dev.c. New code does exactly the same thing as original
    code.
    
    Signed-off-by: David Chau <ddcc@mit.edu>
    Signed-off-by: Domen Puncer <domen@coderock.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    David Chau committed with davem330 Jul 5, 2005
  22. @davem330

    [SHAPER]: Switch to spinlocks.

    Dave, you were right and the sleeping locks in shaper were
    broken. Markus Kanet noticed this and also tested the patch below that
    switches locking to spinlocks.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Christoph Hellwig committed with davem330 Jul 5, 2005
  23. @davem330

    [IPV4]: More broken memory allocation fixes for fib_trie

    Below a patch to preallocate memory when doing resize of trie (inflate halve)
    If preallocations fails it just skips the resize of this tnode for this time.
    
    The oops we got when killing bgpd (with full routing) is now gone. 
    Patrick memory patch is also used.
    
    Signed-off-by: Robert Olsson <robert.olsson@its.uu.se>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Robert Olsson committed with davem330 Jul 5, 2005
  24. @tgraf @davem330

    [DECNET]: Fix memset overflow on 64bit archs while dumping decnet rou…

    …ting rules
    
    Signed-off-by: Thomas Graf <tgraf@suug.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    tgraf committed with davem330 Jul 5, 2005
  25. @davem330

    [IPV4]: Bug fix in rt_check_expire()

    - rt_check_expire() fixes (an overflow occured if size of the hash
      was >= 65536)
    
    reminder of the bugfix:
    
    The rt_check_expire() has a serious problem on machines with large
    route caches, and a standard HZ value of 1000.
    
    With default values, ie ip_rt_gc_interval = 60*HZ = 60000 ;
    
    the loop count :
    
         for (t = ip_rt_gc_interval << rt_hash_log; t >= 0;
    
    
    overflows (t is a 31 bit value) as soon rt_hash_log is >= 16  (65536
    slots in route cache hash table).
    
    In this case, rt_check_expire() does nothing at all
    
    Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Eric Dumazet committed with davem330 Jul 5, 2005
  26. @davem330

    [IPV4]: Use the fancy alloc_large_system_hash() function for route ha…

    …sh table
    
    - rt hash table allocated using alloc_large_system_hash() function.
    
    Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Eric Dumazet committed with davem330 Jul 5, 2005
  27. @davem330

    [NET]: Hashed spinlocks in net/ipv4/route.c

    - Locking abstraction
    - Spinlocks moved out of rt hash table : Less memory (50%) used by rt 
      hash table. it's a win even on UP.
    - Sizing of spinlocks table depends on NR_CPUS
    
    Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Eric Dumazet committed with davem330 Jul 5, 2005