Home
last modified time | relevance | path

Searched full:tags (Results 1 – 25 of 1093) sorted by relevance

12345678910>>...44

/kernel/linux/linux-6.6/block/
Dblk-mq-tag.c4 * fairer distribution of tags between multiple submitters when a shared tag map
20 static void blk_mq_update_wake_batch(struct blk_mq_tags *tags, in blk_mq_update_wake_batch() argument
26 sbitmap_queue_recalculate_wake_batch(&tags->bitmap_tags, in blk_mq_update_wake_batch()
28 sbitmap_queue_recalculate_wake_batch(&tags->breserved_tags, in blk_mq_update_wake_batch()
42 struct blk_mq_tags *tags = hctx->tags; in __blk_mq_tag_busy() local
60 spin_lock_irqsave(&tags->lock, flags); in __blk_mq_tag_busy()
61 users = tags->active_queues + 1; in __blk_mq_tag_busy()
62 WRITE_ONCE(tags->active_queues, users); in __blk_mq_tag_busy()
63 blk_mq_update_wake_batch(tags, users); in __blk_mq_tag_busy()
64 spin_unlock_irqrestore(&tags->lock, flags); in __blk_mq_tag_busy()
[all …]
Dblk-mq.h58 void blk_mq_free_rqs(struct blk_mq_tag_set *set, struct blk_mq_tags *tags,
60 void blk_mq_free_rq_map(struct blk_mq_tags *tags);
64 struct blk_mq_tags *tags,
154 /* allocate multiple requests/tags in one go */
165 void blk_mq_free_tags(struct blk_mq_tags *tags);
173 void blk_mq_put_tag(struct blk_mq_tags *tags, struct blk_mq_ctx *ctx,
175 void blk_mq_put_tags(struct blk_mq_tags *tags, int *tag_array, int nr_tags);
177 struct blk_mq_tags **tags, unsigned int depth, bool can_grow);
182 void blk_mq_tag_wakeup_all(struct blk_mq_tags *tags, bool);
185 void blk_mq_all_tag_iter(struct blk_mq_tags *tags, busy_tag_iter_fn *fn,
[all …]
/kernel/linux/linux-5.10/block/
Dblk-mq-tag.c4 * 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 …]
Dblk-mq-tag.h34 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-6.6/drivers/gpu/drm/nouveau/nvkm/core/
Dmemory.c34 struct nvkm_tags *tags = *ptags; in nvkm_memory_tags_put() local
35 if (tags) { in nvkm_memory_tags_put()
36 mutex_lock(&fb->tags.mutex); in nvkm_memory_tags_put()
37 if (refcount_dec_and_test(&tags->refcount)) { 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()
40 memory->tags = NULL; in nvkm_memory_tags_put()
42 mutex_unlock(&fb->tags.mutex); in nvkm_memory_tags_put()
53 struct nvkm_tags *tags; in nvkm_memory_tags_get() local
55 mutex_lock(&fb->tags.mutex); in nvkm_memory_tags_get()
[all …]
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/core/
Dmemory.c34 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/
Dtagptr.h29 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-6.6/arch/arm64/mm/
Dmteswap.c14 /* tags granule is 16 bytes, 2 tags stored per byte */ in mte_allocate_tag_storage()
39 if (WARN(xa_is_err(ret), "Failed to store MTE tags")) { in mte_save_tags()
52 void *tags = xa_load(&mte_pages, entry.val); in mte_restore_tags() local
54 if (!tags) in mte_restore_tags()
58 mte_restore_page_tags(page_address(page), tags); in mte_restore_tags()
66 void *tags = xa_erase(&mte_pages, entry.val); in mte_invalidate_tags() local
68 mte_free_tag_storage(tags); in mte_invalidate_tags()
75 void *tags; in mte_invalidate_tags_area() local
80 xas_for_each(&xa_state, tags, last_entry.val - 1) { in mte_invalidate_tags_area()
82 mte_free_tag_storage(tags); in mte_invalidate_tags_area()
/kernel/linux/linux-5.10/arch/arm64/mm/
Dmteswap.c14 /* 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/kernel/
Dmte.c43 /* if PG_mte_tagged is set, tags have already been initialised */ in mte_sync_tags()
49 /* ensure the tags are visible before the PTE is set */ in mte_sync_tags()
68 * pages is tagged, set_pte_at() may zero or change the tags of the in memcmp_pages()
209 * Access MTE tags in another process' address space as given in mm. Update
210 * the number of tags copied. Return 0 if any tags copied, error otherwise.
229 unsigned long tags, offset; in __access_remote_tags() local
239 * Only copy tags if the page has been mapped as PROT_MTE in __access_remote_tags()
240 * (PG_mte_tagged set). Otherwise the tags are not valid and in __access_remote_tags()
242 * would cause the existing tags to be cleared if the page in __access_remote_tags()
254 tags = min(len, (PAGE_SIZE - offset) / MTE_GRANULE_SIZE); in __access_remote_tags()
[all …]
/kernel/linux/linux-5.10/arch/arm64/lib/
Dmte.S27 * 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-6.6/Documentation/arch/arm64/
Dmemory-tagging-extension.rst36 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
108 **Note**: There are no *match-all* logical tags available for user
119 Excluding Tags in the ``IRG``, ``ADDG`` and ``SUBG`` instructions
122 The architecture allows excluding certain tags to be randomly generated
124 excludes all tags other than 0. A user thread can enable specific tags
126 flags, 0, 0, 0)`` system call where ``flags`` contains the tags bitmap
[all …]
/kernel/linux/linux-6.6/arch/arm64/lib/
Dmte.S27 * Clear the tags in a page
40 * Zero the page and tags at the same time
66 * Copy the tags from the source page to the destination one
84 * Read tags from a user buffer (one tag per byte) and set the corresponding
85 * tags at the given kernel address. Used by PTRACE_POKEMTETAGS.
88 * x2 - number of tags/bytes (n)
90 * x0 - number of tags read/set
104 2: sub x0, x1, x3 // update the number of tags set
109 * Get the tags from a kernel address range and write the tag values to the
113 * x2 - number of tags/bytes (n)
[all …]
/kernel/linux/linux-5.10/Documentation/arm64/
Dmemory-tagging-extension.rst36 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/arm/kernel/
Datags_parse.c11 * 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-6.6/arch/arm/kernel/
Datags_parse.c11 * 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/
Dadi_64.c17 /* 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-6.6/arch/sparc/kernel/
Dadi_64.c17 /* 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-6.6/Documentation/arch/sparc/
Dadi.rst6 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 for 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/Documentation/sparc/
Dadi.rst6 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-6.6/drivers/gpu/drm/nouveau/nvkm/subdev/fb/
Dnv20.c47 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,
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/nvkm/subdev/fb/
Dnv20.c47 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-6.6/arch/arm64/kernel/
Dmte.c43 /* if PG_mte_tagged is set, tags have already been initialised */ in mte_sync_tags()
51 /* ensure the tags are visible before the PTE is set */ in mte_sync_tags()
70 * pages is tagged, set_pte_at() may zero or change the tags of the in memcmp_pages()
389 * Access MTE tags in another process' address space as given in mm. Update
390 * the number of tags copied. Return 0 if any tags copied, error otherwise.
409 unsigned long tags, offset; in __access_remote_tags() local
420 * Only copy tags if the page has been mapped as PROT_MTE in __access_remote_tags()
421 * (PG_mte_tagged set). Otherwise the tags are not valid and in __access_remote_tags()
423 * would cause the existing tags to be cleared if the page in __access_remote_tags()
435 tags = min(len, (PAGE_SIZE - offset) / MTE_GRANULE_SIZE); in __access_remote_tags()
[all …]
Delfcore.c29 void *tags = NULL; in mte_dump_tag_range() local
55 if (!tags) { in mte_dump_tag_range()
56 tags = mte_allocate_tag_storage(); in mte_dump_tag_range()
57 if (!tags) { in mte_dump_tag_range()
64 mte_save_page_tags(page_address(page), tags); in mte_dump_tag_range()
66 if (!dump_emit(cprm, tags, MTE_PAGE_TAG_STORAGE)) { in mte_dump_tag_range()
72 if (tags) in mte_dump_tag_range()
73 mte_free_tag_storage(tags); in mte_dump_tag_range()
/kernel/linux/linux-5.10/tools/perf/
DMakefile64 # (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

12345678910>>...44