>> Eric Dumazet pisze:
>>
>>> Paweł Staszewski a écrit :
>>>
>>>
>>>> Hello ALL
>>>>
>>>> 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
>>>> Fix inflate_threshold_root. Now=15 size=11 bits
>>>> Fix inflate_threshold_root. Now=15 size=11 bits
>>>> Fix inflate_threshold_root. Now=15 size=11 bits
>>>> Fix inflate_threshold_root. Now=15 size=11 bits
>>>> Fix inflate_threshold_root. Now=15 size=11 bits
>>>> Fix inflate_threshold_root. Now=15 size=11 bits
>>>> Fix inflate_threshold_root. Now=15 size=11 bits
>>>> Fix inflate_threshold_root. Now=15 size=11 bits
>>>> Fix inflate_threshold_root. Now=15 size=11 bits
>>>> Fix inflate_threshold_root. Now=15 size=11 bits
>>>> Fix inflate_threshold_root. Now=15 size=11 bits
>>>> Fix inflate_threshold_root. Now=15 size=11 bits
>>>> Fix inflate_threshold_root. Now=15 size=11 bits
>>>>
>>>>
>>> Curious, you seem to hit an old alloc_pages limit()... (MAX_ORDER
>>> allocation)
>>>
>>> Your root node has 2^18 = 262144 pointers of 8 bytes -> 2097152 bytes
>>> (+ header -> 4194304 bytes)
>>>
>>> But since following commit, we should use vmalloc() so this
>>> PAGE_SIZE<<10) limit
>>> should not anymore be applied.
>>>
>>> Could you do a "cat /proc/vmallocinfo" just to check your big tnodes
>>> are vmalloced() ?
>>>
>>>
>>> commit 15be75cdb5db442d0e33d37b20832b88f3ccd383
>>> Author: Stephen Hemminger <shemminger@vyatta.com>
>>> Date: Thu Apr 10 02:56:38 2008 -0700
>>>
>>> IPV4: fib_trie use vmalloc for large tnodes
>>>
>>> Use vmalloc rather than alloc_pages to avoid wasting memory.
>>> The problem is that tnode structure has a power of 2 sized array,
>>> plus a header. So the current code wastes almost half the memory
>>> allocated because it always needs the next bigger size to hold
>>> that small header.
>>>
>>> This is similar to an earlier patch by Eric, but instead of a list
>>> and lock, I used a workqueue to handle the fact that vfree can't
>>> be done in interrupt context.
>>>
>>> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
>>> Signed-off-by: David S. Miller <davem@davemloft.net>
>>>
>>>
>>>
>>>
>>>> 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
>>>>
>>>> Counters:
>>>> ---------
>>>> gets = 26276593
>>>> backtracks = 547306
>>>> semantic match passed = 26188746
>>>> semantic match miss = 1117
>>>> null node hit= 27285055
>>>> skipped node resize = 0
>>>>
>>>> Local:
>>>> Aver depth: 3.33
>>>> Max depth: 4
>>>> Leaves: 9
>>>> Prefixes: 10
>>>> Internal nodes: 8
>>>> 1: 8
>>>> Pointers: 16
>>>> Null ptrs: 0
>>>> Total size: 2 kB
>>>>
>>>> Counters:
>>>> ---------
>>>> gets = 26642350
>>>> backtracks = 1282818
>>>> semantic match passed = 18166
>>>> semantic match miss = 0
>>>> null node hit= 0
>>>> skipped node resize = 0
>>>>
>>>>
>>>>
>>>> This machine is running bgpd with two bgp peers / full route table
>>>>
>>>> cat /proc/meminfo
>>>> MemTotal: 12279032 kB
>>>> MemFree: 11521920 kB
>>>> Buffers: 80288 kB
>>>> Cached: 34416 kB
>>>> SwapCached: 0 kB
>>>> Active: 286816 kB
>>>> Inactive: 82024 kB
>>>> Active(anon): 254296 kB
>>>> Inactive(anon): 0 kB
>>>> Active(file): 32520 kB
>>>> Inactive(file): 82024 kB
>>>> Unevictable: 0 kB
>>>> Mlocked: 0 kB
>>>> SwapTotal: 987988 kB
>>>> SwapFree: 987988 kB
>>>> Dirty: 1140 kB
>>>> Writeback: 0 kB
>>>> AnonPages: 254164 kB
>>>> Mapped: 5440 kB
>>>> Slab: 365084 kB
>>>> SReclaimable: 28784 kB
>>>> SUnreclaim: 336300 kB
>>>> PageTables: 2104 kB
>>>> NFS_Unstable: 0 kB
>>>> Bounce: 0 kB
>>>> WritebackTmp: 0 kB
>>>> CommitLimit: 7127504 kB
>>>> Committed_AS: 267704 kB
>>>> VmallocTotal: 34359738367 kB
>>>> VmallocUsed: 11824 kB
>>>> VmallocChunk: 34359707815 kB
>>>> HugePages_Total: 0
>>>> HugePages_Free: 0
>>>> HugePages_Rsvd: 0
>>>> HugePages_Surp: 0
>>>> Hugepagesize: 2048 kB
>>>> DirectMap4k: 3392 kB
>>>> DirectMap2M: 12578816 kB
>>>>
>>>>
>>>> Interfaces mtu is1500
>>>>
>>>>
>>>
>>>
>>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe netdev" in
>> the body of a message to
majordomo@vger.kernel.org
>> More majordomo info at
http://vger.kernel.org/majordomo-info.html
>>
>>
>>
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to
majordomo@vger.kernel.org
> More majordomo info at
http://vger.kernel.org/majordomo-info.html
>
>
>