Changeset 46c1234 in mainline for kernel/generic/src/mm/slab.c


Ignore:
Timestamp:
2008-06-21T09:13:04Z (16 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
1e9d0e3
Parents:
23cdc921
Message:

cstyle for slab.c

File:
1 edited

Legend:

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

    r23cdc921 r46c1234  
    168168 *
    169169 */
    170 static slab_t * slab_space_alloc(slab_cache_t *cache, int flags)
     170static slab_t *slab_space_alloc(slab_cache_t *cache, int flags)
    171171{
    172172        void *data;
     
    180180                return NULL;
    181181        }
    182         if (! (cache->flags & SLAB_CACHE_SLINSIDE)) {
     182        if (!(cache->flags & SLAB_CACHE_SLINSIDE)) {
    183183                slab = slab_alloc(slab_extern_cache, flags);
    184184                if (!slab) {
     
    201201
    202202        for (i = 0; i < cache->objects; i++)
    203                 *((int *) (slab->start + i*cache->size)) = i+1;
     203                *((int *) (slab->start + i*cache->size)) = i + 1;
    204204
    205205        atomic_inc(&cache->allocated_slabs);
     
    240240 * @return Number of freed pages
    241241 */
    242 static count_t slab_obj_destroy(slab_cache_t *cache, void *obj,
    243                                 slab_t *slab)
     242static count_t slab_obj_destroy(slab_cache_t *cache, void *obj, slab_t *slab)
    244243{
    245244        int freed = 0;
     
    257256
    258257        *((int *)obj) = slab->nextavail;
    259         slab->nextavail = (obj - slab->start)/cache->size;
     258        slab->nextavail = (obj - slab->start) / cache->size;
    260259        slab->available++;
    261260
     
    282281 * @return Object address or null
    283282 */
    284 static void * slab_obj_create(slab_cache_t *cache, int flags)
     283static void *slab_obj_create(slab_cache_t *cache, int flags)
    285284{
    286285        slab_t *slab;
     
    302301                spinlock_lock(&cache->slablock);
    303302        } else {
    304                 slab = list_get_instance(cache->partial_slabs.next, slab_t, link);
     303                slab = list_get_instance(cache->partial_slabs.next, slab_t,
     304                    link);
    305305                list_remove(&slab->link);
    306306        }
     
    333333 * @param first If true, return first, else last mag
    334334 */
    335 static slab_magazine_t * get_mag_from_cache(slab_cache_t *cache,
    336                                             int first)
     335static slab_magazine_t *get_mag_from_cache(slab_cache_t *cache, int first)
    337336{
    338337        slab_magazine_t *mag = NULL;
     
    369368 * @return Number of freed pages
    370369 */
    371 static count_t magazine_destroy(slab_cache_t *cache,
    372                                 slab_magazine_t *mag)
     370static count_t magazine_destroy(slab_cache_t *cache, slab_magazine_t *mag)
    373371{
    374372        unsigned int i;
     
    390388 * Assume cpu_magazine lock is held
    391389 */
    392 static slab_magazine_t * get_full_current_mag(slab_cache_t *cache)
     390static slab_magazine_t *get_full_current_mag(slab_cache_t *cache)
    393391{
    394392        slab_magazine_t *cmag, *lastmag, *newmag;
     
    424422 * @return Pointer to object or NULL if not available
    425423 */
    426 static void * magazine_obj_get(slab_cache_t *cache)
     424static void *magazine_obj_get(slab_cache_t *cache)
    427425{
    428426        slab_magazine_t *mag;
     
    459457 *
    460458 */
    461 static slab_magazine_t * make_empty_current_mag(slab_cache_t *cache)
     459static slab_magazine_t *make_empty_current_mag(slab_cache_t *cache)
    462460{
    463461        slab_magazine_t *cmag,*lastmag,*newmag;
     
    531529{
    532530        if (cache->flags & SLAB_CACHE_SLINSIDE)
    533                 return ((PAGE_SIZE << cache->order) - sizeof(slab_t)) / cache->size;
     531                return ((PAGE_SIZE << cache->order) - sizeof(slab_t)) /
     532                    cache->size;
    534533        else
    535534                return (PAGE_SIZE << cache->order) / cache->size;
     
    558557        ASSERT(_slab_initialized >= 2);
    559558
    560         cache->mag_cache = malloc(sizeof(slab_mag_cache_t) * config.cpu_count,0);
     559        cache->mag_cache = malloc(sizeof(slab_mag_cache_t) * config.cpu_count,
     560            0);
    561561        for (i = 0; i < config.cpu_count; i++) {
    562562                memsetb(&cache->mag_cache[i], sizeof(cache->mag_cache[i]), 0);
    563                 spinlock_initialize(&cache->mag_cache[i].lock, "slab_maglock_cpu");
     563                spinlock_initialize(&cache->mag_cache[i].lock,
     564                    "slab_maglock_cpu");
    564565        }
    565566}
     
    567568/** Initialize allocated memory as a slab cache */
    568569static void
    569 _slab_cache_create(slab_cache_t *cache,
    570                    char *name,
    571                    size_t size,
    572                    size_t align,
    573                    int (*constructor)(void *obj, int kmflag),
    574                    int (*destructor)(void *obj),
    575                    int flags)
     570_slab_cache_create(slab_cache_t *cache, char *name, size_t size, size_t align,
     571    int (*constructor)(void *obj, int kmflag), int (*destructor)(void *obj),
     572    int flags)
    576573{
    577574        int pages;
     
    596593        spinlock_initialize(&cache->slablock, "slab_lock");
    597594        spinlock_initialize(&cache->maglock, "slab_maglock");
    598         if (! (cache->flags & SLAB_CACHE_NOMAGAZINE))
     595        if (!(cache->flags & SLAB_CACHE_NOMAGAZINE))
    599596                make_magcache(cache);
    600597
     
    609606                cache->order = 0;
    610607        else
    611                 cache->order = fnzb(pages-1)+1;
     608                cache->order = fnzb(pages - 1) + 1;
    612609
    613610        while (badness(cache) > SLAB_MAX_BADNESS(cache)) {
     
    630627
    631628/** Create slab cache  */
    632 slab_cache_t * slab_cache_create(char *name,
    633                                  size_t size,
    634                                  size_t align,
    635                                  int (*constructor)(void *obj, int kmflag),
    636                                  int (*destructor)(void *obj),
    637                                  int flags)
     629slab_cache_t *
     630slab_cache_create(char *name, size_t size, size_t align,
     631    int (*constructor)(void *obj, int kmflag), int (*destructor)(void *obj),
     632    int flags)
    638633{
    639634        slab_cache_t *cache;
     
    641636        cache = slab_alloc(&slab_cache_cache, 0);
    642637        _slab_cache_create(cache, name, size, align, constructor, destructor,
    643                            flags);
     638            flags);
    644639        return cache;
    645640}
     
    665660         */
    666661        magcount = atomic_get(&cache->magazine_counter);
    667         while (magcount-- && (mag=get_mag_from_cache(cache,0))) {
     662        while (magcount-- && (mag=get_mag_from_cache(cache, 0))) {
    668663                frames += magazine_destroy(cache,mag);
    669664                if (!(flags & SLAB_RECLAIM_ALL) && frames)
     
    718713
    719714        /* All slabs must be empty */
    720         if (!list_empty(&cache->full_slabs) \
    721             || !list_empty(&cache->partial_slabs))
     715        if (!list_empty(&cache->full_slabs) ||
     716            !list_empty(&cache->partial_slabs))
    722717                panic("Destroying cache that is not empty.");
    723718
     
    727722}
    728723
    729 /** Allocate new object from cache - if no flags given, always returns
    730     memory */
    731 void * slab_alloc(slab_cache_t *cache, int flags)
     724/** Allocate new object from cache - if no flags given, always returns memory */
     725void *slab_alloc(slab_cache_t *cache, int flags)
    732726{
    733727        ipl_t ipl;
     
    758752        ipl = interrupts_disable();
    759753
    760         if ((cache->flags & SLAB_CACHE_NOMAGAZINE) \
    761             || magazine_obj_put(cache, obj)) {
    762 
     754        if ((cache->flags & SLAB_CACHE_NOMAGAZINE) ||
     755            magazine_obj_put(cache, obj)) {
    763756                slab_obj_destroy(cache, obj, slab);
    764757
     
    787780         */
    788781
    789         for (cur = slab_cache_list.next;cur!=&slab_cache_list; cur=cur->next) {
     782        for (cur = slab_cache_list.next; cur != &slab_cache_list;
     783            cur = cur->next) {
    790784                cache = list_get_instance(cur, slab_cache_t, link);
    791785                frames += _slab_reclaim(cache, flags);
     
    807801        ipl = interrupts_disable();
    808802        spinlock_lock(&slab_cache_lock);
    809         printf("slab name        size     pages  obj/pg slabs  cached allocated ctl\n");
    810         printf("---------------- -------- ------ ------ ------ ------ --------- ---\n");
    811        
    812         for (cur = slab_cache_list.next; cur != &slab_cache_list; cur = cur->next) {
     803        printf("slab name        size     pages  obj/pg slabs  cached allocated"
     804            " ctl\n");
     805        printf("---------------- -------- ------ ------ ------ ------ ---------"
     806            " ---\n");
     807       
     808        for (cur = slab_cache_list.next; cur != &slab_cache_list;
     809            cur = cur->next) {
    813810                cache = list_get_instance(cur, slab_cache_t, link);
    814811               
    815812                printf("%-16s %8" PRIs " %6d %6u %6ld %6ld %9ld %-3s\n",
    816                         cache->name, cache->size, (1 << cache->order), cache->objects,
    817                         atomic_get(&cache->allocated_slabs), atomic_get(&cache->cached_objs),
    818                         atomic_get(&cache->allocated_objs), cache->flags & SLAB_CACHE_SLINSIDE ? "in" : "out");
     813                    cache->name, cache->size, (1 << cache->order),
     814                    cache->objects, atomic_get(&cache->allocated_slabs),
     815                    atomic_get(&cache->cached_objs),
     816                    atomic_get(&cache->allocated_objs),
     817                    cache->flags & SLAB_CACHE_SLINSIDE ? "in" : "out");
    819818        }
    820819        spinlock_unlock(&slab_cache_lock);
     
    827826
    828827        /* Initialize magazine cache */
    829         _slab_cache_create(&mag_cache,
    830                            "slab_magazine",
    831                            sizeof(slab_magazine_t) + SLAB_MAG_SIZE * sizeof(void*),
    832                            sizeof(uintptr_t),
    833                            NULL, NULL,
    834                            SLAB_CACHE_NOMAGAZINE | SLAB_CACHE_SLINSIDE);
     828        _slab_cache_create(&mag_cache, "slab_magazine",
     829            sizeof(slab_magazine_t) + SLAB_MAG_SIZE * sizeof(void*),
     830            sizeof(uintptr_t), NULL, NULL, SLAB_CACHE_NOMAGAZINE |
     831            SLAB_CACHE_SLINSIDE);
    835832        /* Initialize slab_cache cache */
    836         _slab_cache_create(&slab_cache_cache,
    837                            "slab_cache",
    838                            sizeof(slab_cache_cache),
    839                            sizeof(uintptr_t),
    840                            NULL, NULL,
    841                            SLAB_CACHE_NOMAGAZINE | SLAB_CACHE_SLINSIDE);
     833        _slab_cache_create(&slab_cache_cache, "slab_cache",
     834            sizeof(slab_cache_cache), sizeof(uintptr_t), NULL, NULL,
     835            SLAB_CACHE_NOMAGAZINE | SLAB_CACHE_SLINSIDE);
    842836        /* Initialize external slab cache */
    843         slab_extern_cache = slab_cache_create("slab_extern",
    844                                               sizeof(slab_t),
    845                                               0, NULL, NULL,
    846                                               SLAB_CACHE_SLINSIDE | SLAB_CACHE_MAGDEFERRED);
     837        slab_extern_cache = slab_cache_create("slab_extern", sizeof(slab_t), 0,
     838            NULL, NULL, SLAB_CACHE_SLINSIDE | SLAB_CACHE_MAGDEFERRED);
    847839
    848840        /* Initialize structures for malloc */
    849         for (i=0, size=(1 << SLAB_MIN_MALLOC_W);
    850              i < (SLAB_MAX_MALLOC_W - SLAB_MIN_MALLOC_W + 1);
    851              i++, size <<= 1) {
    852                 malloc_caches[i] = slab_cache_create(malloc_names[i],
    853                                                      size, 0,
    854                                                      NULL,NULL, SLAB_CACHE_MAGDEFERRED);
     841        for (i = 0, size = (1 << SLAB_MIN_MALLOC_W);
     842            i < (SLAB_MAX_MALLOC_W - SLAB_MIN_MALLOC_W + 1);
     843            i++, size <<= 1) {
     844                malloc_caches[i] = slab_cache_create(malloc_names[i], size, 0,
     845                    NULL, NULL, SLAB_CACHE_MAGDEFERRED);
    855846        }
    856847#ifdef CONFIG_DEBUG       
     
    877868        spinlock_lock(&slab_cache_lock);
    878869       
    879         for (cur=slab_cache_list.next; cur != &slab_cache_list;cur=cur->next){
     870        for (cur = slab_cache_list.next; cur != &slab_cache_list;
     871            cur = cur->next){
    880872                s = list_get_instance(cur, slab_cache_t, link);
    881                 if ((s->flags & SLAB_CACHE_MAGDEFERRED) != SLAB_CACHE_MAGDEFERRED)
     873                if ((s->flags & SLAB_CACHE_MAGDEFERRED) !=
     874                    SLAB_CACHE_MAGDEFERRED)
    882875                        continue;
    883876                make_magcache(s);
     
    890883/**************************************/
    891884/* kalloc/kfree functions             */
    892 void * malloc(unsigned int size, int flags)
     885void *malloc(unsigned int size, int flags)
    893886{
    894887        ASSERT(_slab_initialized);
     
    903896}
    904897
    905 void * realloc(void *ptr, unsigned int size, int flags)
     898void *realloc(void *ptr, unsigned int size, int flags)
    906899{
    907900        ASSERT(_slab_initialized);
Note: See TracChangeset for help on using the changeset viewer.