Searched refs:freelist (Results 1 - 76 of 76) sorted by relevance

/linux-4.4.14/include/linux/
H A Dpercpu_ida.h30 * It's ok for a freelist to be empty when its bit is set - steal_tags()
32 * percpu freelist does have tags.
49 * Global freelist - it's a stack where nr_free points to the
53 unsigned *freelist; member in struct:percpu_ida::__anon13072
58 * Number of tags we move between the percpu freelist and the global freelist at
62 /* Max size of percpu freelist, */
H A Dslub_def.h21 ALLOC_REFILL, /* Refill cpu slab from slab freelist */
41 void **freelist; /* Pointer to next available object */ member in struct:kmem_cache_cpu
H A Dmm_types.h63 void *freelist; /* sl[aou]b first free object */ member in union:page::__anon12895::__anon12896
H A Dmm.h591 * freelist management in the buddy allocator.
/linux-4.4.14/lib/
H A Dpercpu_ida.c37 /* nr_free/freelist form a stack of free IDs */
39 unsigned freelist[]; member in struct:percpu_ida_cpu
52 * Try to steal tags from a remote cpu's percpu freelist.
87 memcpy(tags->freelist, steal_tags()
88 remote->freelist, steal_tags()
103 * Pop up to IDA_PCPU_BATCH_MOVE IDs off the global freelist, and push them onto
104 * our percpu freelist:
109 move_tags(tags->freelist, &tags->nr_free, alloc_global_tags()
110 pool->freelist, &pool->nr_free, alloc_global_tags()
120 tag = tags->freelist[--tags->nr_free]; alloc_local_tag()
180 tag = tags->freelist[--tags->nr_free]; percpu_ida_alloc()
228 tags->freelist[tags->nr_free++] = tag; percpu_ida_free()
247 move_tags(pool->freelist, &pool->nr_free, percpu_ida_free()
248 tags->freelist, &tags->nr_free, percpu_ida_free()
269 free_pages((unsigned long) pool->freelist, percpu_ida_destroy()
306 pool->freelist = (void *) __get_free_pages(GFP_KERNEL, order); __percpu_ida_init()
307 if (!pool->freelist) __percpu_ida_init()
311 pool->freelist[i] = i; __percpu_ida_init()
353 err = fn(remote->freelist[i], data); for_each_possible_cpu()
364 err = fn(pool->freelist[i], data);
H A Ddebugobjects.c219 HLIST_HEAD(freelist); debug_objects_oom()
228 hlist_move_list(&db->list, &freelist); debug_objects_oom()
232 hlist_for_each_entry_safe(obj, tmp, &freelist, node) { debug_objects_oom()
670 HLIST_HEAD(freelist); __debug_check_no_obj_freed()
706 hlist_add_head(&obj->node, &freelist); __debug_check_no_obj_freed()
713 hlist_for_each_entry_safe(obj, tmp, &freelist, node) { __debug_check_no_obj_freed()
/linux-4.4.14/mm/
H A Dslub.c56 * A. page->freelist -> List of object free in a page
63 * onto the freelist but the processor that froze the slab is the only
64 * one that can retrieve the objects from the page's freelist.
109 * freelist that allows lockless access to
110 * free objects in addition to the regular freelist
299 * If we have the need to store the freelist pointer slab_ksize()
374 if (cmpxchg_double(&page->freelist, &page->counters, __cmpxchg_double_slab()
382 if (page->freelist == freelist_old && __cmpxchg_double_slab()
384 page->freelist = freelist_new; __cmpxchg_double_slab()
410 if (cmpxchg_double(&page->freelist, &page->counters, cmpxchg_double_slab()
421 if (page->freelist == freelist_old && cmpxchg_double_slab()
423 page->freelist = freelist_new; cmpxchg_double_slab()
455 for (p = page->freelist; p; p = get_freepointer(s, p)) get_map()
587 page, page->objects, page->inuse, page->freelist, page->flags); print_page_info()
893 * Determine if a certain object on a page is on the freelist. Must hold the
903 fp = page->freelist; on_freelist()
914 page->freelist = NULL; on_freelist()
953 page->freelist); trace()
1063 page->freelist = NULL; alloc_debug_processing()
1068 /* Supports checking bulk free of a constructed freelist */ free_debug_processing()
1120 /* Reached end of constructed freelist yet? */ free_debug_processing()
1127 slab_err(s, page, "Bulk freelist count(%d) invalid(%d)\n", free_debug_processing()
1471 page->freelist = start; allocate_slab()
1609 * return the pointer to the freelist.
1617 void *freelist; acquire_slab() local
1624 * Zap the freelist and set the frozen bit. acquire_slab()
1625 * The old freelist is the list of objects for the acquire_slab()
1628 freelist = page->freelist; acquire_slab()
1634 new.freelist = NULL; acquire_slab()
1636 new.freelist = freelist; acquire_slab()
1643 freelist, counters, acquire_slab()
1644 new.freelist, new.counters, acquire_slab()
1649 WARN_ON(!freelist); acquire_slab()
1650 return freelist; acquire_slab()
1861 void *freelist) deactivate_slab()
1872 if (page->freelist) { deactivate_slab()
1879 * to the page freelist while it is still frozen. Leave the deactivate_slab()
1885 while (freelist && (nextfree = get_freepointer(s, freelist))) { deactivate_slab()
1890 prior = page->freelist; deactivate_slab()
1892 set_freepointer(s, freelist, prior); deactivate_slab()
1899 freelist, new.counters, deactivate_slab()
1900 "drain percpu freelist")); deactivate_slab()
1902 freelist = nextfree; deactivate_slab()
1921 old.freelist = page->freelist; deactivate_slab()
1927 if (freelist) { deactivate_slab()
1929 set_freepointer(s, freelist, old.freelist); deactivate_slab()
1930 new.freelist = freelist; deactivate_slab()
1932 new.freelist = old.freelist; deactivate_slab()
1938 else if (new.freelist) { deactivate_slab()
1987 old.freelist, old.counters, deactivate_slab()
1988 new.freelist, new.counters, deactivate_slab()
2033 old.freelist = page->freelist; unfreeze_partials()
2038 new.freelist = old.freelist; unfreeze_partials()
2043 old.freelist, old.counters, unfreeze_partials()
2044 new.freelist, new.counters, unfreeze_partials()
2134 deactivate_slab(s, c->page, c->freelist); flush_slab()
2138 c->freelist = NULL; flush_slab()
2259 void *freelist; new_slab_objects() local
2263 freelist = get_partial(s, flags, node, c); new_slab_objects()
2265 if (freelist) new_slab_objects()
2266 return freelist; new_slab_objects()
2278 freelist = page->freelist; new_slab_objects()
2279 page->freelist = NULL; new_slab_objects()
2285 freelist = NULL; new_slab_objects()
2287 return freelist; new_slab_objects()
2299 * Check the page->freelist of a page and either transfer the freelist to the
2300 * per cpu freelist or deactivate the page.
2312 void *freelist; get_freelist() local
2315 freelist = page->freelist; get_freelist()
2322 new.frozen = freelist != NULL; get_freelist()
2325 freelist, counters, get_freelist()
2329 return freelist; get_freelist()
2333 * Slow path. The lockless freelist is empty or we need to perform
2337 * regular freelist. In that case we simply take over the regular freelist
2338 * as the lockless freelist and zap the regular freelist.
2341 * first element of the freelist as the object to allocate now and move the
2342 * rest of the freelist to the lockless freelist.
2354 void *freelist; ___slab_alloc() local
2370 deactivate_slab(s, page, c->freelist); ___slab_alloc()
2372 c->freelist = NULL; ___slab_alloc()
2383 deactivate_slab(s, page, c->freelist); ___slab_alloc()
2385 c->freelist = NULL; ___slab_alloc()
2389 /* must check again c->freelist in case of cpu migration or IRQ */ ___slab_alloc()
2390 freelist = c->freelist; ___slab_alloc()
2391 if (freelist) ___slab_alloc()
2394 freelist = get_freelist(s, page); ___slab_alloc()
2396 if (!freelist) { ___slab_alloc()
2406 * freelist is pointing to the list of objects to be used. ___slab_alloc()
2411 c->freelist = get_freepointer(s, freelist); ___slab_alloc()
2413 return freelist; ___slab_alloc()
2421 c->freelist = NULL; ___slab_alloc()
2425 freelist = new_slab_objects(s, gfpflags, node, &c); ___slab_alloc()
2427 if (unlikely(!freelist)) { ___slab_alloc()
2438 !alloc_debug_processing(s, page, freelist, addr)) ___slab_alloc()
2441 deactivate_slab(s, page, get_freepointer(s, freelist)); ___slab_alloc()
2443 c->freelist = NULL; ___slab_alloc()
2444 return freelist; ___slab_alloc()
2477 * The fastpath works by first checking if the lockless freelist can be used.
2527 object = c->freelist; slab_alloc_node()
2542 * 2. Verify that tid and freelist have not been changed slab_alloc_node()
2543 * 3. If they were not changed replace tid and freelist slab_alloc_node()
2550 s->cpu_slab->freelist, s->cpu_slab->tid, slab_alloc_node()
2658 prior = page->freelist; __slab_free()
2760 * Bulk free of a freelist with several objects (all pointing to the
2791 set_freepointer(s, tail_obj, c->freelist); slab_free()
2794 s->cpu_slab->freelist, s->cpu_slab->tid, slab_free()
2795 c->freelist, tid, slab_free()
2820 void *freelist; member in struct:detached_freelist
2828 * page. It builds a detached freelist directly within the given
2831 * The freelist is build up as a single linked list in the objects.
2832 * The idea is, that this detached freelist can then be bulk
2833 * transferred to the real freelist(s), but only requiring a single
2858 /* Start new detached freelist */ build_detached_freelist()
2862 df->freelist = object; build_detached_freelist()
2873 /* Opportunity build freelist */ build_detached_freelist()
2874 set_freepointer(df->s, object, df->freelist); build_detached_freelist()
2875 df->freelist = object; build_detached_freelist()
2906 slab_free(df.s, df.page, df.freelist, df.tail, df.cnt,_RET_IP_); kmem_cache_free_bulk()
2931 void *object = c->freelist; kmem_cache_alloc_bulk()
2936 * of re-populating per CPU c->freelist kmem_cache_alloc_bulk()
2946 c->freelist = get_freepointer(s, object); kmem_cache_alloc_bulk()
3153 n = page->freelist; early_kmem_cache_node_alloc()
3155 page->freelist = get_freepointer(kmem_cache_node, n); early_kmem_cache_node_alloc()
4098 /* Now we know that a valid freelist exists */ validate_slab()
1860 deactivate_slab(struct kmem_cache *s, struct page *page, void *freelist) deactivate_slab() argument
H A Dslob.c52 * Node aware pages are still inserted in to the global freelist, and
55 * the freelist will only be done so on pages residing on the same node,
222 for (prev = NULL, cur = sp->freelist; ; prev = cur, cur = slob_next(cur)) { slob_page_alloc()
246 sp->freelist = next; slob_page_alloc()
251 sp->freelist = cur + units; slob_page_alloc()
289 * page with a matching node id in the freelist. list_for_each_entry()
324 sp->freelist = b;
371 sp->freelist = b; slob_free()
391 if (b < (slob_t *)sp->freelist) { slob_free()
392 if (b + units == sp->freelist) { slob_free()
393 units += slob_units(sp->freelist); slob_free()
394 sp->freelist = slob_next(sp->freelist); slob_free()
396 set_slob(b, units, sp->freelist); slob_free()
397 sp->freelist = b; slob_free()
399 prev = sp->freelist; slob_free()
H A Dzsmalloc.c20 * page->index (union with page->freelist): offset of the first object
22 * always 0, so we use this field (aka freelist) to point
32 * page->freelist: points to the first free object in zspage.
226 * For every zspage, first_page->freelist gives head of this list.
647 * have. This functions inserts the given zspage into the freelist
679 * This function removes the given zspage from the freelist identified
711 * page from the freelist of the old fullness group to that of the new
882 page->freelist = NULL; reset_page()
927 * so we use first_page->index (aka ->freelist) to store init_zspage()
928 * head of corresponding zspage's freelist. init_zspage()
1001 first_page->freelist = location_to_obj(first_page, 0); alloc_zspage()
1361 obj = (unsigned long)first_page->freelist; obj_malloc()
1367 first_page->freelist = link->next; obj_malloc()
1456 /* Insert this object in containing zspage's freelist */ obj_free()
1458 link->next = first_page->freelist; obj_free()
1462 first_page->freelist = (void *)obj; obj_free()
H A Dcompaction.c42 static unsigned long release_freepages(struct list_head *freelist) release_freepages() argument
47 list_for_each_entry_safe(page, next, freelist, lru) { list_for_each_entry_safe()
390 * Isolate free pages onto a private freelist. If @strict is true, will abort
397 struct list_head *freelist, isolate_freepages_block()
480 list_add(&page->lru, freelist); isolate_freepages_block()
558 LIST_HEAD(freelist); isolate_freepages_range()
584 block_end_pfn, &freelist, true); isolate_freepages_range()
602 map_pages(&freelist); isolate_freepages_range()
606 release_freepages(&freelist); isolate_freepages_range()
941 struct list_head *freelist = &cc->freepages; isolate_freepages() local
994 block_end_pfn, freelist, false); isolate_freepages()
1023 map_pages(freelist); isolate_freepages()
1066 * freelist. All pages on the freelist are from the same zone, so there is no
394 isolate_freepages_block(struct compact_control *cc, unsigned long *start_pfn, unsigned long end_pfn, struct list_head *freelist, bool strict) isolate_freepages_block() argument
H A Dslab.c405 status = (char *)page->freelist + freelist_size; set_obj_status()
416 status = (char *)page->freelist + freelist_size; get_obj_status()
1294 * Drains freelist for a node on each slab cache, used for memory hot-remove.
1888 void *freelist; slab_destroy() local
1890 freelist = page->freelist; slab_destroy()
1898 * From now on, we don't use freelist slab_destroy()
1902 kmem_cache_free(cachep->freelist_cache, freelist); slab_destroy()
2454 void *freelist; alloc_slabmgmt() local
2459 freelist = kmem_cache_alloc_node(cachep->freelist_cache, alloc_slabmgmt()
2461 if (!freelist) alloc_slabmgmt()
2464 freelist = addr + colour_off; alloc_slabmgmt()
2469 return freelist; alloc_slabmgmt()
2474 return ((freelist_idx_t *)page->freelist)[idx]; get_free_obj()
2480 ((freelist_idx_t *)(page->freelist))[idx] = val; set_free_obj()
2583 void *freelist) slab_map_pages()
2586 page->freelist = freelist; slab_map_pages()
2596 void *freelist; cache_grow() local
2646 freelist = alloc_slabmgmt(cachep, page, offset, cache_grow()
2648 if (!freelist) cache_grow()
2651 slab_map_pages(cachep, page, freelist); cache_grow()
2582 slab_map_pages(struct kmem_cache *cache, struct page *page, void *freelist) slab_map_pages() argument
H A Dpage_isolation.c230 * the correct MIGRATE_ISOLATE freelist. There is no __test_page_isolated_in_pageblock()
H A Dmemory-failure.c742 * not in-use) hugepage by dequeuing it from freelist. me_huge_page()
1113 * an affected hugepage will be dequeued from hugepage freelist, memory_failure()
H A Dhugetlb.c4400 * Hwpoisoned hugepage isn't linked to activelist or freelist, dequeue_hwpoisoned_huge_page()
H A Dpage_alloc.c134 * other index - this ensures that it will be put on the correct CMA freelist.
/linux-4.4.14/fs/xfs/libxfs/
H A Dxfs_alloc.h62 * data blocks, freelist blocks, and potential file data bmap
72 * needed freelist blocks is 4 fsbs _per AG_, a potential split of file's bmap
102 struct xfs_buf *agbp; /* buffer for a.g. freelist header */
122 char wasfromfl; /* set if allocation is from freelist */
123 char isfl; /* set if is freelist blocks - !acctg */
148 * Get a block from the freelist.
155 xfs_agblock_t *bnop, /* block address retrieved from freelist */
164 struct xfs_buf *bp, /* buffer for a.g. freelist header */
178 * Put the block on the freelist for the allocation group.
183 struct xfs_buf *agbp, /* buffer for a.g. freelist header */
197 struct xfs_buf **bpp); /* buffer for the ag freelist header */
H A Dxfs_alloc.c293 xfs_agf_t *agf; /* a.g. freelist header */ xfs_alloc_fix_minleft()
1490 * or allocate space from the freelist if there is nothing in the tree.
1498 int *stat) /* status: 0-freelist, 1-normal/none */ xfs_alloc_ag_vextent_small()
1513 * Nothing in the btree, try the freelist. Make sure xfs_alloc_ag_vextent_small()
1515 * freelist. xfs_alloc_ag_vextent_small()
1546 * Nothing in the freelist. xfs_alloc_ag_vextent_small()
1552 * Can't allocate from the freelist for some reason. xfs_alloc_ag_vextent_small()
1583 xfs_buf_t *agbp, /* buffer for a.g. freelist header */ xfs_free_ag_extent()
1587 int isfl) /* set if is freelist blocks - no sb acctg */ xfs_free_ag_extent()
1894 * Check if the operation we are fixing up the freelist for should go ahead or
1928 * If so, fix up the btree freelist's size.
1941 xfs_agblock_t bno; /* freelist block */ xfs_alloc_fix_freelist()
1942 xfs_extlen_t need; /* total blocks needed in freelist */ xfs_alloc_fix_freelist()
1992 * Make the freelist shorter if it's too long. xfs_alloc_fix_freelist()
2032 /* Make the freelist longer if it's too short. */ xfs_alloc_fix_freelist()
2077 * Get a block from the freelist.
2084 xfs_agblock_t *bnop, /* block address retrieved from freelist */ xfs_alloc_get_freelist()
2088 xfs_buf_t *agflbp;/* buffer for a.g. freelist structure */ xfs_alloc_get_freelist()
2148 xfs_buf_t *bp, /* buffer for a.g. freelist header */ xfs_alloc_log_agf()
2199 * Put the block on the freelist for the allocation group.
2204 xfs_buf_t *agbp, /* buffer for a.g. freelist header */ xfs_alloc_put_freelist()
2357 struct xfs_buf **bpp) /* buffer for the ag freelist header */ xfs_read_agf()
2387 struct xfs_buf **bpp) /* buffer for the ag freelist header */ xfs_alloc_read_agf()
2389 struct xfs_agf *agf; /* ag freelist header */ xfs_alloc_read_agf()
2664 * after fixing up the freelist.
H A Dxfs_bmap.h35 struct xfs_bmap_free *flist; /* bmap freelist */
H A Dxfs_da_btree.h73 struct xfs_bmap_free *flist; /* ptr to freelist for bmap_finish */
H A Dxfs_alloc_btree.c79 /* Allocate the new block from the freelist. If we can't, give up. */ xfs_allocbt_alloc_block()
H A Dxfs_format.h628 __be32 agf_flfirst; /* first freelist block's index */
629 __be32 agf_fllast; /* last freelist block's index */
630 __be32 agf_flcount; /* count of blocks in freelist */
759 * The third a.g. block contains the a.g. freelist, an array
H A Dxfs_ialloc.c662 * fixing up the freelist. Use the minalignslop field to xfs_ialloc_ag_alloc()
/linux-4.4.14/drivers/md/bcache/
H A Dutil.h251 * freelist as a stack - allocating and freeing push and pop off the freelist.
256 type *freelist; \
262 typeof((array)->freelist) _ret = (array)->freelist; \
265 (array)->freelist = *((typeof((array)->freelist) *) _ret);\
272 typeof((array)->freelist) _ptr = ptr; \
274 *((typeof((array)->freelist) *) _ptr) = (array)->freelist; \
275 (array)->freelist = _ptr; \
280 typeof((array)->freelist) _i; \
283 (array)->freelist = NULL; \
291 #define array_freelist_empty(array) ((array)->freelist == NULL)
H A Dwriteback.c364 if (array_freelist_empty(&buf->freelist)) refill_full_stripes()
400 if (array_freelist_empty(&buf->freelist)) refill_dirty()
H A Dalloc.c28 * free_inc isn't the only freelist - if it was, we'd often to sleep while
30 * smaller freelist, and buckets on that list are always ready to be used.
35 * There is another freelist, because sometimes we have buckets that we know
H A Dbtree.c1859 * We need to put some unused buckets directly on the prio freelist in bch_initial_gc_finish()
2382 w = array_alloc(&buf->freelist); refill_keybuf_fn()
2392 array_free(&buf->freelist, w); refill_keybuf_fn()
2396 if (array_freelist_empty(&buf->freelist)) refill_keybuf_fn()
2448 array_free(&buf->freelist, w); __bch_keybuf_del()
2532 array_allocator_init(&buf->freelist); bch_keybuf_init()
H A Dclosure.h360 * freelist protected by @cl's parent.
H A Dbcache.h243 DECLARE_ARRAY_ALLOCATOR(struct keybuf_key, freelist, KEYBUF_NR);
/linux-4.4.14/fs/jfs/
H A Djfs_dtree.h152 s8 freelist; /* 1: freelist header */ member in struct:__anon11603::__anon11604
191 * end of entry stot list or freelist is marked with -1.
201 s8 freelist; /* 1: slot index of head of freelist */ member in struct:__anon11605::__anon11606
H A Djfs_dtree.c25 * directory entry slots initialized as a freelist
28 * from the freelist as required to store variable length data
30 * are returned to freelist.
1428 /* init freelist */ dtSplitPage()
1430 rp->header.freelist = fsi; dtSplitPage()
1454 * initialize freelist of new right page dtSplitPage()
1570 * finalize freelist of new right page dtSplitPage()
1572 fsi = rp->header.freelist; dtSplitPage()
1781 * add old stbl region at head of freelist dtExtendPage()
1785 last = sp->header.freelist; dtExtendPage()
1790 sp->header.freelist = last; dtExtendPage()
1794 * append free region of newly extended area at tail of freelist dtExtendPage()
1803 /* append new free region at tail of old freelist */ dtExtendPage()
1804 fsi = sp->header.freelist; dtExtendPage()
1806 sp->header.freelist = n; dtExtendPage()
1829 if (sp->header.freelist < n) dtExtendPage()
1966 * append free region of newly extended area at tail of freelist dtSplitRoot()
1975 /* append new free region at tail of old freelist */ dtSplitRoot()
1976 fsi = sp->header.freelist; dtSplitRoot()
1978 rp->header.freelist = n; dtSplitRoot()
1980 rp->header.freelist = fsi; dtSplitRoot()
2055 /* init freelist */ dtSplitRoot()
2064 sp->header.freelist = DTENTRYSTART + 1; dtSplitRoot()
2893 /* init freelist */ dtInitRoot()
2902 p->header.freelist = 1; dtInitRoot()
3928 hsi = fsi = p->header.freelist; dtInsertEntry()
3930 p->header.freelist = h->next; dtInsertEntry()
3976 fsi = p->header.freelist; dtInsertEntry()
3978 p->header.freelist = t->next; dtInsertEntry()
4062 * nextindex of dst page and freelist/freecnt of both pages
4085 dsi = dp->header.freelist; /* first (whole page) free slot */ dtMoveEntry()
4086 sfsi = sp->header.freelist; dtMoveEntry()
4244 sp->header.freelist = sfsi; dtMoveEntry()
4250 dp->header.freelist = dsi; dtMoveEntry()
4260 * log freelist header, stbl, and each segment slot of entry
4334 /* update freelist */ dtDeleteEntry()
4335 t->next = p->header.freelist; dtDeleteEntry()
4336 p->header.freelist = fsi; dtDeleteEntry()
4355 * log freelist header, stbl, and each segment slot of entry
4429 /* update freelist */ dtTruncateEntry()
4432 t->next = p->header.freelist; dtTruncateEntry()
4433 p->header.freelist = fsi; dtTruncateEntry()
4453 fsi = p->header.freelist; dtLinelockFreelist()
H A Djfs_txnmgr.h97 * next lockword on freelist
H A Djfs_logmgr.c152 #define lbmSYNC 0x0008 /* do not return to freelist
155 #define lbmFREE 0x0010 /* return to freelist
1383 * freelist; lmLogInit()
1905 * recycle from log buffer freelist if any lbmAllocate()
1928 * release a log buffer to freelist
1948 * return the buffer to head of freelist lbmfree()
2323 * insert buffer at head of freelist where it can be recycled lbmIODone()
H A Djfs_txnmgr.c539 * insert tblock back on freelist txEnd()
959 * at head of freelist txUnlock()
1624 * freelist and update bmap for alloc of the new page; dtLog()
2262 /* do not release page to freelist */ txForce()
2672 /* insert tlock at head of freelist */ txAbort()
H A Djfs_imap.c1811 jfs_error(ip->i_sb, "nfreeinos = 0, but iag on freelist\n"); diAllocIno()
/linux-4.4.14/drivers/nvdimm/
H A Dbtt.c336 * It does _not_ prepare the freelist entry for the next write
337 * btt_flog_write is the wrapper for updating the freelist elements
374 arena->freelist[lane].sub = 1 - arena->freelist[lane].sub; btt_flog_write()
375 if (++(arena->freelist[lane].seq) == 4) btt_flog_write()
376 arena->freelist[lane].seq = 1; btt_flog_write()
377 arena->freelist[lane].block = le32_to_cpu(ent->old_map); btt_flog_write()
450 arena->freelist = kcalloc(arena->nfree, sizeof(struct free_entry), btt_freelist_init()
452 if (!arena->freelist) btt_freelist_init()
465 arena->freelist[i].sub = 1 - new; btt_freelist_init()
466 arena->freelist[i].seq = nd_inc_seq(le32_to_cpu(log_new.seq)); btt_freelist_init()
467 arena->freelist[i].block = le32_to_cpu(log_new.old_map); btt_freelist_init()
579 kfree(arena->freelist); free_arenas()
1073 new_postmap = arena->freelist[lane].block; btt_write_pg()
1109 log.seq = cpu_to_le32(arena->freelist[lane].seq); btt_write_pg()
1110 sub = arena->freelist[lane].sub; btt_write_pg()
H A Dbtt.h113 * @freelist: Pointer to in-memory list of free blocks
142 struct free_entry *freelist; member in struct:arena_info
/linux-4.4.14/drivers/staging/android/ion/
H A Dion_priv.h262 * Adds an item to the deferred freelist.
271 * Drains the indicated amount of memory from the deferred freelist immediately.
274 * total memory on the freelist.
286 * Drains the indicated amount of memory from the deferred freelist immediately.
289 * total memory on the freelist.
302 * ion_heap_freelist_size - returns the size of the freelist in bytes
/linux-4.4.14/drivers/scsi/csiostor/
H A Dcsio_scsi.h140 uint32_t n_free_ioreq; /* No. of freelist entries */
141 uint32_t n_free_ddp; /* No. of DDP freelist */
156 spinlock_t freelist_lock; /* Lock for ioreq freelist */
159 struct list_head ddp_freelist; /* DDP descriptor freelist */
H A Dcsio_wr.c77 /* Ring freelist doorbell */
83 * number of bytes in the freelist queue. This translates to atleast csio_wr_ring_fldb()
84 * 8 freelist buffer pointers (since each pointer is 8 bytes). csio_wr_ring_fldb()
109 * Fill up freelist buffer entries with buffers of size specified
168 * @nflb: Number of freelist buffers for FL.
178 * If user has indicated a freelist (by specifying nflb > 0), create
179 * another queue (with its own index into q_arr) for the freelist. Allocate
180 * memory for DMA buffer metadata (vaddr, len etc). Save off the freelist
1007 * @flq: The freelist queue.
1009 * Invalidate the driver's version of a freelist buffer entry,
1026 * csio_wr_process_fl - Process a freelist completion.
1029 * @wr: The freelist completion WR in the ingress queue.
1067 /* Consume all freelist buffers used for len bytes */ csio_wr_process_fl()
H A Dcsio_isr.c208 * Once done, add these completions onto the freelist.
239 /* Return the ioreqs back to ioreq->freelist */ csio_scsi_isr_handler()
H A Dcsio_hw.h234 /* ELSCT request freelist*/
435 struct list_head evt_free_q; /* freelist of evt
H A Dcsio_scsi.c1098 * NOTE: The SCSI queue doesnt allocate a freelist today, hence
1099 * no freelist buffer is expected.
2363 /* Added it to scsi ddp freelist */ csio_scsi_alloc_ddp_bufs()
2370 /* release dma descs back to freelist and free dma memory */ csio_scsi_alloc_ddp_bufs()
2397 /* release dma descs back to freelist and free dma memory */ csio_scsi_free_ddp_bufs()
/linux-4.4.14/drivers/iommu/
H A Dintel-iommu.c466 struct page *freelist[HIGH_WATER_MARK]; member in struct:deferred_flush_tables
1176 struct page *freelist) dma_pte_list_pagetables()
1181 pg->freelist = freelist; dma_pte_list_pagetables()
1182 freelist = pg; dma_pte_list_pagetables()
1185 return freelist; dma_pte_list_pagetables()
1190 freelist = dma_pte_list_pagetables(domain, level - 1, dma_pte_list_pagetables()
1191 pte, freelist); dma_pte_list_pagetables()
1195 return freelist; dma_pte_list_pagetables()
1202 struct page *freelist) dma_pte_clear_level()
1223 freelist = dma_pte_list_pagetables(domain, level - 1, pte, freelist); dma_pte_clear_level()
1231 freelist = dma_pte_clear_level(domain, level - 1, dma_pte_clear_level()
1234 freelist); dma_pte_clear_level()
1244 return freelist; dma_pte_clear_level()
1254 struct page *freelist = NULL; domain_unmap() local
1261 freelist = dma_pte_clear_level(domain, agaw_to_level(domain->agaw), domain_unmap()
1267 pgd_page->freelist = freelist; domain_unmap()
1268 freelist = pgd_page; domain_unmap()
1273 return freelist; domain_unmap()
1276 static void dma_free_pagelist(struct page *freelist) dma_free_pagelist() argument
1280 while ((pg = freelist)) { dma_free_pagelist()
1281 freelist = pg->freelist; dma_free_pagelist()
1914 struct page *freelist = NULL; domain_exit() local
1932 freelist = domain_unmap(domain, 0, DOMAIN_MAX_PFN(domain->gaw)); domain_exit()
1934 dma_free_pagelist(freelist); domain_exit()
3528 !deferred_flush[i].freelist[j], 0); flush_unmaps()
3535 if (deferred_flush[i].freelist[j]) flush_unmaps()
3536 dma_free_pagelist(deferred_flush[i].freelist[j]); flush_unmaps()
3553 static void add_unmap(struct dmar_domain *dom, struct iova *iova, struct page *freelist) add_unmap() argument
3569 deferred_flush[iommu_id].freelist[next] = freelist; add_unmap()
3586 struct page *freelist; intel_unmap() local
3607 freelist = domain_unmap(domain, start_pfn, last_pfn); intel_unmap()
3611 last_pfn - start_pfn + 1, !freelist, 0); intel_unmap()
3614 dma_free_pagelist(freelist); intel_unmap()
3616 add_unmap(domain, iova, freelist); intel_unmap()
4459 struct page *freelist; intel_iommu_memory_notifier() local
4476 freelist = domain_unmap(si_domain, iova->pfn_lo, intel_iommu_memory_notifier()
4483 !freelist, 0); intel_iommu_memory_notifier()
4485 dma_free_pagelist(freelist); intel_iommu_memory_notifier()
4896 struct page *freelist = NULL; intel_iommu_unmap() local
4912 freelist = domain_unmap(dmar_domain, start_pfn, last_pfn); intel_iommu_unmap()
4920 start_pfn, npages, !freelist, 0); for_each_domain_iommu()
4923 dma_free_pagelist(freelist);
1174 dma_pte_list_pagetables(struct dmar_domain *domain, int level, struct dma_pte *pte, struct page *freelist) dma_pte_list_pagetables() argument
1198 dma_pte_clear_level(struct dmar_domain *domain, int level, struct dma_pte *pte, unsigned long pfn, unsigned long start_pfn, unsigned long last_pfn, struct page *freelist) dma_pte_clear_level() argument
/linux-4.4.14/drivers/usb/musb/
H A Dcppi_dma.h101 struct cppi_descriptor *freelist; member in struct:cppi_channel
H A Dcppi_dma.c42 * more simply, switch to a global freelist not per-channel ones.
61 struct cppi_descriptor *bd = c->freelist; cppi_bd_alloc()
64 c->freelist = bd->next; cppi_bd_alloc()
73 bd->next = c->freelist; cppi_bd_free()
74 c->freelist = bd; cppi_bd_free()
119 c->freelist = NULL; cppi_pool_init()
608 bd = tx->freelist; cppi_next_tx_segment()
663 musb_writel(&tx_ram->tx_head, 0, (u32)tx->freelist->dma); cppi_next_tx_segment()
/linux-4.4.14/drivers/net/ethernet/chelsio/cxgb/
H A Dsge.h51 unsigned int freelistQ_empty; /* # times freelist empty */
H A Dsge.c175 * SW command, freelist and response rings
203 struct freelQ_e *entries; /* HW freelist descriptor Q */
204 struct freelQ_ce *centries; /* SW freelist context descriptor Q */
205 dma_addr_t dma_addr; /* DMA addr HW freelist descriptor Q */
261 unsigned int jumbo_fl; /* jumbo freelist Q index */
502 * Frees all RX buffers on the freelist Q. The caller must make sure that
552 * Allocates basic RX resources, consisting of memory mapped freelist Qs and a
814 * Allocates new RX buffers on the freelist Q (and tracks them on the freelist
892 /* We reenable the Qs to force a freelist GTS interrupt later */ freelQs_empty()
/linux-4.4.14/fs/xfs/
H A Dxfs_stats.c118 /* maximum; incore; ratio free to inuse; freelist */ xqm_proc_show()
H A Dxfs_qm.c44 * quota functionality, including maintaining the freelist and hash
182 * We move dquots to the freelist as soon as their reference count xfs_qm_dqpurge()
183 * hits zero, so it really should be on the freelist here. xfs_qm_dqpurge()
447 * the freelist and try again. __releases()
H A Dxfs_mount.h281 __uint32_t pagf_flcount; /* count of blocks in freelist */
H A Dxfs_symlink.c272 * Initialize the bmap freelist prior to calling either xfs_symlink()
H A Dxfs_dquot.c318 * Initialize the bmap freelist prior to calling bmapi code. xfs_qm_dqalloc()
369 * start a second transaction if the freelist is not empty. xfs_qm_dqalloc()
H A Dxfs_fsops.c261 * AG freelist header block xfs_growfs_data_private()
H A Dxfs_inode.c733 * also returns the [locked] bp pointing to the head of the freelist
972 * the freelist. Since we can only do one allocation per xfs_dir_ialloc()
977 * If xfs_ialloc did an allocation to replenish the freelist, xfs_dir_ialloc()
978 * it returns the bp containing the head of the freelist as xfs_dir_ialloc()
/linux-4.4.14/drivers/scsi/
H A Dscsi.c416 * scsi_setup_command_freelist - Setup the command freelist for a scsi host.
417 * @shost: host to allocate the freelist for.
419 * Description: The command freelist protects against system-wide out of memory
451 * scsi_destroy_command_freelist - Release the command freelist for a scsi host.
452 * @shost: host whose freelist is going to be destroyed
H A Dhosts.c230 * Note that we allocate the freelist even for the MQ case for now, scsi_add_host_with_dma()
232 * the full host freelist and one command available for that is a scsi_add_host_with_dma()
H A Dadvansys.c4235 * So start at carrier 1 with the freelist. AdvBuildCarrierFreelist()
8406 * remains on the freelist and initialize fields. AdvExeScsiQueue()
/linux-4.4.14/drivers/net/ethernet/cavium/liquidio/
H A Docteon_device.c860 struct list_head freelist, *temp, *tmp2; octeon_delete_dispatch_list() local
862 INIT_LIST_HEAD(&freelist); octeon_delete_dispatch_list()
873 list_add_tail(temp, &freelist); octeon_delete_dispatch_list()
883 list_for_each_safe(temp, tmp2, &freelist) { octeon_delete_dispatch_list()
/linux-4.4.14/drivers/dma/
H A Dtxx9dmac.c229 dev_vdbg(chan2dev(&dc->chan), "scanned %u descriptors on freelist\n", txx9dmac_desc_get()
274 "moving child desc %p to freelist\n", txx9dmac_desc_put()
277 dev_vdbg(chan2dev(&dc->chan), "moving desc %p to freelist\n", txx9dmac_desc_put()
H A Dat_hdmac.c153 "scanned %u descriptors on freelist\n", i); atc_desc_get()
185 "moving child desc %p to freelist\n", atc_desc_put()
189 "moving desc %p to freelist\n", desc); atc_desc_put()
/linux-4.4.14/drivers/gpu/drm/i810/
H A Di810_dma.c289 /* Not enough space in the status page for the freelist */ i810_freelist_init()
409 /* Now we need to init our freelist */ i810_dma_initialize()
414 " the freelist\n"); i810_dma_initialize()
/linux-4.4.14/drivers/dma/dw/
H A Dcore.c102 dev_vdbg(chan2dev(&dwc->chan), "scanned %u descriptors on freelist\n", i); dwc_desc_get()
121 "moving child desc %p to freelist\n", dwc_desc_put()
124 dev_vdbg(chan2dev(&dwc->chan), "moving desc %p to freelist\n", desc); dwc_desc_put()
/linux-4.4.14/drivers/usb/gadget/function/
H A Du_ether.c537 * this freelist can be empty if an interrupt triggered disconnect() eth_start_xmit()
549 /* temporarily stop TX queue when the freelist empties */ eth_start_xmit()
/linux-4.4.14/drivers/gpu/drm/savage/
H A Dsavage_bci.c280 DRM_ERROR("entry already on freelist.\n"); savage_freelist_put()
875 DRM_ERROR("could not initialize freelist\n"); savage_do_init_bci()
/linux-4.4.14/drivers/gpu/drm/mga/
H A Dmga_dma.c233 DRM_INFO("current freelist:\n"); mga_freelist_print()
916 DRM_ERROR("could not initialize freelist\n"); mga_do_init_dma()
/linux-4.4.14/fs/ocfs2/
H A Dquota_global.c758 * elsewhere by another node while our dquot structure is on freelist. ocfs2_release_dquot()
805 * know what happened with it while it was on freelist. ocfs2_acquire_dquot()
/linux-4.4.14/drivers/staging/lustre/lnet/lnet/
H A Dlib-msg.c584 CERROR("Failed to init freelist for message container\n"); lnet_msg_container_setup()
/linux-4.4.14/drivers/gpu/drm/r128/
H A Dr128_cce.c818 /* FIXME: Optimize -- use freelist code */ r128_freelist_get()
/linux-4.4.14/kernel/
H A Daudit.c138 * being placed on the freelist). */
174 * locks briefly to get the record off the freelist or to allocate the
/linux-4.4.14/fs/ufs/
H A Dufs_fs.h190 * blocks which may be free. If the freelist drops below this level
/linux-4.4.14/kernel/rcu/
H A Drcutorture.c1762 /* Set up the freelist. */ rcu_torture_init()
/linux-4.4.14/drivers/staging/lustre/lnet/klnds/socklnd/
H A Dsocklnd_cb.c1490 * noop txs are just put in freelist */ ksocknal_scheduler()
/linux-4.4.14/drivers/gpu/drm/radeon/
H A Dradeon_cp.c1903 * bufs until freelist code is used. Note this hides a problem with
/linux-4.4.14/drivers/net/
H A Dxen-netfront.c1112 /* Skip over entries which are actually freelist references */ xennet_release_tx_bufs()
/linux-4.4.14/fs/ocfs2/dlm/
H A Ddlmmaster.c444 * if this is bad, we can move this to a freelist. */ dlm_mle_release()
/linux-4.4.14/drivers/scsi/lpfc/
H A Dlpfc_hbadisc.c4760 * Check to see if we can free the nlp back to the freelist.

Completed in 2825 milliseconds