1. 08 Jul, 2009 3 commits
    • Jarek Poplawski's avatar
      ipv4: Fix fib_trie rebalancing, part 4 (root thresholds) · 345aa031
      Jarek Poplawski authored
      Pawel Staszewski wrote:
      <blockquote>
      Some time ago i report this:
      http://bugzilla.kernel.org/show_bug.cgi?id=6648
      
      and now with 2.6.29 / 2.6.29.1 / 2.6.29.3 and 2.6.30 it back
      dmesg output:
      oprofile: using NMI interrupt.
      Fix inflate_threshold_root. Now=15 size=11 bits
      ...
      Fix inflate_threshold_root. Now=15 size=11 bits
      
      cat /proc/net/fib_triestat
      Basic info: size of leaf: 40 bytes, size of tnode: 56 bytes.
      Main:
              Aver depth:     2.28
              Max depth:      6
              Leaves:         276539
              Prefixes:       289922
              Internal nodes: 66762
                1: 35046  2: 13824  3: 9508  4: 4897  5: 2331  6: 1149  7: 5
      9: 1  18: 1
              Pointers: 691228
      Null ptrs: 347928
      Total size: 35709  kB
      </blockquote>
      
      It seems, the current threshold for root resizing is too aggressive,
      and it causes misleading warnings during big updates, but it might be
      also responsible for memory problems, especially with non-preempt
      configs, when RCU freeing is delayed long after call_rcu.
      
      It should be also mentioned that because of non-atomic changes during
      resizing/rebalancing the current lookup algorithm can miss valid leaves
      so it's additional argument to shorten these activities even at a cost
      of a minimally longer searching.
      
      This patch restores values before the patch "[IPV4]: fib_trie root
      node settings", commit: 965ffea4 from
      v2.6.22.
      
      Pawel's report:
      <blockquote>
      I dont see any big change of (cpu load or faster/slower
      routing/propagating routes from bgpd or something else) - in avg there
      is from 2% to 3% more of CPU load i dont know why but it is - i change
      from "preempt" to "no preempt" 3 times and check this my "mpstat -P ALL
      1 30"
      always avg cpu load was from 2 to 3% more compared to "no preempt"
      [...]
      cat /proc/net/fib_triestat
      Basic info: size of leaf: 20 bytes, size of tnode: 36 bytes.
      Main:
              Aver depth:     2.44
              Max depth:      6
              Leaves:         277814
              Prefixes:       291306
              Internal nodes: 66420
                1: 32737  2: 14850  3: 10332  4: 4871  5: 2313  6: 942  7: 371  8: 3  17: 1
              Pointers: 599098
      Null ptrs: 254865
      Total size: 18067  kB
      </blockquote>
      
      According to this and other similar reports average depth is slightly
      increased (~0.2), and root nodes are shorter (log 17 vs. 18), but
      there is no visible performance decrease. So, until memory handling is
      improved or added parameters for changing this individually, this
      patch resets to safer defaults.
      Reported-by: default avatarPawel Staszewski <pstaszewski@itcare.pl>
      Reported-by: default avatarJorge Boncompte [DTI2] <jorge@dti2.net>
      Signed-off-by: default avatarJarek Poplawski <jarkao2@gmail.com>
      Tested-by: default avatarPawel Staszewski <pstaszewski@itcare.pl>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      345aa031
    • Pablo Bitton's avatar
      davinci_emac: fix kernel oops when changing MAC address while interface is down · 64c8165b
      Pablo Bitton authored
      Check that network interface is running before changing its MAC address.
      Otherwise, rxch is accessed when it's NULL - causing a kernel oops.
      Moreover, check that the new MAC address is valid.
      Signed-off-by: default avatarPablo Bitton <pablo.bitton@gmail.com>
      Signed-off-by: default avatarChaithrika U S <chaithrika@ti.com>
      Tested-by: default avatarChaithrika U S <chaithrika@ti.com>
      [tested on DM6467 EVM]
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      64c8165b
    • Alexander Duyck's avatar
      igb: set lan id prior to configuring phy · 19e588e7
      Alexander Duyck authored
      The igb driver was defaulting to using the lock for pci-e function 0 for
      all of the phys due to the fact that the lan id was not being set prior to
      initialization.  This change makes it so that the function id is set prior
      to checking for the phy id.
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      19e588e7
  2. 07 Jul, 2009 2 commits
  3. 06 Jul, 2009 10 commits
  4. 04 Jul, 2009 22 commits
  5. 02 Jul, 2009 3 commits