커널 메모리 06 (alloc_pages, rmqueue 소스 설명)

20,000원
추가 금액
수량
품절된 상품입니다.
주문 수량   0개
총 상품 금액 0원
페이스북
네이버 블로그
밴드

결재를 진행하시면 아래의 동영상을 시청할 수 있는 권한을 부여해 드립니다.

본인 소유의 google 계정 이메일 주소가 있어야 합니다.

 

 

커널 메모리 소스 설명 06-1(alloc_pages 함수 소스 설명)


//mm/slub.c

static struct slab *new_slab(struct kmem_cache *s, gfp_t flags, int node)

        allocate_slab(s, flags, node)

        struct slab *slab;

        slab = alloc_slab_page(alloc_gfp, node, s->oo);

            struct folio *folio;

            folio = alloc_pages(flags, order);

                //mm/page_alloc.c

                __alloc_pages_noprof(gfp_mask, order, nid, NULL)

 

[kstudy 20251122] alloc_pages() 함수 소스 설명

유투브 링크: https://youtu.be/hozCE0lDsII

상영시간: 2시간 05분

 

커널 메모리 소스 설명 06-2(rmqueue 함수 소스 설명)


rmqueue(ac->preferred_zoneref, zone, order, gfp_mask, alloc_flags, ac->migratetype)

{

    if (order <= 3)

        rmqueue_pcplist()

            struct per_cpu_pages *pcp;

            pcp = pcp_spin_trylock(zone->per_cpu_pageset);

            list = &pcp->lists[order_to_pindex(migratetype, order)];

            page = __rmqueue_pcplist(zone, order, migratetype, alloc_flags, pcp, list);

 

    rmqueue_buddy()

        if (alloc_flags & ALLOC_HIGHATOMIC)

            page = __rmqueue_smallest(zone, order, MIGRATE_HIGHATOMIC);

        if (!page)

            page = __rmqueue(zone, order, migratetype, alloc_flags);

 

    return page;

}

[kstudy 20251129] rmqueue() 함수 소스 설명

유투브 동영상: https://youtu.be/0nblyConE2U

상영시간: 2시간 32분

커널 메모리 06 (alloc_pages, rmqueue 소스 설명)

20,000원
추가 금액
수량
품절된 상품입니다.
주문 수량   0개
총 상품 금액 0원
재입고 알림 신청
휴대폰 번호
-
-
재입고 시 알림
페이스북
네이버 블로그
밴드
floating-button-img