/Linux-v6.1/Documentation/translations/zh_CN/mm/ |
D | highmem.rst | 64 在本地的kmap区域中采取pagefaults是有效的,除非获取本地映射的上下文由于其他原因不允许 84 * kmap()。这应该被用来对单个页面进行短时间的映射,对抢占或迁移没有限制。它会带来开销, 88 映射变化必须广播到所有CPU(核)上,kmap()还需要在kmap的池被回绕(TLB项用光了,需要从第 90 槽出现。因此,kmap()只能从可抢占的上下文中调用。 93 高内存映射都是短暂的,而且只在一个地方使用。这意味着在这种情况下,kmap()的成本大 94 多被浪费了。kmap()并不是为长期映射而设计的,但是它已经朝着这个方向发展了,在较新 97 在64位系统中,调用kmap_local_page()、kmap_atomic()和kmap()没有实际作用,因为64位
|
/Linux-v6.1/tools/perf/util/ |
D | map.c | 223 (dso->kernel ? sizeof(struct kmap) : 0))); in map__new2() 243 struct kmap *kmap = __map__kmap((struct map *)map); in __map__is_extra_kernel_map() local 245 return kmap && kmap->name[0]; in __map__is_extra_kernel_map() 395 size += sizeof(struct kmap); in map__clone() 473 struct kmap *kmap = __map__kmap(map); in map__rip_2objdump() local 480 if (kmap && is_entry_trampoline(kmap->name) && kmap->kmaps && kmap->kmaps->machine) { in map__rip_2objdump() 481 struct map *kernel_map = machine__kernel_map(kmap->kmaps->machine); in map__rip_2objdump() 554 struct kmap *__map__kmap(struct map *map) in __map__kmap() 558 return (struct kmap *)(map + 1); in __map__kmap() 561 struct kmap *map__kmap(struct map *map) in map__kmap() [all …]
|
D | bpf_lock_contention.c | 125 struct map *kmap; in lock_contention_read() local 152 sym = machine__find_kernel_symbol(machine, st->addr, &kmap); in lock_contention_read() 158 offset = kmap->map_ip(kmap, st->addr) - sym->start; in lock_contention_read()
|
D | symbol-elf.c | 971 static bool ref_reloc_sym_not_found(struct kmap *kmap) in ref_reloc_sym_not_found() argument 973 return kmap && kmap->ref_reloc_sym && kmap->ref_reloc_sym->name && in ref_reloc_sym_not_found() 974 !kmap->ref_reloc_sym->unrelocated_addr; in ref_reloc_sym_not_found() 985 static u64 ref_reloc(struct kmap *kmap) in ref_reloc() argument 987 if (kmap && kmap->ref_reloc_sym && in ref_reloc() 988 kmap->ref_reloc_sym->unrelocated_addr) in ref_reloc() 989 return kmap->ref_reloc_sym->addr - in ref_reloc() 990 kmap->ref_reloc_sym->unrelocated_addr; in ref_reloc() 999 struct maps *kmaps, struct kmap *kmap, in dso__process_kernel_symbol() argument 1023 map->start = shdr->sh_addr + ref_reloc(kmap); in dso__process_kernel_symbol() [all …]
|
D | map.h | 41 struct kmap; 43 struct kmap *__map__kmap(struct map *map); 44 struct kmap *map__kmap(struct map *map);
|
D | symbol.c | 1187 struct kmap *kmap = map__kmap(map); in validate_kcore_addresses() local 1189 if (!kmap) in validate_kcore_addresses() 1192 if (kmap->ref_reloc_sym && kmap->ref_reloc_sym->name) { in validate_kcore_addresses() 1196 kmap->ref_reloc_sym->name, &start)) in validate_kcore_addresses() 1198 if (start != kmap->ref_reloc_sym->addr) in validate_kcore_addresses() 1455 static int kallsyms__delta(struct kmap *kmap, const char *filename, u64 *delta) in kallsyms__delta() argument 1459 if (!kmap->ref_reloc_sym || !kmap->ref_reloc_sym->name) in kallsyms__delta() 1462 if (kallsyms__get_function_start(filename, kmap->ref_reloc_sym->name, &addr)) in kallsyms__delta() 1465 *delta = addr - kmap->ref_reloc_sym->addr; in kallsyms__delta() 1472 struct kmap *kmap = map__kmap(map); in __dso__load_kallsyms() local [all …]
|
D | maps.c | 42 struct kmap *kmap = map__kmap(map); in maps__insert() local 44 if (kmap) in maps__insert() 45 kmap->kmaps = maps; in maps__insert()
|
D | machine.c | 1185 struct kmap *kmap; in machine__create_extra_kernel_map() local 1195 kmap = map__kmap(map); in machine__create_extra_kernel_map() 1197 strlcpy(kmap->name, xm->name, KMAP_NAME_LEN); in machine__create_extra_kernel_map() 1202 kmap->name, map->start, map->end); in machine__create_extra_kernel_map() 1255 struct kmap *kmap = __map__kmap(map); in machine__map_x86_64_entry_trampolines() local 1258 if (!kmap || !is_entry_trampoline(kmap->name)) in machine__map_x86_64_entry_trampolines() 1320 struct kmap *kmap; in machine__destroy_kernel_maps() local 1326 kmap = map__kmap(map); in machine__destroy_kernel_maps() 1328 if (kmap && kmap->ref_reloc_sym) { in machine__destroy_kernel_maps() 1329 zfree((char **)&kmap->ref_reloc_sym->name); in machine__destroy_kernel_maps() [all …]
|
/Linux-v6.1/drivers/net/ethernet/chelsio/inline_crypto/chtls/ |
D | chtls_hw.c | 166 cdev->kmap.size = num_key_ctx; in chtls_init_kmap() 167 cdev->kmap.available = bsize; in chtls_init_kmap() 168 ksize = sizeof(*cdev->kmap.addr) * bsize; in chtls_init_kmap() 169 cdev->kmap.addr = kvzalloc(ksize, GFP_KERNEL); in chtls_init_kmap() 170 if (!cdev->kmap.addr) in chtls_init_kmap() 173 cdev->kmap.start = lldi->vr->key.start; in chtls_init_kmap() 174 spin_lock_init(&cdev->kmap.lock); in chtls_init_kmap() 189 spin_lock_bh(&cdev->kmap.lock); in get_new_keyid() 190 keyid = find_first_zero_bit(cdev->kmap.addr, cdev->kmap.size); in get_new_keyid() 191 if (keyid < cdev->kmap.size) { in get_new_keyid() [all …]
|
/Linux-v6.1/tools/perf/arch/x86/util/ |
D | event.c | 32 struct kmap *kmap; in perf_event__synthesize_extra_kmaps() local 38 kmap = map__kmap(pos); in perf_event__synthesize_extra_kmaps() 41 PERF_ALIGN(strlen(kmap->name) + 1, sizeof(u64)) + in perf_event__synthesize_extra_kmaps() 64 strlcpy(event->mmap.filename, kmap->name, PATH_MAX); in perf_event__synthesize_extra_kmaps()
|
/Linux-v6.1/arch/m68k/mm/ |
D | Makefile | 9 obj-$(CONFIG_MMU_MOTOROLA) += kmap.o memory.o motorola.o hwtest.o 11 obj-$(CONFIG_MMU_COLDFIRE) += kmap.o memory.o mcfmmu.o
|
/Linux-v6.1/Documentation/mm/ |
D | highmem.rst | 68 It's valid to take pagefaults in a local kmap region, unless the context 85 While it is significantly faster than kmap(), for the higmem case it 86 comes with restrictions about the pointers validity. Contrary to kmap() 93 therefore try to design their code to avoid the use of kmap() by mapping 118 * kmap(). This should be used to make short duration mapping of a single 124 Mapping changes must be propagated across all the CPUs. kmap() also 125 requires global TLB invalidation when the kmap's pool wraps and it might 127 available. Therefore, kmap() is only callable from preemptible context. 132 kmap() is mostly wasted in such cases. kmap() was not intended for long 137 On 64-bit systems, calls to kmap_local_page(), kmap_atomic() and kmap() have
|
/Linux-v6.1/tools/perf/ |
D | builtin-lock.c | 859 struct map *kmap; in is_lock_function() local 864 &kmap); in is_lock_function() 871 sched_text_start = kmap->unmap_ip(kmap, sym->start); in is_lock_function() 876 &kmap); in is_lock_function() 877 sched_text_end = kmap->unmap_ip(kmap, sym->start); in is_lock_function() 881 &kmap); in is_lock_function() 882 lock_text_start = kmap->unmap_ip(kmap, sym->start); in is_lock_function() 886 &kmap); in is_lock_function() 887 lock_text_end = kmap->unmap_ip(kmap, sym->start); in is_lock_function() 1523 struct map *kmap; in print_contention_result() local [all …]
|
/Linux-v6.1/fs/nilfs2/ |
D | alloc.c | 527 desc_kaddr = kmap(desc_bh->b_page); in nilfs_palloc_prepare_alloc_entry() 539 bitmap_kaddr = kmap(bitmap_bh->b_page); in nilfs_palloc_prepare_alloc_entry() 608 desc_kaddr = kmap(req->pr_desc_bh->b_page); in nilfs_palloc_commit_free_entry() 611 bitmap_kaddr = kmap(req->pr_bitmap_bh->b_page); in nilfs_palloc_commit_free_entry() 649 desc_kaddr = kmap(req->pr_desc_bh->b_page); in nilfs_palloc_abort_alloc_entry() 652 bitmap_kaddr = kmap(req->pr_bitmap_bh->b_page); in nilfs_palloc_abort_alloc_entry() 757 bitmap_kaddr = kmap(bitmap_bh->b_page); in nilfs_palloc_freev()
|
D | ifile.h | 24 void *kaddr = kmap(ibh->b_page); in nilfs_ifile_map_inode()
|
/Linux-v6.1/fs/ecryptfs/ |
D | read_write.c | 67 virt = kmap(page_for_lower); in ecryptfs_write_lower_page_segment() 256 virt = kmap(page_for_ecryptfs); in ecryptfs_read_lower_page_segment()
|
/Linux-v6.1/drivers/gpu/drm/i915/gt/ |
D | shmem_utils.c | 108 vaddr = kmap(page); in __shmem_rw() 143 vaddr = kmap(page); in shmem_read_to_iosys_map()
|
/Linux-v6.1/include/linux/ |
D | highmem-internal.h | 40 static inline void *kmap(struct page *page) in kmap() function 164 static inline void *kmap(struct page *page) in kmap() function
|
/Linux-v6.1/net/ceph/ |
D | pagelist.c | 70 pl->mapped_tail = kmap(page); in ceph_pagelist_addpage() 167 pl->mapped_tail = kmap(page); in ceph_pagelist_truncate()
|
/Linux-v6.1/fs/erofs/ |
D | decompressor_lzma.c | 167 kin = kmap(*rq->in); in z_erofs_lzma_decompress() 224 strm->buf.out = kmap(rq->out[no]) + pageofs; in z_erofs_lzma_decompress() 237 kin = kmap(rq->in[ni]); in z_erofs_lzma_decompress()
|
/Linux-v6.1/fs/vboxsf/ |
D | file.c | 237 buf = kmap(page); in vboxsf_read_folio() 289 buf = kmap(page); in vboxsf_writepage() 323 buf = kmap(page); in vboxsf_write_end()
|
/Linux-v6.1/fs/ntfs/ |
D | aops.h | 78 kmap(page); in ntfs_map_page()
|
/Linux-v6.1/mm/ |
D | highmem.c | 564 void *kmap; in __kmap_local_page_prot() local 575 kmap = arch_kmap_local_high_get(page); in __kmap_local_page_prot() 576 if (kmap) in __kmap_local_page_prot() 577 return kmap; in __kmap_local_page_prot()
|
/Linux-v6.1/drivers/gpu/drm/nouveau/ |
D | nouveau_bo.h | 19 struct ttm_bo_kmap_obj kmap; member 105 &nvbo->kmap, &is_iomem); in nvbo_kmap_obj_iovirtual()
|
/Linux-v6.1/fs/freevxfs/ |
D | vxfs_subr.c | 51 kmap(pp); in vxfs_get_page()
|