/kernel/linux/linux-5.10/block/ |
D | blk-mq-tag.c | 36 atomic_inc(&hctx->tags->active_queues); in __blk_mq_tag_busy() 45 void blk_mq_tag_wakeup_all(struct blk_mq_tags *tags, bool include_reserve) in blk_mq_tag_wakeup_all() argument 47 sbitmap_queue_wake_all(tags->bitmap_tags); in blk_mq_tag_wakeup_all() 49 sbitmap_queue_wake_all(tags->breserved_tags); in blk_mq_tag_wakeup_all() 58 struct blk_mq_tags *tags = hctx->tags; in __blk_mq_tag_idle() local 70 atomic_dec(&tags->active_queues); in __blk_mq_tag_idle() 73 blk_mq_tag_wakeup_all(tags, false); in __blk_mq_tag_idle() 91 struct blk_mq_tags *tags = blk_mq_tags_from_data(data); in blk_mq_get_tag() local 99 if (unlikely(!tags->nr_reserved_tags)) { in blk_mq_get_tag() 103 bt = tags->breserved_tags; in blk_mq_get_tag() [all …]
|
D | blk-mq-tag.h | 34 extern void blk_mq_free_tags(struct blk_mq_tags *tags, unsigned int flags); 41 extern void blk_mq_put_tag(struct blk_mq_tags *tags, struct blk_mq_ctx *ctx, 44 struct blk_mq_tags **tags, 49 extern void blk_mq_tag_wakeup_all(struct blk_mq_tags *tags, bool); 52 void blk_mq_all_tag_iter(struct blk_mq_tags *tags, busy_tag_iter_fn *fn, 88 static inline bool blk_mq_tag_is_reserved(struct blk_mq_tags *tags, in blk_mq_tag_is_reserved() argument 91 return tag < tags->nr_reserved_tags; in blk_mq_tag_is_reserved()
|
D | blk-mq.c | 280 blk_mq_tag_wakeup_all(hctx->tags, true); in blk_mq_wake_waiters() 295 struct blk_mq_tags *tags = blk_mq_tags_from_data(data); in blk_mq_rq_ctx_init() local 296 struct request *rq = tags->static_rqs[tag]; in blk_mq_rq_ctx_init() 514 blk_mq_put_tag(hctx->tags, ctx, rq->tag); in __blk_mq_free_request() 874 struct request *blk_mq_tag_to_rq(struct blk_mq_tags *tags, unsigned int tag) in blk_mq_tag_to_rq() argument 876 if (tag < tags->nr_tags) { in blk_mq_tag_to_rq() 877 prefetch(tags->rqs[tag]); in blk_mq_tag_to_rq() 878 return tags->rqs[tag]; in blk_mq_tag_to_rq() 1099 struct sbitmap_queue *bt = rq->mq_hctx->tags->bitmap_tags; in __blk_mq_get_driver_tag() 1100 unsigned int tag_offset = rq->mq_hctx->tags->nr_reserved_tags; in __blk_mq_get_driver_tag() [all …]
|
D | blk-mq.h | 55 void blk_mq_free_rqs(struct blk_mq_tag_set *set, struct blk_mq_tags *tags, 57 void blk_mq_free_rq_map(struct blk_mq_tags *tags, unsigned int flags); 63 int blk_mq_alloc_rqs(struct blk_mq_tag_set *set, struct blk_mq_tags *tags, 174 return data->hctx->tags; in blk_mq_tags_from_data() 184 return hctx->nr_ctx && hctx->tags; in blk_mq_hw_queue_mapped() 229 blk_mq_put_tag(hctx->tags, rq->mq_ctx, rq->tag); in __blk_mq_put_driver_tag() 325 users = atomic_read(&hctx->tags->active_queues); in hctx_may_queue()
|
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/core/ |
D | memory.c | 34 struct nvkm_tags *tags = *ptags; in nvkm_memory_tags_put() local 35 if (tags) { in nvkm_memory_tags_put() 37 if (refcount_dec_and_test(&tags->refcount)) { in nvkm_memory_tags_put() 38 nvkm_mm_free(&fb->tags, &tags->mn); in nvkm_memory_tags_put() 39 kfree(memory->tags); in nvkm_memory_tags_put() 40 memory->tags = NULL; in nvkm_memory_tags_put() 53 struct nvkm_tags *tags; in nvkm_memory_tags_get() local 56 if ((tags = memory->tags)) { in nvkm_memory_tags_get() 61 if (tags->mn && tags->mn->length != nr) { in nvkm_memory_tags_get() 66 refcount_inc(&tags->refcount); in nvkm_memory_tags_get() [all …]
|
/kernel/linux/linux-5.10/fs/erofs/ |
D | tagptr.h | 59 const typeof(_tags) tags = (_tags); \ 60 if (__builtin_constant_p(tags) && (tags & ~__tagptr_mask(type))) \ 62 tagptr_init(type, (uintptr_t)(ptr) | tags); }) 88 #define tagptr_replace_tags(_ptptr, tags) ({ \ argument 90 *ptptr = tagptr_fold(*ptptr, tagptr_unfold_ptr(*ptptr), tags); \ 95 const typeof(_tags) tags = (_tags); \ 96 if (__builtin_constant_p(tags) && (tags & ~__tagptr_mask(*ptptr))) \ 98 ptptr->v |= tags; \ 103 const typeof(_tags) tags = (_tags); \ 104 if (__builtin_constant_p(tags) && (tags & ~__tagptr_mask(*ptptr))) \ [all …]
|
/kernel/linux/linux-5.10/arch/arm64/mm/ |
D | mteswap.c | 51 void *tags = xa_load(&mte_pages, entry.val); in mte_restore_tags() local 53 if (!tags) in mte_restore_tags() 56 mte_restore_page_tags(page_address(page), tags); in mte_restore_tags() 64 void *tags = xa_erase(&mte_pages, entry.val); in mte_invalidate_tags() local 66 mte_free_tag_storage(tags); in mte_invalidate_tags() 73 void *tags; in mte_invalidate_tags_area() local 78 xas_for_each(&xa_state, tags, last_entry.val - 1) { in mte_invalidate_tags_area() 80 mte_free_tag_storage(tags); in mte_invalidate_tags_area()
|
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ |
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, 0, 1, tags, tags, 1, &tile->tag)) { in nv20_fb_tile_comp() 66 nvkm_mm_free(&fb->tags, &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,
|
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, 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,
|
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, 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,
|
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, 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,
|
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, 0, 1, tags, tags, 1, &tile->tag)) { in nv25_fb_tile_comp() 47 .tags = nv20_fb_tags,
|
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, 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,
|
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, 0, 0, tags, 1); in nvkm_fb_oneinit() 208 nvkm_mm_fini(&fb->tags); in nvkm_fb_dtor()
|
/kernel/linux/linux-5.10/arch/arm/kernel/ |
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() 201 tags = (void *)(PAGE_OFFSET + mdesc->atag_offset); 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() [all …]
|
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/subdev/volt/ |
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()
|
/kernel/linux/linux-5.10/arch/arm64/kernel/ |
D | mte.c | 226 unsigned long tags, offset; in __access_remote_tags() local 251 tags = min(len, (PAGE_SIZE - offset) / MTE_GRANULE_SIZE); in __access_remote_tags() 255 tags = mte_copy_tags_from_user(maddr + offset, buf, tags); in __access_remote_tags() 258 tags = mte_copy_tags_to_user(buf, maddr + offset, tags); in __access_remote_tags() 263 if (!tags) in __access_remote_tags() 266 len -= tags; in __access_remote_tags() 267 buf += tags; in __access_remote_tags() 268 addr += tags * MTE_GRANULE_SIZE; in __access_remote_tags()
|
/kernel/linux/linux-5.10/arch/sparc/kernel/ |
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())))
|
/kernel/linux/linux-5.10/Documentation/arm64/ |
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. 55 ``MADV_FREE`` may have the allocation tags cleared (set to 0) at any 62 the logical and allocation tags occurs on access, there are three 98 **Note**: There are no *match-all* logical tags available for user 112 The architecture allows excluding certain tags to be randomly generated 114 excludes all tags other than 0. A user thread can enable specific tags 116 flags, 0, 0, 0)`` system call where ``flags`` contains the tags bitmap 130 - ``PR_MTE_TAG_MASK`` set to 0 (all tags excluded) [all …]
|
D | tagged-pointers.rst | 38 Using non-zero address tags in any of these locations when the 44 passing non-zero address tags to the kernel via system calls is 49 address tags may suffer impaired or inaccurate debug and profiling 53 Preserving tags 56 Non-zero tags are not preserved when delivering signals. This means that 57 signal handlers in applications making use of tags cannot rely on the
|
/kernel/linux/linux-5.10/tools/testing/selftests/arm64/mte/ |
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 188 return __mte_allocate_memory_range(size, mem_type, mapping, 0, 0, tags, fd); in mte_allocate_file_memory() 213 size_t range_before, size_t range_after, bool tags) in __mte_free_memory_range() argument 221 if (tags) in __mte_free_memory_range() 237 void mte_free_memory(void *ptr, size_t size, int mem_type, bool tags) in mte_free_memory() argument 239 __mte_free_memory_range(ptr, size, mem_type, 0, 0, tags); in mte_free_memory()
|
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()
|
/kernel/linux/linux-5.10/include/linux/ |
D | radix-tree.h | 107 unsigned long tags; member 341 iter->tags = 0; in radix_tree_iter_retry() 399 iter->tags >>= 1; in radix_tree_next_slot() 400 if (unlikely(!iter->tags)) in radix_tree_next_slot() 402 if (likely(iter->tags & 1ul)) { in radix_tree_next_slot() 408 unsigned offset = __ffs(iter->tags); in radix_tree_next_slot() 410 iter->tags >>= offset++; in radix_tree_next_slot()
|
/kernel/linux/linux-5.10/Documentation/sparc/ |
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 61 - Version tags are set on virtual addresses from userspace even though 62 tags are stored in physical memory. Tags are set on a physical page 66 - When a task frees a memory page it had set version tags on, the page 69 version tags as well for the page. If a page allocated to a task is 70 freed and allocated back to the same task, old version tags set by the [all …]
|
/kernel/linux/linux-5.10/drivers/block/ |
D | ps3vram.c | 64 struct ps3vram_tag *tags; member 314 if (!(cache->tags[entry].flags & CACHE_PAGE_DIRTY)) in ps3vram_cache_evict() 318 cache->tags[entry].address); in ps3vram_cache_evict() 320 cache->tags[entry].address, DMA_PAGE_SIZE, in ps3vram_cache_evict() 324 entry * cache->page_size, cache->tags[entry].address, in ps3vram_cache_evict() 327 cache->tags[entry].flags &= ~CACHE_PAGE_DIRTY; in ps3vram_cache_evict() 346 cache->tags[entry].address = address; in ps3vram_cache_load() 347 cache->tags[entry].flags |= CACHE_PAGE_PRESENT; in ps3vram_cache_load() 360 cache->tags[i].flags = 0; in ps3vram_cache_flush() 379 if ((cache->tags[i].flags & CACHE_PAGE_PRESENT) && in ps3vram_cache_match() [all …]
|