| /kernel/linux/linux-4.19/block/ |
| D | blk-mq-tag.c | 3 * fairer distribution of tags between multiple submitters when a shared tag map 16 bool blk_mq_has_free_tags(struct blk_mq_tags *tags) in blk_mq_has_free_tags() argument 18 if (!tags) in blk_mq_has_free_tags() 21 return sbitmap_any_bit_clear(&tags->bitmap_tags.sb); in blk_mq_has_free_tags() 34 atomic_inc(&hctx->tags->active_queues); in __blk_mq_tag_busy() 40 * Wakeup all potentially sleeping on tags 42 void blk_mq_tag_wakeup_all(struct blk_mq_tags *tags, bool include_reserve) in blk_mq_tag_wakeup_all() argument 44 sbitmap_queue_wake_all(&tags->bitmap_tags); in blk_mq_tag_wakeup_all() 46 sbitmap_queue_wake_all(&tags->breserved_tags); in blk_mq_tag_wakeup_all() 55 struct blk_mq_tags *tags = hctx->tags; in __blk_mq_tag_idle() local [all …]
|
| D | blk-tag.c | 90 init_tag_map(struct request_queue *q, struct blk_queue_tag *tags, int depth) in init_tag_map() argument 111 tags->real_max_depth = depth; in init_tag_map() 112 tags->max_depth = depth; in init_tag_map() 113 tags->tag_index = tag_index; in init_tag_map() 114 tags->tag_map = tag_map; in init_tag_map() 125 struct blk_queue_tag *tags; in __blk_queue_init_tags() local 127 tags = kmalloc(sizeof(struct blk_queue_tag), GFP_ATOMIC); in __blk_queue_init_tags() 128 if (!tags) in __blk_queue_init_tags() 131 if (init_tag_map(q, tags, depth)) in __blk_queue_init_tags() 134 atomic_set(&tags->refcnt, 1); in __blk_queue_init_tags() [all …]
|
| D | blk-mq-tag.h | 26 extern void blk_mq_free_tags(struct blk_mq_tags *tags); 29 extern void blk_mq_put_tag(struct blk_mq_hw_ctx *hctx, struct blk_mq_tags *tags, 31 extern bool blk_mq_has_free_tags(struct blk_mq_tags *tags); 33 struct blk_mq_tags **tags, 35 extern void blk_mq_tag_wakeup_all(struct blk_mq_tags *tags, bool); 81 hctx->tags->rqs[tag] = rq; in blk_mq_tag_set_rq() 84 static inline bool blk_mq_tag_is_reserved(struct blk_mq_tags *tags, in blk_mq_tag_is_reserved() argument 87 return tag < tags->nr_reserved_tags; in blk_mq_tag_is_reserved()
|
| /kernel/linux/linux-5.10/block/ |
| D | blk-mq-tag.c | 4 * fairer distribution of tags between multiple submitters when a shared tag map 36 atomic_inc(&hctx->tags->active_queues); in __blk_mq_tag_busy() 43 * Wakeup all potentially sleeping on tags 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 [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()
|
| /kernel/linux/linux-4.19/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/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 | 29 extern void __compiletime_error("bad tagptr tags") 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); \ [all …]
|
| /kernel/linux/linux-4.19/drivers/staging/erofs/include/linux/ |
| D | tagptr.h | 29 extern void __compiletime_error("bad tagptr tags") 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); \ [all …]
|
| /kernel/linux/linux-5.10/arch/arm64/mm/ |
| D | mteswap.c | 14 /* tags granule is 16 bytes, 2 tags stored per byte */ in mte_allocate_tag_storage() 38 if (WARN(xa_is_err(ret), "Failed to store MTE tags")) { in mte_save_tags() 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/arch/arm64/lib/ |
| D | mte.S | 27 * Clear the tags in a page 40 * Copy the tags from the source page to the destination one 58 * Read tags from a user buffer (one tag per byte) and set the corresponding 59 * tags at the given kernel address. Used by PTRACE_POKEMTETAGS. 62 * x2 - number of tags/bytes (n) 64 * x0 - number of tags read/set 78 2: sub x0, x1, x3 // update the number of tags set 83 * Get the tags from a kernel address range and write the tag values to the 87 * x2 - number of tags/bytes (n) 89 * x0 - number of tags read/set [all …]
|
| /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 109 Excluding Tags in the ``IRG``, ``ADDG`` and ``SUBG`` instructions 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 [all …]
|
| /kernel/linux/linux-5.10/arch/arm64/kernel/ |
| D | mte.c | 43 /* if PG_mte_tagged is set, tags have already been initialised */ in mte_sync_tags() 65 * pages is tagged, set_pte_at() may zero or change the tags of the in memcmp_pages() 206 * Access MTE tags in another process' address space as given in mm. Update 207 * the number of tags copied. Return 0 if any tags copied, error otherwise. 226 unsigned long tags, offset; in __access_remote_tags() local 236 * Only copy tags if the page has been mapped as PROT_MTE in __access_remote_tags() 237 * (PG_mte_tagged set). Otherwise the tags are not valid and in __access_remote_tags() 239 * would cause the existing tags to be cleared if the page in __access_remote_tags() 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() [all …]
|
| /kernel/linux/linux-4.19/arch/arm/kernel/ |
| D | atags_parse.c | 14 * of variable-sized tags to the kernel. The first tag must be a ATAG_CORE 162 * Parse all tags in the list, checking both the global and architecture 183 struct tag *tags = (struct tag *)&default_tags; in setup_machine_tags() local 203 tags = phys_to_virt(__atags_pointer); in setup_machine_tags() 205 tags = (void *)(PAGE_OFFSET + mdesc->atag_offset); in setup_machine_tags() 212 if (tags->hdr.tag != ATAG_CORE) in setup_machine_tags() 213 convert_to_tag_list(tags); in setup_machine_tags() 215 if (tags->hdr.tag != ATAG_CORE) { in setup_machine_tags() 217 tags = (struct tag *)&default_tags; in setup_machine_tags() 221 mdesc->fixup(tags, &from); in setup_machine_tags() [all …]
|
| /kernel/linux/linux-5.10/arch/arm/kernel/ |
| D | atags_parse.c | 11 * of variable-sized tags to the kernel. The first tag must be a ATAG_CORE 158 * Parse all tags in the list, checking both the global and architecture 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() [all …]
|
| /kernel/linux/linux-5.10/arch/sparc/kernel/ |
| D | adi_64.c | 17 /* Each page of storage for ADI tags can accommodate tags for 128 21 * store tags for four SWAPFILE_CLUSTER pages to reduce need for 100 /* Some of the code to support swapping ADI tags is written in mdesc_adi_init() 101 * assumption that two ADI tags can fit inside one byte. If in mdesc_adi_init() 160 unsigned char *tags; in alloc_tag_store() local 231 * store tags for as many pages in this vma as possible but not in alloc_tag_store() 233 * two ADI tags since each ADI tag is 4 bits. Each ADI tag in alloc_tag_store() 261 * only one page for storing ADI tags in alloc_tag_store() 284 tags = kzalloc(size, GFP_NOWAIT|__GFP_NOWARN); in alloc_tag_store() 285 if (tags == NULL) { in alloc_tag_store() [all …]
|
| /kernel/linux/linux-4.19/arch/sparc/kernel/ |
| D | adi_64.c | 18 /* Each page of storage for ADI tags can accommodate tags for 128 22 * store tags for four SWAPFILE_CLUSTER pages to reduce need for 101 /* Some of the code to support swapping ADI tags is written in mdesc_adi_init() 102 * assumption that two ADI tags can fit inside one byte. If in mdesc_adi_init() 161 unsigned char *tags; in alloc_tag_store() local 232 * store tags for as many pages in this vma as possible but not in alloc_tag_store() 234 * two ADI tags since each ADI tag is 4 bits. Each ADI tag in alloc_tag_store() 262 * only one page for storing ADI tags in alloc_tag_store() 285 tags = kzalloc(size, GFP_NOWAIT|__GFP_NOWARN); in alloc_tag_store() 286 if (tags == NULL) { in alloc_tag_store() [all …]
|
| /kernel/linux/linux-4.19/Documentation/sparc/ |
| D | adi.txt | 5 ADI allows a task to set version tags on any subset of its address 6 space. Once ADI is enabled and version tags are set for ranges of 25 be repeated for entire page to set tags for entire page. 33 SPARC M7 processor, MMU uses bits 63-60 for version tags and ADI block 40 kernel sets the PSTATE.mcde bit fot the task. Version tags for memory 57 - Version tags are set on virtual addresses from userspace even though 58 tags are stored in physical memory. Tags are set on a physical page 62 - When a task frees a memory page it had set version tags on, the page 65 version tags as well for the page. If a page allocated to a task is 66 freed and allocated back to the same task, old version tags set by the [all …]
|
| /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-4.19/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,
|
| /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,
|
| /kernel/linux/linux-5.10/tools/perf/ |
| D | Makefile | 64 # (Except for tags and TAGS targets. The reason is that the 65 # Makefile does not treat tags/TAGS as targets but as files 68 all tags TAGS: target 112 .PHONY: tags TAGS FORCE Makefile
|
| /kernel/linux/linux-4.19/tools/perf/ |
| D | Makefile | 64 # (Except for tags and TAGS targets. The reason is that the 65 # Makefile does not treat tags/TAGS as targets but as files 68 all tags TAGS: target 112 .PHONY: tags TAGS FORCE Makefile
|
| /kernel/linux/linux-4.19/Documentation/device-mapper/ |
| D | dm-integrity.txt | 2 per-sector tags that can be used for storing integrity information. 4 A general problem with storing integrity tags with every sector is that 9 writes sector data and integrity tags into a journal, commits the journal 10 and then copies the data and integrity tags to their respective location. 54 not used and data sectors and integrity tags are written 57 J - journaled writes - data and integrity tags are written to the 103 integrity tags from the upper target, but it will automatically 104 generate and verify the integrity tags. 112 When this argument is not used, the integrity tags are accepted 114 target should check the validity of the integrity tags. [all …]
|
| /kernel/linux/linux-5.10/include/linux/ |
| D | radix-tree.h | 74 /* The top bits of xa_flags are used to store the root tags */ 94 * @tags: bit-mask for tag-iterating 107 unsigned long tags; member 121 * - any function _modifying_ the tree or tags (inserting or deleting 122 * items, setting or clearing tags) must exclude other modifications, and 124 * - any function _reading_ the tree or tags (looking up items or tags, 153 * if only the RCU read lock is held. Functions to set/clear tags and to 282 * Leave iter->tags uninitialized. radix_tree_next_chunk() will fill it in radix_tree_iter_init() 284 * unsuccessful or non-tagged then nobody cares about ->tags. in radix_tree_iter_init() 305 * its end (next_index), and constructs a bit mask for tagged iterating (tags). [all …]
|