Wireshark-dev: Re: [Wireshark-dev] New packet list - out of memory?

From: "Anders Broman" <anders.broman@xxxxxxxxxxxx>
Date: Thu, 8 Oct 2009 13:58:12 +0200
Hi,
Thanks looks better now:
set WIRESHARK_DEBUG_SE_NO_CANARY
PWS	     Commit
281 612    307 296
Loading time 54.757 - 54.054

Regards
Anders 

-----Original Message-----
From: wireshark-dev-bounces@xxxxxxxxxxxxx [mailto:wireshark-dev-bounces@xxxxxxxxxxxxx] On Behalf Of didier
Sent: den 8 oktober 2009 09:34
To: Developer support list for Wireshark
Subject: Re: [Wireshark-dev] New packet list - out of memory?

Le mercredi 07 octobre 2009 à 17:01 +0200, Anders Broman a écrit :
> Hi,
> If some one's interested here's the emem statistics for the file:
> #define EMEM_ALLOCS_PER_CHUNK (EMEM_PACKET_CHUNK_SIZE / 64)
> PWS	  Commit		
>  43 492	     64 512	
> 332 052	    471 116	         
> Loading time 54.740
> 
> -------- SE allocator statistics -------- Using chunks, using canaries 
> No fully used chunks, nothing to do
> 
> -------- SE allocator statistics -------- Using chunks, using canaries 
> No fully used chunks, nothing to do
> 
> -------- SE allocator statistics -------- Using chunks, using canaries
> 
> ---------- Allocations from the OS ----------
> ---- Headers ----
>         (    Chunk header size:         28
>           + Canary header size:     819204)
>         *     Number of chunks:         24
>         -------------------------------------------
>         = 19661568 total space used for headers
> 
> ---- Buffer space ----
>         Chunk allocation size:   10485760
>         *    Number of chunks:         24
>         -------------------------------------------
>         = 251461632 (251658240 including guard pages) total space used 
> for buffe rs
>         -------------------------------------------
> Total allocated from OS: 271123200
> 
> ---------- Allocations from the SE pool ----------
>    Number of SE allocations:    3932160
> Bytes used (incl. canaries):  144507024
>     Bytes used for canaries:   35148246
>       Bytes unused (wasted):  106954608
> 
> ---------- Statistics ----------
> Average SE allocation size (incl. canaries):  36.75 Average SE 
> allocation size (excl. canaries):  27.81
>         Average wasted bytes per allocation:  27.20  Space used for 
> headers + unused allocation: 107773840
> --> % overhead/waste: 39.75
> 
> Allocation distribution (sizes include canaries):
> size <    32:   697363
> size <    64:  2547659
> size <   128:   686123
> size <   256:    20722
> size <   512:      717
> size <  1024:        0
> size <  2048:        0
> size <  4096:        0
> size <  8192:        0
> size > 16384:        4
> 
> Regards
> Anders
Not very good. 

But are canaries used at all? In my understanding without
DEBUG_INTENSE_CANARY_CHECKS they are never checked and it's unset by
default.

You can try with 
setenv WIRESHARK_DEBUG_SE_NO_CANARY
but first replace the padding with the right value: in emem.c
@@ -524,7 +467,7 @@
                 if (use_canary)
                        pad = emem_canary_pad(size);
                 else
-                       pad = 8;
+                       pad = ((8 - (size & 0x7)) & 0x7);

                size += pad;

Didier


___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe