Changeset 7a0359b in mainline for kernel/generic/src/mm


Ignore:
Timestamp:
2010-07-02T15:42:19Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
bbfdf62
Parents:
e3ee9b9
Message:

improve kernel function tracing

  • add support for more generic kernel sources
  • replace attribute((no_instrument_function)) with NO_TRACE macro (shorter and for future compatibility with different compilers)
  • to be on the safe side, do not instrument most of the inline and static functions (plus some specific non-static functions)

collateral code cleanup (no change in functionality)

Location:
kernel/generic/src/mm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/mm/as.c

    re3ee9b9 r7a0359b  
    116116as_t *AS_KERNEL = NULL;
    117117
    118 static int as_constructor(void *obj, unsigned int flags)
     118NO_TRACE static int as_constructor(void *obj, unsigned int flags)
    119119{
    120120        as_t *as = (as_t *) obj;
     
    128128}
    129129
    130 static size_t as_destructor(void *obj)
     130NO_TRACE static size_t as_destructor(void *obj)
    131131{
    132132        as_t *as = (as_t *) obj;
     
    274274 *
    275275 */
    276 void as_hold(as_t *as)
     276NO_TRACE void as_hold(as_t *as)
    277277{
    278278        atomic_inc(&as->refcount);
     
    287287 *
    288288 */
    289 void as_release(as_t *as)
     289NO_TRACE void as_release(as_t *as)
    290290{
    291291        if (atomic_predec(&as->refcount) == 0)
     
    303303 *
    304304 */
    305 static bool check_area_conflicts(as_t *as, uintptr_t va, size_t size,
     305NO_TRACE static bool check_area_conflicts(as_t *as, uintptr_t va, size_t size,
    306306    as_area_t *avoid_area)
    307307{
     
    463463 *
    464464 */
    465 static as_area_t *find_area_and_lock(as_t *as, uintptr_t va)
     465NO_TRACE static as_area_t *find_area_and_lock(as_t *as, uintptr_t va)
    466466{
    467467        ASSERT(mutex_locked(&as->lock));
     
    717717 *
    718718 */
    719 static void sh_info_remove_reference(share_info_t *sh_info)
     719NO_TRACE static void sh_info_remove_reference(share_info_t *sh_info)
    720720{
    721721        bool dealloc = false;
     
    10101010 *
    10111011 */
    1012 static unsigned int area_flags_to_page_flags(unsigned int aflags)
     1012NO_TRACE static unsigned int area_flags_to_page_flags(unsigned int aflags)
    10131013{
    10141014        unsigned int flags = PAGE_USER | PAGE_PRESENT;
  • kernel/generic/src/mm/frame.c

    re3ee9b9 r7a0359b  
    7575/********************/
    7676
    77 static inline size_t frame_index(zone_t *zone, frame_t *frame)
     77NO_TRACE static inline size_t frame_index(zone_t *zone, frame_t *frame)
    7878{
    7979        return (size_t) (frame - zone->frames);
    8080}
    8181
    82 static inline size_t frame_index_abs(zone_t *zone, frame_t *frame)
     82NO_TRACE static inline size_t frame_index_abs(zone_t *zone, frame_t *frame)
    8383{
    8484        return (size_t) (frame - zone->frames) + zone->base;
    8585}
    8686
    87 static inline bool frame_index_valid(zone_t *zone, size_t index)
     87NO_TRACE static inline bool frame_index_valid(zone_t *zone, size_t index)
    8888{
    8989        return (index < zone->count);
    9090}
    9191
    92 static inline size_t make_frame_index(zone_t *zone, frame_t *frame)
     92NO_TRACE static inline size_t make_frame_index(zone_t *zone, frame_t *frame)
    9393{
    9494        return (frame - zone->frames);
     
    100100 *
    101101 */
    102 static void frame_initialize(frame_t *frame)
     102NO_TRACE static void frame_initialize(frame_t *frame)
    103103{
    104104        frame->refcount = 1;
     
    121121 *
    122122 */
    123 static size_t zones_insert_zone(pfn_t base, size_t count)
     123NO_TRACE static size_t zones_insert_zone(pfn_t base, size_t count)
    124124{
    125125        if (zones.count + 1 == ZONES_MAX) {
     
    162162 */
    163163#ifdef CONFIG_DEBUG
    164 static size_t total_frames_free(void)
     164NO_TRACE static size_t total_frames_free(void)
    165165{
    166166        size_t total = 0;
     
    206206
    207207/** @return True if zone can allocate specified order */
    208 static bool zone_can_alloc(zone_t *zone, uint8_t order)
     208NO_TRACE static bool zone_can_alloc(zone_t *zone, uint8_t order)
    209209{
    210210        return (zone_flags_available(zone->flags)
     
    222222 *
    223223 */
    224 static size_t find_free_zone(uint8_t order, zone_flags_t flags, size_t hint)
     224NO_TRACE static size_t find_free_zone(uint8_t order, zone_flags_t flags,
     225    size_t hint)
    225226{
    226227        if (hint >= zones.count)
     
    262263 *
    263264 */
    264 static link_t *zone_buddy_find_block(buddy_system_t *buddy, link_t *child,
    265     uint8_t order)
     265NO_TRACE static link_t *zone_buddy_find_block(buddy_system_t *buddy,
     266    link_t *child, uint8_t order)
    266267{
    267268        frame_t *frame = list_get_instance(child, frame_t, buddy_link);
     
    285286 *
    286287 */
    287 static link_t *zone_buddy_find_buddy(buddy_system_t *buddy, link_t *block)
     288NO_TRACE static link_t *zone_buddy_find_buddy(buddy_system_t *buddy,
     289    link_t *block)
    288290{
    289291        frame_t *frame = list_get_instance(block, frame_t, buddy_link);
     
    321323 *
    322324 */
    323 static link_t *zone_buddy_bisect(buddy_system_t *buddy, link_t *block)
     325NO_TRACE static link_t *zone_buddy_bisect(buddy_system_t *buddy, link_t *block)
    324326{
    325327        frame_t *frame_l = list_get_instance(block, frame_t, buddy_link);
     
    339341 *
    340342 */
    341 static link_t *zone_buddy_coalesce(buddy_system_t *buddy, link_t *block_1,
    342     link_t *block_2)
     343NO_TRACE static link_t *zone_buddy_coalesce(buddy_system_t *buddy,
     344    link_t *block_1, link_t *block_2)
    343345{
    344346        frame_t *frame1 = list_get_instance(block_1, frame_t, buddy_link);
     
    355357 *
    356358 */
    357 static void zone_buddy_set_order(buddy_system_t *buddy, link_t *block,
     359NO_TRACE static void zone_buddy_set_order(buddy_system_t *buddy, link_t *block,
    358360    uint8_t order)
    359361{
     
    369371 *
    370372 */
    371 static uint8_t zone_buddy_get_order(buddy_system_t *buddy, link_t *block)
     373NO_TRACE static uint8_t zone_buddy_get_order(buddy_system_t *buddy,
     374    link_t *block)
    372375{
    373376        return list_get_instance(block, frame_t, buddy_link)->buddy_order;
     
    380383 *
    381384 */
    382 static void zone_buddy_mark_busy(buddy_system_t *buddy, link_t * block)
     385NO_TRACE static void zone_buddy_mark_busy(buddy_system_t *buddy, link_t *block)
    383386{
    384387        list_get_instance(block, frame_t, buddy_link)->refcount = 1;
     
    389392 * @param buddy Buddy system.
    390393 * @param block Buddy system block.
    391  */
    392 static void zone_buddy_mark_available(buddy_system_t *buddy, link_t *block)
     394 *
     395 */
     396NO_TRACE static void zone_buddy_mark_available(buddy_system_t *buddy,
     397    link_t *block)
    393398{
    394399        list_get_instance(block, frame_t, buddy_link)->refcount = 0;
     
    421426 *
    422427 */
    423 static pfn_t zone_frame_alloc(zone_t *zone, uint8_t order)
     428NO_TRACE static pfn_t zone_frame_alloc(zone_t *zone, uint8_t order)
    424429{
    425430        ASSERT(zone_flags_available(zone->flags));
     
    449454 *
    450455 */
    451 static void zone_frame_free(zone_t *zone, size_t frame_idx)
     456NO_TRACE static void zone_frame_free(zone_t *zone, size_t frame_idx)
    452457{
    453458        ASSERT(zone_flags_available(zone->flags));
     
    470475
    471476/** Return frame from zone. */
    472 static frame_t *zone_get_frame(zone_t *zone, size_t frame_idx)
     477NO_TRACE static frame_t *zone_get_frame(zone_t *zone, size_t frame_idx)
    473478{
    474479        ASSERT(frame_idx < zone->count);
     
    477482
    478483/** Mark frame in zone unavailable to allocation. */
    479 static void zone_mark_unavailable(zone_t *zone, size_t frame_idx)
     484NO_TRACE static void zone_mark_unavailable(zone_t *zone, size_t frame_idx)
    480485{
    481486        ASSERT(zone_flags_available(zone->flags));
     
    506511 *
    507512 */
    508 static void zone_merge_internal(size_t z1, size_t z2, zone_t *old_z1, buddy_system_t *buddy)
     513NO_TRACE static void zone_merge_internal(size_t z1, size_t z2, zone_t *old_z1,
     514    buddy_system_t *buddy)
    509515{
    510516        ASSERT(zone_flags_available(zones.info[z1].flags));
     
    602608 *
    603609 */
    604 static void return_config_frames(size_t znum, pfn_t pfn, size_t count)
     610NO_TRACE static void return_config_frames(size_t znum, pfn_t pfn, size_t count)
    605611{
    606612        ASSERT(zone_flags_available(zones.info[znum].flags));
     
    637643 *
    638644 */
    639 static void zone_reduce_region(size_t znum, pfn_t frame_idx, size_t count)
     645NO_TRACE static void zone_reduce_region(size_t znum, pfn_t frame_idx,
     646    size_t count)
    640647{
    641648        ASSERT(zone_flags_available(zones.info[znum].flags));
     
    777784 *
    778785 */
    779 static void zone_construct(zone_t *zone, buddy_system_t *buddy, pfn_t start,
    780     size_t count, zone_flags_t flags)
     786NO_TRACE static void zone_construct(zone_t *zone, buddy_system_t *buddy,
     787    pfn_t start, size_t count, zone_flags_t flags)
    781788{
    782789        zone->base = start;
  • kernel/generic/src/mm/slab.c

    re3ee9b9 r7a0359b  
    177177 *
    178178 */
    179 static slab_t *slab_space_alloc(slab_cache_t *cache, unsigned int flags)
     179NO_TRACE static slab_t *slab_space_alloc(slab_cache_t *cache,
     180    unsigned int flags)
    180181{
    181182       
     
    224225 *
    225226 */
    226 static size_t slab_space_free(slab_cache_t *cache, slab_t *slab)
     227NO_TRACE static size_t slab_space_free(slab_cache_t *cache, slab_t *slab)
    227228{
    228229        frame_free(KA2PA(slab->start));
     
    236237
    237238/** Map object to slab structure */
    238 static slab_t *obj2slab(void *obj)
     239NO_TRACE static slab_t *obj2slab(void *obj)
    239240{
    240241        return (slab_t *) frame_get_parent(ADDR2PFN(KA2PA(obj)), 0);
     
    252253 *
    253254 */
    254 static size_t slab_obj_destroy(slab_cache_t *cache, void *obj, slab_t *slab)
     255NO_TRACE static size_t slab_obj_destroy(slab_cache_t *cache, void *obj,
     256    slab_t *slab)
    255257{
    256258        if (!slab)
     
    293295 *
    294296 */
    295 static void *slab_obj_create(slab_cache_t *cache, int flags)
     297NO_TRACE static void *slab_obj_create(slab_cache_t *cache, unsigned int flags)
    296298{
    297299        spinlock_lock(&cache->slablock);
     
    349351 *
    350352 */
    351 static slab_magazine_t *get_mag_from_cache(slab_cache_t *cache, bool first)
     353NO_TRACE static slab_magazine_t *get_mag_from_cache(slab_cache_t *cache,
     354    bool first)
    352355{
    353356        slab_magazine_t *mag = NULL;
     
    373376 *
    374377 */
    375 static void put_mag_to_cache(slab_cache_t *cache, slab_magazine_t *mag)
     378NO_TRACE static void put_mag_to_cache(slab_cache_t *cache,
     379    slab_magazine_t *mag)
    376380{
    377381        spinlock_lock(&cache->maglock);
     
    388392 *
    389393 */
    390 static size_t magazine_destroy(slab_cache_t *cache, slab_magazine_t *mag)
     394NO_TRACE static size_t magazine_destroy(slab_cache_t *cache,
     395    slab_magazine_t *mag)
    391396{
    392397        size_t i;
     
    406411 *
    407412 */
    408 static slab_magazine_t *get_full_current_mag(slab_cache_t *cache)
     413NO_TRACE static slab_magazine_t *get_full_current_mag(slab_cache_t *cache)
    409414{
    410415        slab_magazine_t *cmag = cache->mag_cache[CPU->id].current;
    411416        slab_magazine_t *lastmag = cache->mag_cache[CPU->id].last;
    412 
     417       
    413418        ASSERT(spinlock_locked(&cache->mag_cache[CPU->id].lock));
    414419       
     
    443448 *
    444449 */
    445 static void *magazine_obj_get(slab_cache_t *cache)
     450NO_TRACE static void *magazine_obj_get(slab_cache_t *cache)
    446451{
    447452        if (!CPU)
     
    473478 *
    474479 */
    475 static slab_magazine_t *make_empty_current_mag(slab_cache_t *cache)
     480NO_TRACE static slab_magazine_t *make_empty_current_mag(slab_cache_t *cache)
    476481{
    477482        slab_magazine_t *cmag = cache->mag_cache[CPU->id].current;
     
    479484       
    480485        ASSERT(spinlock_locked(&cache->mag_cache[CPU->id].lock));
    481 
     486       
    482487        if (cmag) {
    483488                if (cmag->busy < cmag->size)
     
    523528 *
    524529 */
    525 static int magazine_obj_put(slab_cache_t *cache, void *obj)
     530NO_TRACE static int magazine_obj_put(slab_cache_t *cache, void *obj)
    526531{
    527532        if (!CPU)
     
    552557 *
    553558 */
    554 static size_t comp_objects(slab_cache_t *cache)
     559NO_TRACE static size_t comp_objects(slab_cache_t *cache)
    555560{
    556561        if (cache->flags & SLAB_CACHE_SLINSIDE)
     
    564569 *
    565570 */
    566 static size_t badness(slab_cache_t *cache)
     571NO_TRACE static size_t badness(slab_cache_t *cache)
    567572{
    568573        size_t objects = comp_objects(cache);
     
    578583 *
    579584 */
    580 static bool make_magcache(slab_cache_t *cache)
     585NO_TRACE static bool make_magcache(slab_cache_t *cache)
    581586{
    582587        ASSERT(_slab_initialized >= 2);
     
    600605 *
    601606 */
    602 static void _slab_cache_create(slab_cache_t *cache, const char *name,
     607NO_TRACE static void _slab_cache_create(slab_cache_t *cache, const char *name,
    603608    size_t size, size_t align, int (*constructor)(void *obj,
    604609    unsigned int kmflag), size_t (*destructor)(void *obj), unsigned int flags)
     
    676681 *
    677682 */
    678 static size_t _slab_reclaim(slab_cache_t *cache, unsigned int flags)
     683NO_TRACE static size_t _slab_reclaim(slab_cache_t *cache, unsigned int flags)
    679684{
    680685        if (cache->flags & SLAB_CACHE_NOMAGAZINE)
     
    781786 *
    782787 */
    783 static void _slab_free(slab_cache_t *cache, void *obj, slab_t *slab)
     788NO_TRACE static void _slab_free(slab_cache_t *cache, void *obj, slab_t *slab)
    784789{
    785790        ipl_t ipl = interrupts_disable();
Note: See TracChangeset for help on using the changeset viewer.