/linux-6.12.1/drivers/gpu/drm/xe/ |
D | xe_hw_engine.c | 809 struct xe_hw_engine_snapshot *snapshot) in xe_hw_engine_snapshot_instdone_capture() argument 816 snapshot->reg.instdone.ring = xe_hw_engine_mmio_read32(hwe, RING_INSTDONE(0)); in xe_hw_engine_snapshot_instdone_capture() 818 if (snapshot->hwe->class != XE_ENGINE_CLASS_RENDER) in xe_hw_engine_snapshot_instdone_capture() 822 snapshot->reg.instdone.slice_common[0] = in xe_hw_engine_snapshot_instdone_capture() 824 snapshot->reg.instdone.slice_common_extra[0] = in xe_hw_engine_snapshot_instdone_capture() 826 snapshot->reg.instdone.slice_common_extra2[0] = in xe_hw_engine_snapshot_instdone_capture() 830 snapshot->reg.instdone.slice_common[dss] = in xe_hw_engine_snapshot_instdone_capture() 832 snapshot->reg.instdone.slice_common_extra[dss] = in xe_hw_engine_snapshot_instdone_capture() 834 snapshot->reg.instdone.slice_common_extra2[dss] = in xe_hw_engine_snapshot_instdone_capture() 840 snapshot->reg.instdone.sampler[dss] = in xe_hw_engine_snapshot_instdone_capture() [all …]
|
D | xe_devcoredump.c | 80 ss = &coredump->snapshot; in __xe_devcoredump_read() 100 xe_guc_ct_snapshot_print(coredump->snapshot.ct, &p); in __xe_devcoredump_read() 101 xe_guc_exec_queue_snapshot_print(coredump->snapshot.ge, &p); in __xe_devcoredump_read() 104 xe_sched_job_snapshot_print(coredump->snapshot.job, &p); in __xe_devcoredump_read() 108 if (coredump->snapshot.hwe[i]) in __xe_devcoredump_read() 109 xe_hw_engine_snapshot_print(coredump->snapshot.hwe[i], in __xe_devcoredump_read() 112 xe_vm_snapshot_print(coredump->snapshot.vm, &p); in __xe_devcoredump_read() 143 struct xe_devcoredump *coredump = container_of(ss, typeof(*coredump), snapshot); in xe_devcoredump_deferred_snap_work() 173 ss = &coredump->snapshot; in xe_devcoredump_read() 199 cancel_work_sync(&coredump->snapshot.work); in xe_devcoredump_free() [all …]
|
D | xe_guc_submit.c | 2025 struct xe_guc_submit_exec_queue_snapshot *snapshot) in guc_exec_queue_wq_snapshot_capture() argument 2032 snapshot->guc.wqi_head = q->guc->wqi_head; in guc_exec_queue_wq_snapshot_capture() 2033 snapshot->guc.wqi_tail = q->guc->wqi_tail; in guc_exec_queue_wq_snapshot_capture() 2034 snapshot->parallel.wq_desc.head = parallel_read(xe, map, wq_desc.head); in guc_exec_queue_wq_snapshot_capture() 2035 snapshot->parallel.wq_desc.tail = parallel_read(xe, map, wq_desc.tail); in guc_exec_queue_wq_snapshot_capture() 2036 snapshot->parallel.wq_desc.status = parallel_read(xe, map, in guc_exec_queue_wq_snapshot_capture() 2039 if (snapshot->parallel.wq_desc.head != in guc_exec_queue_wq_snapshot_capture() 2040 snapshot->parallel.wq_desc.tail) { in guc_exec_queue_wq_snapshot_capture() 2041 for (i = snapshot->parallel.wq_desc.head; in guc_exec_queue_wq_snapshot_capture() 2042 i != snapshot->parallel.wq_desc.tail; in guc_exec_queue_wq_snapshot_capture() [all …]
|
D | xe_lrc.c | 1647 struct xe_lrc_snapshot *snapshot = kmalloc(sizeof(*snapshot), GFP_NOWAIT); in xe_lrc_snapshot_capture() local 1649 if (!snapshot) in xe_lrc_snapshot_capture() 1655 snapshot->context_desc = xe_lrc_ggtt_addr(lrc); in xe_lrc_snapshot_capture() 1656 snapshot->indirect_context_desc = xe_lrc_indirect_ring_ggtt_addr(lrc); in xe_lrc_snapshot_capture() 1657 snapshot->head = xe_lrc_ring_head(lrc); in xe_lrc_snapshot_capture() 1658 snapshot->tail.internal = lrc->ring.tail; in xe_lrc_snapshot_capture() 1659 snapshot->tail.memory = xe_lrc_ring_tail(lrc); in xe_lrc_snapshot_capture() 1660 snapshot->start_seqno = xe_lrc_start_seqno(lrc); in xe_lrc_snapshot_capture() 1661 snapshot->seqno = xe_lrc_seqno(lrc); in xe_lrc_snapshot_capture() 1662 snapshot->lrc_bo = xe_bo_get(lrc->bo); in xe_lrc_snapshot_capture() [all …]
|
D | xe_guc_ct.c | 1416 struct guc_ctb_snapshot *snapshot, in guc_ctb_snapshot_capture() argument 1421 xe_map_memcpy_from(xe, &snapshot->desc, &ctb->desc, 0, in guc_ctb_snapshot_capture() 1423 memcpy(&snapshot->info, &ctb->info, sizeof(struct guc_ctb_info)); in guc_ctb_snapshot_capture() 1425 snapshot->cmds = kmalloc_array(ctb->info.size, sizeof(u32), in guc_ctb_snapshot_capture() 1428 if (!snapshot->cmds) { in guc_ctb_snapshot_capture() 1433 head = snapshot->desc.head; in guc_ctb_snapshot_capture() 1434 tail = snapshot->desc.tail; in guc_ctb_snapshot_capture() 1441 snapshot->cmds[head] = xe_map_rd(xe, &map, 0, u32); in guc_ctb_snapshot_capture() 1453 static void guc_ctb_snapshot_print(struct guc_ctb_snapshot *snapshot, in guc_ctb_snapshot_print() argument 1458 drm_printf(p, "\tsize: %d\n", snapshot->info.size); in guc_ctb_snapshot_print() [all …]
|
D | xe_sched_job.c | 333 struct xe_sched_job_snapshot *snapshot; in xe_sched_job_snapshot_capture() local 334 size_t len = sizeof(*snapshot) + (sizeof(u64) * q->width); in xe_sched_job_snapshot_capture() 337 snapshot = kzalloc(len, GFP_ATOMIC); in xe_sched_job_snapshot_capture() 338 if (!snapshot) in xe_sched_job_snapshot_capture() 341 snapshot->batch_addr_len = q->width; in xe_sched_job_snapshot_capture() 343 snapshot->batch_addr[i] = in xe_sched_job_snapshot_capture() 346 return snapshot; in xe_sched_job_snapshot_capture() 349 void xe_sched_job_snapshot_free(struct xe_sched_job_snapshot *snapshot) in xe_sched_job_snapshot_free() argument 351 kfree(snapshot); in xe_sched_job_snapshot_free() 355 xe_sched_job_snapshot_print(struct xe_sched_job_snapshot *snapshot, in xe_sched_job_snapshot_print() argument [all …]
|
D | xe_guc_submit.h | 33 xe_guc_exec_queue_snapshot_capture_delayed(struct xe_guc_submit_exec_queue_snapshot *snapshot); 35 xe_guc_exec_queue_snapshot_print(struct xe_guc_submit_exec_queue_snapshot *snapshot, 38 xe_guc_exec_queue_snapshot_free(struct xe_guc_submit_exec_queue_snapshot *snapshot);
|
/linux-6.12.1/Documentation/admin-guide/device-mapper/ |
D | snapshot.rst | 2 Device-mapper snapshot support 12 - To merge a snapshot of a block device back into the snapshot's origin 19 For snapshot merge the contents of the COW storage are merged back into 24 snapshot, snapshot-origin, and snapshot-merge. 26 - snapshot-origin <origin> 30 original data will be saved in the <COW device> of each snapshot to keep 34 - snapshot <origin> <COW device> <persistent?> <chunksize> 37 A snapshot of the <origin> block device is created. Changed chunks of 41 smaller than the origin and if it fills up the snapshot will become 48 snapshot status. So supported store types are "P", "PO" and "N". [all …]
|
D | era.rst | 16 coherency after rolling back a vendor snapshot. 50 Drop the metadata snapshot. 73 snapshot was the primary use case when developing this target: 75 Taking a vendor snapshot 80 - Take vendor snapshot (the era and snapshot should be forever 83 Rolling back to an vendor snapshot 88 - Take metadata snapshot 89 - Ascertain which blocks have been written since the snapshot was taken
|
/linux-6.12.1/Documentation/networking/devlink/ |
D | devlink-region.rst | 18 All snapshots with the same snapshot id within a devlink instance 27 Regions may optionally support capturing a snapshot on demand via the 29 requested snapshots must implement the ``.snapshot`` callback for the region 30 in its ``devlink_region_ops`` structure. If snapshot id is not set in 32 the snapshot information to user space. 35 snapshot. Direct read requests are not atomic. In particular a read request 37 access is required, use a snapshot. A driver wishing to enable this for a 40 ``DEVLINK_ATTR_REGION_DIRECT`` attribute instead of specifying a snapshot 50 $ devlink region del DEV/REGION snapshot SNAPSHOT_ID 51 $ devlink region dump DEV/REGION [ snapshot SNAPSHOT_ID ] [all …]
|
D | iosm.rst | 100 In case a firmware encounters an exception, a snapshot will be taken by the 130 $ devlink region dump pci/0000:02:00.0/report.json snapshot 0 132 $ devlink region del pci/0000:02:00.0/report.json snapshot 0 136 $ devlink region dump pci/0000:02:00.0/coredump.fcd snapshot 1 138 $ devlink region del pci/0000:02:00.0/coredump.fcd snapshot 1 142 $ devlink region dump pci/0000:02:00.0/cdd.log snapshot 2 144 $ devlink region del pci/0000:02:00.0/cdd.log snapshot 2 148 $ devlink region dump pci/0000:02:00.0/eeprom.bin snapshot 3 150 $ devlink region del pci/0000:02:00.0/eeprom.bin snapshot 3 154 $ devlink region dump pci/0000:02:00.0/bootcore_trace.bin snapshot 4 [all …]
|
/linux-6.12.1/fs/bcachefs/ |
D | fsck.c | 72 u32 snapshot) in bch2_count_inode_sectors() argument 77 SPOS(inum, 0, snapshot), in bch2_count_inode_sectors() 89 u32 snapshot) in bch2_count_subdirs() argument 94 SPOS(inum, 0, snapshot), in bch2_count_subdirs() 107 u32 *snapshot, u64 *inum) in subvol_lookup() argument 112 *snapshot = le32_to_cpu(s.snapshot); in subvol_lookup() 140 static int lookup_inode(struct btree_trans *trans, u64 inode_nr, u32 snapshot, in lookup_inode() argument 148 SPOS(0, inode_nr, snapshot), 0); in lookup_inode() 164 u64 *target, unsigned *type, u32 snapshot) in lookup_dirent_in_snapshot() argument 168 &hash_info, dir, name, 0, snapshot); in lookup_dirent_in_snapshot() [all …]
|
D | str_hash.h | 158 u32 snapshot) in bch2_hash_lookup_in_snapshot() argument 164 SPOS(inum.inum, desc.hash_key(info, key), snapshot), in bch2_hash_lookup_in_snapshot() 190 u32 snapshot; in bch2_hash_lookup() local 191 int ret = bch2_subvolume_get_snapshot(trans, inum.subvol, &snapshot); in bch2_hash_lookup() 195 return bch2_hash_lookup_in_snapshot(trans, iter, desc, info, inum, key, flags, snapshot); in bch2_hash_lookup() 206 u32 snapshot; in bch2_hash_hole() local 209 ret = bch2_subvolume_get_snapshot(trans, inum.subvol, &snapshot); in bch2_hash_hole() 214 SPOS(inum.inum, desc.hash_key(info, key), snapshot), in bch2_hash_hole() 259 subvol_inum inum, u32 snapshot, in bch2_hash_set_or_get_in_snapshot() argument 271 snapshot), in bch2_hash_set_or_get_in_snapshot() [all …]
|
D | inode.c | 286 unpacked->bi_snapshot = k.k->p.snapshot; in bch2_inode_unpack_slowpath() 328 unpacked->bi_snapshot = k.k->p.snapshot; in bch2_inode_unpack() 341 u32 snapshot; in __bch2_inode_peek() local 342 int ret = __bch2_subvolume_get_snapshot(trans, inum.subvol, &snapshot, warn); in __bch2_inode_peek() 347 SPOS(0, inum.inum, snapshot), in __bch2_inode_peek() 381 inode_p->inode.k.p.snapshot = iter->snapshot; in bch2_inode_write_flags() 394 inode_p->inode.k.p.snapshot = inode->bi_snapshot; in __bch2_fsck_write_inode() 624 if (bch2_snapshot_is_ancestor(c, pos.snapshot, k.k->p.snapshot)) in bch2_bkey_get_iter_snapshot_parent() 659 if (bch2_snapshot_is_ancestor(c, k.k->p.snapshot, pos.snapshot) && in __bch2_inode_has_child_snapshots() 760 bch2_snapshot_parent(c, new.k->p.snapshot)) { in bch2_trigger_inode() [all …]
|
D | bkey.h | 108 (l.snapshot ^ r.snapshot)); in bpos_eq() 115 l.snapshot != r.snapshot ? l.snapshot < r.snapshot : false; in bpos_lt() 122 l.snapshot != r.snapshot ? l.snapshot < r.snapshot : true; in bpos_le() 139 cmp_int(l.snapshot, r.snapshot); in bpos_cmp() 263 if (!++p.snapshot && in bpos_successor() 273 if (!p.snapshot-- && in bpos_predecessor() 283 p.snapshot = 0; in bpos_nosnap_successor() 294 p.snapshot = 0; in bpos_nosnap_predecessor() 313 .snapshot = k->p.snapshot, in bkey_start_pos() 555 x(BKEY_FIELD_SNAPSHOT, p.snapshot) \
|
D | snapshot.c | 365 BTREE_ITER_with_updates, snapshot, s); in bch2_snapshot_lookup() 501 if (!bch2_snapshot_is_ancestor(c, le32_to_cpu(s.v->snapshot), snapshot_root)) in bch2_snapshot_tree_master_subvol() 573 le32_to_cpu(subvol.snapshot), in check_snapshot_tree() 701 BTREE_ITER_with_updates, snapshot); in snapshot_tree_ptr_repair() 713 u = bch2_bkey_make_mut_typed(trans, &root_iter, &root.s_c, 0, snapshot); in snapshot_tree_ptr_repair() 727 u = bch2_bkey_make_mut_typed(trans, iter, &k, 0, snapshot); in snapshot_tree_ptr_repair() 809 if (BCH_SNAPSHOT_SUBVOL(&s) != (le32_to_cpu(subvol.snapshot) == k.k->p.offset)) { in check_snapshot() 820 u = bch2_bkey_make_mut_typed(trans, iter, &k, 0, snapshot); in check_snapshot() 850 u = bch2_bkey_make_mut_typed(trans, iter, &k, 0, snapshot); in check_snapshot() 867 u = bch2_bkey_make_mut_typed(trans, iter, &k, 0, snapshot); in check_snapshot() [all …]
|
D | dirent.c | 206 u32 dir_subvol, u64 dir, u32 snapshot, in bch2_dirent_create_snapshot() argument 222 dirent->k.p.snapshot = snapshot; in bch2_dirent_create_snapshot() 225 dir_inum, snapshot, &dirent->k_i, in bch2_dirent_create_snapshot() 424 new_src->k.p.snapshot != old_src.k->p.snapshot; in bch2_dirent_rename() 428 new_dst->k.p.snapshot != old_dst.k->p.snapshot; in bch2_dirent_rename() 437 bch2_btree_iter_set_snapshot(&src_iter, old_src.k->p.snapshot); in bch2_dirent_rename() 445 bch2_btree_iter_set_snapshot(&dst_iter, old_dst.k->p.snapshot); in bch2_dirent_rename() 497 int bch2_empty_dir_snapshot(struct btree_trans *trans, u64 dir, u32 subvol, u32 snapshot) in bch2_empty_dir_snapshot() argument 504 SPOS(dir, 0, snapshot), in bch2_empty_dir_snapshot() 520 u32 snapshot; in bch2_empty_dir_trans() local [all …]
|
D | subvolume.c | 34 struct bch_snapshot snapshot; in check_subvol() local 43 snapid = le32_to_cpu(subvol.v->snapshot); in check_subvol() 44 ret = bch2_snapshot_lookup(trans, snapid, &snapshot); in check_subvol() 105 inode.bi_snapshot = le32_to_cpu(subvol.v->snapshot); in check_subvol() 114 le32_to_cpu(subvol.v->snapshot))) { in check_subvol() 125 u32 snapshot_root = bch2_snapshot_root(c, le32_to_cpu(subvol.v->snapshot)); in check_subvol() 220 bkey_fsck_err_on(!subvol.v->snapshot, in bch2_subvolume_validate() 238 le32_to_cpu(s.v->snapshot)); in bch2_subvolume_to_text() 325 int bch2_snapshot_get_subvol(struct btree_trans *trans, u32 snapshot, in bch2_snapshot_get_subvol() argument 330 return bch2_snapshot_lookup(trans, snapshot, &snap) ?: in bch2_snapshot_get_subvol() [all …]
|
D | btree_update.c | 98 u32 snapshot = pos.snapshot; in need_whiteout_for_snapshot() local 101 if (!bch2_snapshot_parent(trans->c, pos.snapshot)) in need_whiteout_for_snapshot() 104 pos.snapshot++; in need_whiteout_for_snapshot() 112 if (bch2_snapshot_is_ancestor(trans->c, snapshot, in need_whiteout_for_snapshot() 113 k.k->p.snapshot)) { in need_whiteout_for_snapshot() 135 if (!bch2_snapshot_has_children(c, old_pos.snapshot)) in __bch2_insert_snapshot_whiteouts() 147 SPOS(new_pos.inode, new_pos.offset, old_k.k->p.snapshot);; in __bch2_insert_snapshot_whiteouts() 149 if (!bch2_snapshot_is_ancestor(c, old_k.k->p.snapshot, old_pos.snapshot) || in __bch2_insert_snapshot_whiteouts() 150 snapshot_list_has_ancestor(c, &s, old_k.k->p.snapshot)) in __bch2_insert_snapshot_whiteouts() 175 ret = snapshot_list_add(c, &s, old_k.k->p.snapshot); in __bch2_insert_snapshot_whiteouts() [all …]
|
/linux-6.12.1/net/devlink/ |
D | region.c | 62 struct devlink_snapshot *snapshot; in devlink_region_snapshot_get_by_id() local 64 list_for_each_entry(snapshot, ®ion->snapshot_list, list) in devlink_region_snapshot_get_by_id() 65 if (snapshot->id == id) in devlink_region_snapshot_get_by_id() 66 return snapshot; in devlink_region_snapshot_get_by_id() 73 struct devlink_snapshot *snapshot) in devlink_nl_region_snapshot_id_put() argument 82 err = nla_put_u32(msg, DEVLINK_ATTR_REGION_SNAPSHOT_ID, snapshot->id); in devlink_nl_region_snapshot_id_put() 98 struct devlink_snapshot *snapshot; in devlink_nl_region_snapshots_id_put() local 107 list_for_each_entry(snapshot, ®ion->snapshot_list, list) { in devlink_nl_region_snapshots_id_put() 108 err = devlink_nl_region_snapshot_id_put(msg, devlink, snapshot); in devlink_nl_region_snapshots_id_put() 173 struct devlink_snapshot *snapshot, in devlink_nl_region_notify_build() argument [all …]
|
/linux-6.12.1/Documentation/power/ |
D | userland-swsusp.rst | 13 utilities that will read/write the system memory snapshot from/to the 22 be read from /sys/class/misc/snapshot/dev. 45 create a snapshot of the system memory; the 48 creating the snapshot (1) or after restoring the system memory state 50 SNAPSHOT_CREATE_IMAGE ioctl() again); after the snapshot 56 uploaded snapshot image; before calling it you should transfer 57 the system memory snapshot back to the kernel using the write() 58 operation; this call will not succeed if the snapshot 62 free memory allocated for the snapshot image 118 The device's read() operation can be used to transfer the snapshot image from [all …]
|
/linux-6.12.1/tools/testing/selftests/ftrace/test.d/trigger/ |
D | trigger-snapshot.tc | 11 FEATURE=`grep snapshot events/sched/sched_process_fork/trigger` 18 echo 0 > snapshot 23 grep sched_process_fork snapshot > /dev/null || \ 27 echo 0 > snapshot
|
/linux-6.12.1/kernel/power/ |
D | swap.c | 548 struct snapshot_handle *snapshot, in save_image() argument 569 ret = snapshot_read_next(snapshot); in save_image() 572 ret = swap_write_page(handle, data_of(*snapshot), &hb); in save_image() 693 struct snapshot_handle *snapshot, in save_compressed_image() argument 804 ret = snapshot_read_next(snapshot); in save_compressed_image() 812 data_of(*snapshot), PAGE_SIZE); in save_compressed_image() 943 struct snapshot_handle snapshot; in swsusp_write() local 961 memset(&snapshot, 0, sizeof(struct snapshot_handle)); in swsusp_write() 962 error = snapshot_read_next(&snapshot); in swsusp_write() 969 header = (struct swsusp_info *)data_of(snapshot); in swsusp_write() [all …]
|
/linux-6.12.1/tools/testing/selftests/ftrace/test.d/00basic/ |
D | snapshot.tc | 10 echo 1 > snapshot 13 grep -q "Snapshot is allocated" snapshot 22 echo 1 > snapshot
|
/linux-6.12.1/tools/testing/selftests/drivers/net/netdevsim/ |
D | devlink.sh | 170 check_region_snapshot_count dummy post-first-snapshot 1 174 check_region_snapshot_count dummy post-second-snapshot 2 178 check_region_snapshot_count dummy post-third-snapshot 3 180 devlink region del $DL_HANDLE/dummy snapshot 1 185 devlink region new $DL_HANDLE/dummy snapshot 25 190 devlink region dump $DL_HANDLE/dummy snapshot 25 >> /dev/null 193 devlink region read $DL_HANDLE/dummy snapshot 25 addr 0 len 1 >> /dev/null 196 devlink region read $DL_HANDLE/dummy snapshot 25 addr 128 len 128 >> /dev/null 199 devlink region read $DL_HANDLE/dummy snapshot 25 addr 128 len $((1<<32)) >> /dev/null 202 devlink region read $DL_HANDLE/dummy snapshot 25 addr $((1<<32)) len 128 >> /dev/null 2>&1 [all …]
|