/linux/block/ |
A D | blk-mq-tag.c | 58 struct blk_mq_tags *tags = hctx->tags; in __blk_mq_tag_idle() local 241 struct blk_mq_tags *tags = hctx->tags; in bt_iter() local 303 struct blk_mq_tags *tags = iter_data->tags; in bt_tags_iter() local 347 .tags = tags, in bt_tags_for_each() 363 bt_tags_for_each(tags, &tags->breserved_tags, fn, priv, in __blk_mq_all_tag_iter() 408 if (tagset->tags && tagset->tags[i]) in blk_mq_tagset_busy_iter() 475 struct blk_mq_tags *tags = hctx->tags; in blk_mq_queue_tag_busy_iter() local 529 tags = kzalloc_node(sizeof(*tags), GFP_KERNEL, node); in blk_mq_init_tags() 530 if (!tags) in blk_mq_init_tags() 543 return tags; in blk_mq_init_tags() [all …]
|
A D | blk-mq-tag.h | 10 extern void blk_mq_free_tags(struct blk_mq_tags *tags); 20 extern void blk_mq_put_tag(struct blk_mq_tags *tags, struct blk_mq_ctx *ctx, 22 void blk_mq_put_tags(struct blk_mq_tags *tags, int *tag_array, int nr_tags); 24 struct blk_mq_tags **tags, 30 extern void blk_mq_tag_wakeup_all(struct blk_mq_tags *tags, bool); 33 void blk_mq_all_tag_iter(struct blk_mq_tags *tags, busy_tag_iter_fn *fn, 69 static inline bool blk_mq_tag_is_reserved(struct blk_mq_tags *tags, in blk_mq_tag_is_reserved() argument 72 return tag < tags->nr_reserved_tags; in blk_mq_tag_is_reserved()
|
A D | blk-mq.c | 2802 kfree(tags->rqs); in blk_mq_free_rq_map() 2803 tags->rqs = NULL; in blk_mq_free_rq_map() 2824 if (!tags) in blk_mq_alloc_rq_map() 2844 return tags; in blk_mq_alloc_rq_map() 3077 if (!tags) in blk_mq_clear_flush_rq_mapping() 3159 hctx->tags = set->tags[hctx_idx]; in blk_mq_init_hctx() 3283 if (!tags) in blk_mq_alloc_map_and_rqs() 3292 return tags; in blk_mq_alloc_map_and_rqs() 3314 if (tags) { in blk_mq_free_map_and_rqs() 3413 hctx->tags = set->tags[i]; in blk_mq_map_swqueue() [all …]
|
A D | blk-mq.h | 51 void blk_mq_free_rqs(struct blk_mq_tag_set *set, struct blk_mq_tags *tags, 53 void blk_mq_free_rq_map(struct blk_mq_tags *tags); 57 struct blk_mq_tags *tags, 177 return data->hctx->tags; in blk_mq_tags_from_data() 188 return hctx->nr_ctx && hctx->tags; in blk_mq_hw_queue_mapped() 257 blk_mq_put_tag(hctx->tags, rq->mq_ctx, rq->tag); in __blk_mq_put_driver_tag() 282 hctx->tags->rqs[rq->tag] = rq; in blk_mq_get_driver_tag() 368 users = atomic_read(&hctx->tags->active_queues); in hctx_may_queue()
|
/linux/drivers/gpu/drm/nouveau/nvkm/core/ |
A D | memory.c | 35 if (tags) { in nvkm_memory_tags_put() 38 nvkm_mm_free(&fb->tags.mm, &tags->mn); in nvkm_memory_tags_put() 39 kfree(memory->tags); in nvkm_memory_tags_put() 56 if ((tags = memory->tags)) { in nvkm_memory_tags_get() 61 if (tags->mn && tags->mn->length != nr) { in nvkm_memory_tags_get() 68 *ptags = tags; in nvkm_memory_tags_get() 72 if (!(tags = kmalloc(sizeof(*tags), GFP_KERNEL))) { in nvkm_memory_tags_get() 77 if (!nvkm_mm_head(&fb->tags.mm, 0, 1, nr, nr, 1, &tags->mn)) { in nvkm_memory_tags_get() 79 clr(device, tags->mn->offset, tags->mn->length); in nvkm_memory_tags_get() 90 tags->mn = NULL; in nvkm_memory_tags_get() [all …]
|
/linux/fs/erofs/ |
A D | tagptr.h | 57 const typeof(_tags) tags = (_tags); \ 58 if (__builtin_constant_p(tags) && (tags & ~__tagptr_mask(type))) \ 60 tagptr_init(type, (uintptr_t)(ptr) | tags); }) 86 #define tagptr_replace_tags(_ptptr, tags) ({ \ argument 88 *ptptr = tagptr_fold(*ptptr, tagptr_unfold_ptr(*ptptr), tags); \ 93 const typeof(_tags) tags = (_tags); \ 94 if (__builtin_constant_p(tags) && (tags & ~__tagptr_mask(*ptptr))) \ 96 ptptr->v |= tags; \ 101 const typeof(_tags) tags = (_tags); \ 102 if (__builtin_constant_p(tags) && (tags & ~__tagptr_mask(*ptptr))) \ [all …]
|
/linux/arch/arm64/mm/ |
A D | mteswap.c | 51 void *tags = xa_load(&mte_pages, entry.val); in mte_restore_tags() local 53 if (!tags) in mte_restore_tags() 65 mte_restore_page_tags(page_address(page), tags); in mte_restore_tags() 73 void *tags = xa_erase(&mte_pages, entry.val); in mte_invalidate_tags() local 75 mte_free_tag_storage(tags); in mte_invalidate_tags() 82 void *tags; in mte_invalidate_tags_area() local 87 xas_for_each(&xa_state, tags, last_entry.val - 1) { in mte_invalidate_tags_area() 89 mte_free_tag_storage(tags); in mte_invalidate_tags_area()
|
/linux/arch/arm/kernel/ |
A D | atags_parse.c | 179 struct tag *tags = (struct tag *)&default_tags; in setup_machine_tags() local 199 tags = atags_vaddr; in setup_machine_tags() 208 if (tags->hdr.tag != ATAG_CORE) in setup_machine_tags() 209 convert_to_tag_list(tags); in setup_machine_tags() 211 if (tags->hdr.tag != ATAG_CORE) { in setup_machine_tags() 213 tags = (struct tag *)&default_tags; in setup_machine_tags() 217 mdesc->fixup(tags, &from); in setup_machine_tags() 219 if (tags->hdr.tag == ATAG_CORE) { in setup_machine_tags() 221 squash_mem_tags(tags); in setup_machine_tags() 222 save_atags(tags); in setup_machine_tags() [all …]
|
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ |
A D | nv20.c | 47 u32 tags = round_up(tiles / fb->ram->parts, 0x40); in nv20_fb_tile_comp() local 48 if (!nvkm_mm_head(&fb->tags.mm, 0, 1, tags, tags, 1, &tile->tag)) { in nv20_fb_tile_comp() 66 nvkm_mm_free(&fb->tags.mm, &tile->tag); in nv20_fb_tile_fini() 83 const u32 tags = nvkm_rd32(fb->subdev.device, 0x100320); in nv20_fb_tags() local 84 return tags ? tags + 1 : 0; in nv20_fb_tags() 89 .tags = nv20_fb_tags,
|
A D | nv35.c | 34 u32 tags = round_up(tiles / fb->ram->parts, 0x40); in nv35_fb_tile_comp() local 35 if (!nvkm_mm_head(&fb->tags.mm, 0, 1, tags, tags, 1, &tile->tag)) { in nv35_fb_tile_comp() 39 tile->zcomp |= ((tile->tag->offset + tags - 1) >> 6) << 13; in nv35_fb_tile_comp() 48 .tags = nv20_fb_tags,
|
A D | nv36.c | 34 u32 tags = round_up(tiles / fb->ram->parts, 0x40); in nv36_fb_tile_comp() local 35 if (!nvkm_mm_head(&fb->tags.mm, 0, 1, tags, tags, 1, &tile->tag)) { in nv36_fb_tile_comp() 39 tile->zcomp |= ((tile->tag->offset + tags - 1) >> 6) << 14; in nv36_fb_tile_comp() 48 .tags = nv20_fb_tags,
|
A D | nv40.c | 34 u32 tags = round_up(tiles / fb->ram->parts, 0x100); in nv40_fb_tile_comp() local 36 !nvkm_mm_head(&fb->tags.mm, 0, 1, tags, tags, 1, &tile->tag)) { in nv40_fb_tile_comp() 39 tile->zcomp |= ((tile->tag->offset + tags - 1) >> 8) << 13; in nv40_fb_tile_comp() 54 .tags = nv20_fb_tags,
|
A D | base.c | 100 u32 tags = 0; in nvkm_fb_oneinit() local 120 if (fb->func->tags) { in nvkm_fb_oneinit() 121 tags = fb->func->tags(fb); in nvkm_fb_oneinit() 122 nvkm_debug(subdev, "%d comptags\n", tags); in nvkm_fb_oneinit() 125 return nvkm_mm_init(&fb->tags.mm, 0, 0, tags, 1); in nvkm_fb_oneinit() 208 nvkm_mm_fini(&fb->tags.mm); in nvkm_fb_dtor() 209 mutex_destroy(&fb->tags.mutex); in nvkm_fb_dtor() 236 mutex_init(&fb->tags.mutex); in nvkm_fb_ctor()
|
A D | nv25.c | 34 u32 tags = round_up(tiles / fb->ram->parts, 0x40); in nv25_fb_tile_comp() local 35 if (!nvkm_mm_head(&fb->tags.mm, 0, 1, tags, tags, 1, &tile->tag)) { in nv25_fb_tile_comp() 47 .tags = nv20_fb_tags,
|
A D | nv30.c | 53 u32 tags = round_up(tiles / fb->ram->parts, 0x40); in nv30_fb_tile_comp() local 54 if (!nvkm_mm_head(&fb->tags.mm, 0, 1, tags, tags, 1, &tile->tag)) { in nv30_fb_tile_comp() 58 tile->zcomp |= ((tile->tag->offset + tags - 1) >> 6) << 12; in nv30_fb_tile_comp() 119 .tags = nv20_fb_tags,
|
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/volt/ |
A D | gpio.c | 30 static const u8 tags[] = { variable 42 for (i = 0; i < ARRAY_SIZE(tags); i++) { in nvkm_voltgpio_get() 44 int ret = nvkm_gpio_get(gpio, 0, tags[i], 0xff); in nvkm_voltgpio_get() 60 for (i = 0; i < ARRAY_SIZE(tags); i++, vid >>= 1) { in nvkm_voltgpio_set() 62 int ret = nvkm_gpio_set(gpio, 0, tags[i], 0xff, vid & 1); in nvkm_voltgpio_set() 85 for (i = 0; i < ARRAY_SIZE(tags); i++) { in nvkm_voltgpio_init() 87 int ret = nvkm_gpio_find(gpio, 0, tags[i], 0xff, &func); in nvkm_voltgpio_init()
|
/linux/arch/sparc/kernel/ |
A D | adi_64.c | 160 unsigned char *tags; in alloc_tag_store() local 284 tags = kzalloc(size, GFP_NOWAIT|__GFP_NOWARN); in alloc_tag_store() 285 if (tags == NULL) { in alloc_tag_store() 291 tag_desc->tags = tags; in alloc_tag_store() 302 unsigned char *tags = NULL; in del_tag_store() local 313 tags = tag_desc->tags; in del_tag_store() 314 tag_desc->tags = NULL; in del_tag_store() 318 kfree(tags); in del_tag_store() 322 ((tag_desc)->tags + ((addr - (tag_desc)->start)/(2*adi_blksize())))
|
/linux/Documentation/arm64/ |
A D | memory-tagging-extension.rst | 36 To access the allocation tags, a user process must enable the Tagged 40 ``PROT_MTE`` - Pages allow access to the MTE allocation tags. 44 supported and the allocation tags can be shared between processes. 62 the logical and allocation tags occurs on access, there are three 120 excludes all tags other than 0. A user thread can enable specific tags 162 - ``PR_MTE_TAG_MASK`` set to 0 (all tags excluded) 175 the tags from or set the tags to a tracee's address space. The 197 tracer's space cannot be accessed or does not have valid tags. 200 address) and no tags copied. ``iov_len`` not updated. 288 * non-zero tags in the randomly generated set. [all …]
|
/linux/tools/testing/selftests/arm64/mte/ |
A D | mte_common_util.c | 121 bool tags, int fd) in __mte_allocate_memory_range() argument 156 if (tags) in __mte_allocate_memory_range() 168 void *mte_allocate_memory(size_t size, int mem_type, int mapping, bool tags) in mte_allocate_memory() argument 170 return __mte_allocate_memory_range(size, mem_type, mapping, 0, 0, tags, -1); in mte_allocate_memory() 173 void *mte_allocate_file_memory(size_t size, int mem_type, int mapping, bool tags, int fd) in mte_allocate_file_memory() argument 195 return __mte_allocate_memory_range(size, mem_type, mapping, 0, 0, tags, fd); in mte_allocate_file_memory() 226 size_t range_before, size_t range_after, bool tags) in __mte_free_memory_range() argument 234 if (tags) in __mte_free_memory_range() 250 void mte_free_memory(void *ptr, size_t size, int mem_type, bool tags) in mte_free_memory() argument 252 __mte_free_memory_range(ptr, size, mem_type, 0, 0, tags); in mte_free_memory()
|
A D | mte_common_util.h | 45 void *mte_allocate_memory(size_t size, int mem_type, int mapping, bool tags); 49 bool tags, int fd); 52 void mte_free_memory(void *ptr, size_t size, int mem_type, bool tags); 85 int mem_type, bool tags) in check_allocated_memory() argument 92 if (tags && !MT_FETCH_TAG((uintptr_t)ptr)) { in check_allocated_memory()
|
/linux/arch/arm64/kernel/ |
A D | mte.c | 348 unsigned long tags, offset; in __access_remote_tags() local 373 tags = min(len, (PAGE_SIZE - offset) / MTE_GRANULE_SIZE); in __access_remote_tags() 377 tags = mte_copy_tags_from_user(maddr + offset, buf, tags); in __access_remote_tags() 380 tags = mte_copy_tags_to_user(buf, maddr + offset, tags); in __access_remote_tags() 385 if (!tags) in __access_remote_tags() 388 len -= tags; in __access_remote_tags() 389 buf += tags; in __access_remote_tags() 390 addr += tags * MTE_GRANULE_SIZE; in __access_remote_tags()
|
A D | hibernate.c | 249 void *tags; in swsusp_mte_free_storage() local 252 xas_for_each(&xa_state, tags, ULONG_MAX) { in swsusp_mte_free_storage() 253 mte_free_tag_storage(tags); in swsusp_mte_free_storage() 300 void *tags; in swsusp_mte_restore_tags() local 303 xas_for_each(&xa_state, tags, ULONG_MAX) { in swsusp_mte_restore_tags() 312 mte_restore_page_tags(page_address(page), tags); in swsusp_mte_restore_tags() 314 mte_free_tag_storage(tags); in swsusp_mte_restore_tags()
|
/linux/include/linux/ |
A D | radix-tree.h | 109 unsigned long tags; member 343 iter->tags = 0; in radix_tree_iter_retry() 401 iter->tags >>= 1; in radix_tree_next_slot() 402 if (unlikely(!iter->tags)) in radix_tree_next_slot() 404 if (likely(iter->tags & 1ul)) { in radix_tree_next_slot() 410 unsigned offset = __ffs(iter->tags); in radix_tree_next_slot() 412 iter->tags >>= offset++; in radix_tree_next_slot()
|
/linux/Documentation/sparc/ |
A D | adi.rst | 6 ADI allows a task to set version tags on any subset of its address 7 space. Once ADI is enabled and version tags are set for ranges of 26 be repeated for entire page to set tags for entire page. 34 SPARC M7 processor, MMU uses bits 63-60 for version tags and ADI block 41 kernel sets the PSTATE.mcde bit fot the task. Version tags for memory 62 tags are stored in physical memory. Tags are set on a physical page 69 version tags as well for the page. If a page allocated to a task is 75 - Kernel does not set any tags for user pages and it is entirely a 77 version tags are preserved if a page is swapped out to the disk and 78 swapped back in. It also preserves that version tags if a page is [all …]
|
/linux/drivers/block/ |
A D | ps3vram.c | 64 struct ps3vram_tag *tags; member 317 cache->tags[entry].address); in ps3vram_cache_evict() 319 cache->tags[entry].address, DMA_PAGE_SIZE, in ps3vram_cache_evict() 326 cache->tags[entry].flags &= ~CACHE_PAGE_DIRTY; in ps3vram_cache_evict() 345 cache->tags[entry].address = address; in ps3vram_cache_load() 359 cache->tags[i].flags = 0; in ps3vram_cache_flush() 379 cache->tags[i].address == base) { in ps3vram_cache_match() 382 cache->tags[i].address); in ps3vram_cache_match() 404 priv->cache.tags = kcalloc(CACHE_PAGE_COUNT, in ps3vram_cache_init() 407 if (!priv->cache.tags) in ps3vram_cache_init() [all …]
|