函数源码

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source File:include\trace\events\rseq.h Create Date:2022-07-27 15:12:30
首页 Copyright©Brick

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// SPDX-License-Identifier: GPL-2.0+
/*
 * Restartable sequences system call
 *
 * Copyright (C) 2015, Google, Inc.,
 * Paul Turner <pjt@google.com> and Andrew Hunter <ahh@google.com>
 * Copyright (C) 2015-2018, EfficiOS Inc.,
 * Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
 */
 
#include <linux/sched.h>
#include <linux/uaccess.h>
#include <linux/syscalls.h>
#include <linux/rseq.h>
#include <linux/types.h>
#include <asm/ptrace.h>
 
#define CREATE_TRACE_POINTS
#include <trace/events/rseq.h>
/* SPDX-License-Identifier: GPL-2.0+ */
#undef TRACE_SYSTEM
#define TRACE_SYSTEM rseq
 
#if !defined(_TRACE_RSEQ_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_RSEQ_H
 
#include <linux/tracepoint.h>
#include <linux/types.h>
 
TRACE_EVENT(rseq_update,
 
    TP_PROTO(struct task_struct *t),
 
    TP_ARGS(t),
 
    TP_STRUCT__entry(
        __field(s32, cpu_id)
    ),
 
    TP_fast_assign(
        __entry->cpu_id = raw_smp_processor_id();
    ),
 
    TP_printk("cpu_id=%d", __entry->cpu_id)
);
 
TRACE_EVENT(rseq_ip_fixup,
 
    TP_PROTO(unsigned long regs_ip, unsigned long start_ip,
        unsigned long post_commit_offset, unsigned long abort_ip),
 
    TP_ARGS(regs_ip, start_ip, post_commit_offset, abort_ip),
 
    TP_STRUCT__entry(
        __field(unsigned long, regs_ip)
        __field(unsigned long, start_ip)
        __field(unsigned long, post_commit_offset)
        __field(unsigned long, abort_ip)
    ),
 
    TP_fast_assign(
        __entry->regs_ip = regs_ip;
        __entry->start_ip = start_ip;
        __entry->post_commit_offset = post_commit_offset;
        __entry->abort_ip = abort_ip;
    ),
 
    TP_printk("regs_ip=0x%lx start_ip=0x%lx post_commit_offset=%lu abort_ip=0x%lx",
        __entry->regs_ip, __entry->start_ip,
        __entry->post_commit_offset, __entry->abort_ip)
);