Annotation of libaitsess/contrib/test_mem.c, revision 1.2

1.2     ! misho       1: #include <stdio.h>
        !             2: #include <aitsess.h>
        !             3: 
        !             4: 
        !             5: void show(u_int size, u_int act, u_int inact)
        !             6: {
        !             7:        if (!act && !inact)
        !             8:                return;
        !             9: 
        !            10:        if (size < 1024)
        !            11:                printf("Statistics:: BUCKET %uB size, %u active, %u inactive\n", size, act, inact);
        !            12:        else if (size < 1024 * 1024)
        !            13:                printf("Statistics:: BUCKET %uKB size, %u active, %u inactive\n", size / 1024, act, inact);
        !            14:        else
        !            15:                printf("Statistics:: BUCKET %uMB size, %u active, %u inactive\n", size / (1024 * 1024), act, inact);
        !            16: }
        !            17: 
        !            18: int
        !            19: main(int argc, char **argv)
        !            20: {
        !            21:        mpool_t *mp;
        !            22:        void *addr;
        !            23:        int i;
        !            24:        u_long curr;
        !            25: 
        !            26:        for (i = 0; i < 3; i++) {
        !            27:                addr = malloc(4000);
        !            28:                printf("addr=%p\n", addr);
        !            29:                free(addr);
        !            30:        }
        !            31: 
        !            32:        mp = mpool_init(0);
        !            33:        if (!mp) {
        !            34:                printf("Error:: #%d - %s\n", sess_GetErrno(), sess_GetError());
        !            35:                return 1;
        !            36:        }
        !            37:        /*
        !            38:        mpool_getquota(mp, &curr, NULL);
        !            39:        printf("___current=%lu\n", curr);
        !            40:        */
        !            41: 
        !            42:        for (i = 0; i < 3; i++) {
        !            43:                addr = mpool_malloc(mp, 4000, "mdaaa 4000");
        !            44:                if (!addr) {
        !            45:                        printf("Error:: #%d - %s\n", sess_GetErrno(), sess_GetError());
        !            46:                        mpool_destroy(&mp);
        !            47:                        return 2;
        !            48:                }
        !            49:                printf("addr=%p chkaddr=%d addr_size=%d\n", addr, mpool_chkaddr(addr), mpool_getsizebyaddr(addr));
        !            50: 
        !            51:                strlcpy(addr, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\ndddddd\n", 
        !            52:                                mpool_getsizebyaddr(addr));
        !            53: //             mpool_free(mp, addr, 0);
        !            54:        }
        !            55: 
        !            56:        mpool_getquota(mp, &curr, NULL);
        !            57:        printf("___current=%lu\n", curr);
        !            58: 
        !            59:        printf("0) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", 
        !            60:                        mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, 
        !            61:                        mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free);
        !            62:        mpool_statistics(mp, show);
        !            63: 
        !            64:        addr = mpool_realloc(mp, addr, 5010, "|||||||||||||");
        !            65:        if (!addr)
        !            66:                printf("Error:: #%d - %s\n", sess_GetErrno(), sess_GetError());
        !            67:        mpool_getquota(mp, &curr, NULL);
        !            68:        printf("addr=%p_current=%lu\n", addr, curr);
        !            69: 
        !            70:        printf("1) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", 
        !            71:                        mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, 
        !            72:                        mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free);
        !            73:        mpool_statistics(mp, show);
        !            74: 
        !            75: 
        !            76:        if (addr)
        !            77:                mpool_free(mp, addr, 0);
        !            78: 
        !            79:        printf("2) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", 
        !            80:                        mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, 
        !            81:                        mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free);
        !            82:        mpool_statistics(mp, show);
        !            83: 
        !            84:        mpool_purge(mp, 0);
        !            85: 
        !            86:        mpool_getquota(mp, &curr, NULL);
        !            87:        printf("___current=%lu\n", curr);
        !            88: 
        !            89:        printf("3) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", 
        !            90:                        mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, 
        !            91:                        mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free);
        !            92:        mpool_statistics(mp, show);
        !            93: 
        !            94:        addr = mpool_malloc(mp, 4000, "mdaaa 4000");
        !            95:        if (!addr) {
        !            96:                printf("Error:: #%d - %s\n", sess_GetErrno(), sess_GetError());
        !            97:                mpool_destroy(&mp);
        !            98:                return 2;
        !            99:        }
        !           100:        printf("addr=%p chkaddr=%d addr_size=%d\n", addr, mpool_chkaddr(addr), mpool_getsizebyaddr(addr));
        !           101:        mpool_free(mp, addr, 0);
        !           102: 
        !           103:        printf("4) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", 
        !           104:                        mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, 
        !           105:                        mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free);
        !           106:        mpool_statistics(mp, show);
        !           107:        mpool_destroy(&mp);
        !           108:        return 0;
        !           109: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>