Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
c976a7d6
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c976a7d6
编写于
10月 02, 2017
作者:
A
Arnaldo Carvalho de Melo
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'tip/perf/urgent' into perf/core, to pick up fixes
Signed-off-by:
N
Arnaldo Carvalho de Melo
<
acme@redhat.com
>
上级
a47ba4d7
1addcd55
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
190 addition
and
73 deletion
+190
-73
tools/arch/s390/include/uapi/asm/kvm.h
tools/arch/s390/include/uapi/asm/kvm.h
+6
-0
tools/arch/x86/include/asm/cpufeatures.h
tools/arch/x86/include/asm/cpufeatures.h
+2
-0
tools/arch/x86/include/asm/disabled-features.h
tools/arch/x86/include/asm/disabled-features.h
+3
-1
tools/include/asm-generic/hugetlb_encode.h
tools/include/asm-generic/hugetlb_encode.h
+34
-0
tools/include/uapi/drm/drm.h
tools/include/uapi/drm/drm.h
+22
-0
tools/include/uapi/drm/i915_drm.h
tools/include/uapi/drm/i915_drm.h
+49
-2
tools/include/uapi/linux/bpf.h
tools/include/uapi/linux/bpf.h
+20
-12
tools/include/uapi/linux/kvm.h
tools/include/uapi/linux/kvm.h
+2
-1
tools/include/uapi/linux/mman.h
tools/include/uapi/linux/mman.h
+23
-1
tools/perf/arch/s390/util/Build
tools/perf/arch/s390/util/Build
+0
-1
tools/perf/arch/s390/util/sym-handling.c
tools/perf/arch/s390/util/sym-handling.c
+0
-29
tools/perf/util/callchain.c
tools/perf/util/callchain.c
+21
-14
tools/perf/util/evsel.c
tools/perf/util/evsel.c
+6
-1
tools/perf/util/symbol-elf.c
tools/perf/util/symbol-elf.c
+1
-7
tools/perf/util/symbol.h
tools/perf/util/symbol.h
+0
-3
tools/perf/util/syscalltbl.c
tools/perf/util/syscalltbl.c
+1
-1
未找到文件。
tools/arch/s390/include/uapi/asm/kvm.h
浏览文件 @
c976a7d6
...
...
@@ -88,6 +88,12 @@ struct kvm_s390_io_adapter_req {
/* kvm attributes for KVM_S390_VM_TOD */
#define KVM_S390_VM_TOD_LOW 0
#define KVM_S390_VM_TOD_HIGH 1
#define KVM_S390_VM_TOD_EXT 2
struct
kvm_s390_vm_tod_clock
{
__u8
epoch_idx
;
__u64
tod
;
};
/* kvm attributes for KVM_S390_VM_CPU_MODEL */
/* processor related attributes are r/w */
...
...
tools/arch/x86/include/asm/cpufeatures.h
浏览文件 @
c976a7d6
...
...
@@ -196,6 +196,7 @@
#define X86_FEATURE_HW_PSTATE ( 7*32+ 8)
/* AMD HW-PState */
#define X86_FEATURE_PROC_FEEDBACK ( 7*32+ 9)
/* AMD ProcFeedbackInterface */
#define X86_FEATURE_SME ( 7*32+10)
/* AMD Secure Memory Encryption */
#define X86_FEATURE_INTEL_PPIN ( 7*32+14)
/* Intel Processor Inventory Number */
#define X86_FEATURE_INTEL_PT ( 7*32+15)
/* Intel Processor Trace */
...
...
@@ -287,6 +288,7 @@
#define X86_FEATURE_PFTHRESHOLD (15*32+12)
/* pause filter threshold */
#define X86_FEATURE_AVIC (15*32+13)
/* Virtual Interrupt Controller */
#define X86_FEATURE_V_VMSAVE_VMLOAD (15*32+15)
/* Virtual VMSAVE VMLOAD */
#define X86_FEATURE_VGIF (15*32+16)
/* Virtual GIF */
/* Intel-defined CPU features, CPUID level 0x00000007:0 (ecx), word 16 */
#define X86_FEATURE_AVX512VBMI (16*32+ 1)
/* AVX512 Vector Bit Manipulation instructions*/
...
...
tools/arch/x86/include/asm/disabled-features.h
浏览文件 @
c976a7d6
...
...
@@ -21,11 +21,13 @@
# define DISABLE_K6_MTRR (1<<(X86_FEATURE_K6_MTRR & 31))
# define DISABLE_CYRIX_ARR (1<<(X86_FEATURE_CYRIX_ARR & 31))
# define DISABLE_CENTAUR_MCR (1<<(X86_FEATURE_CENTAUR_MCR & 31))
# define DISABLE_PCID 0
#else
# define DISABLE_VME 0
# define DISABLE_K6_MTRR 0
# define DISABLE_CYRIX_ARR 0
# define DISABLE_CENTAUR_MCR 0
# define DISABLE_PCID (1<<(X86_FEATURE_PCID & 31))
#endif
/* CONFIG_X86_64 */
#ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
...
...
@@ -49,7 +51,7 @@
#define DISABLED_MASK1 0
#define DISABLED_MASK2 0
#define DISABLED_MASK3 (DISABLE_CYRIX_ARR|DISABLE_CENTAUR_MCR|DISABLE_K6_MTRR)
#define DISABLED_MASK4
0
#define DISABLED_MASK4
(DISABLE_PCID)
#define DISABLED_MASK5 0
#define DISABLED_MASK6 0
#define DISABLED_MASK7 0
...
...
tools/include/asm-generic/hugetlb_encode.h
0 → 100644
浏览文件 @
c976a7d6
#ifndef _ASM_GENERIC_HUGETLB_ENCODE_H_
#define _ASM_GENERIC_HUGETLB_ENCODE_H_
/*
* Several system calls take a flag to request "hugetlb" huge pages.
* Without further specification, these system calls will use the
* system's default huge page size. If a system supports multiple
* huge page sizes, the desired huge page size can be specified in
* bits [26:31] of the flag arguments. The value in these 6 bits
* will encode the log2 of the huge page size.
*
* The following definitions are associated with this huge page size
* encoding in flag arguments. System call specific header files
* that use this encoding should include this file. They can then
* provide definitions based on these with their own specific prefix.
* for example:
* #define MAP_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
*/
#define HUGETLB_FLAG_ENCODE_SHIFT 26
#define HUGETLB_FLAG_ENCODE_MASK 0x3f
#define HUGETLB_FLAG_ENCODE_64KB (16 << HUGETLB_FLAG_ENCODE_SHIFT)
#define HUGETLB_FLAG_ENCODE_512KB (19 << HUGETLB_FLAG_ENCODE_SHIFT)
#define HUGETLB_FLAG_ENCODE_1MB (20 << HUGETLB_FLAG_ENCODE_SHIFT)
#define HUGETLB_FLAG_ENCODE_2MB (21 << HUGETLB_FLAG_ENCODE_SHIFT)
#define HUGETLB_FLAG_ENCODE_8MB (23 << HUGETLB_FLAG_ENCODE_SHIFT)
#define HUGETLB_FLAG_ENCODE_16MB (24 << HUGETLB_FLAG_ENCODE_SHIFT)
#define HUGETLB_FLAG_ENCODE_256MB (28 << HUGETLB_FLAG_ENCODE_SHIFT)
#define HUGETLB_FLAG_ENCODE_1GB (30 << HUGETLB_FLAG_ENCODE_SHIFT)
#define HUGETLB_FLAG_ENCODE_2GB (31 << HUGETLB_FLAG_ENCODE_SHIFT)
#define HUGETLB_FLAG_ENCODE_16GB (34 << HUGETLB_FLAG_ENCODE_SHIFT)
#endif
/* _ASM_GENERIC_HUGETLB_ENCODE_H_ */
tools/include/uapi/drm/drm.h
浏览文件 @
c976a7d6
...
...
@@ -700,6 +700,7 @@ struct drm_prime_handle {
struct
drm_syncobj_create
{
__u32
handle
;
#define DRM_SYNCOBJ_CREATE_SIGNALED (1 << 0)
__u32
flags
;
};
...
...
@@ -718,6 +719,24 @@ struct drm_syncobj_handle {
__u32
pad
;
};
#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL (1 << 0)
#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT (1 << 1)
struct
drm_syncobj_wait
{
__u64
handles
;
/* absolute timeout */
__s64
timeout_nsec
;
__u32
count_handles
;
__u32
flags
;
__u32
first_signaled
;
/* only valid when not waiting all */
__u32
pad
;
};
struct
drm_syncobj_array
{
__u64
handles
;
__u32
count_handles
;
__u32
pad
;
};
#if defined(__cplusplus)
}
#endif
...
...
@@ -840,6 +859,9 @@ extern "C" {
#define DRM_IOCTL_SYNCOBJ_DESTROY DRM_IOWR(0xC0, struct drm_syncobj_destroy)
#define DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD DRM_IOWR(0xC1, struct drm_syncobj_handle)
#define DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE DRM_IOWR(0xC2, struct drm_syncobj_handle)
#define DRM_IOCTL_SYNCOBJ_WAIT DRM_IOWR(0xC3, struct drm_syncobj_wait)
#define DRM_IOCTL_SYNCOBJ_RESET DRM_IOWR(0xC4, struct drm_syncobj_array)
#define DRM_IOCTL_SYNCOBJ_SIGNAL DRM_IOWR(0xC5, struct drm_syncobj_array)
/**
* Device specific ioctls should only be in their respective headers
...
...
tools/include/uapi/drm/i915_drm.h
浏览文件 @
c976a7d6
...
...
@@ -260,6 +260,8 @@ typedef struct _drm_i915_sarea {
#define DRM_I915_GEM_CONTEXT_GETPARAM 0x34
#define DRM_I915_GEM_CONTEXT_SETPARAM 0x35
#define DRM_I915_PERF_OPEN 0x36
#define DRM_I915_PERF_ADD_CONFIG 0x37
#define DRM_I915_PERF_REMOVE_CONFIG 0x38
#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
...
...
@@ -315,6 +317,8 @@ typedef struct _drm_i915_sarea {
#define DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_GETPARAM, struct drm_i915_gem_context_param)
#define DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_SETPARAM, struct drm_i915_gem_context_param)
#define DRM_IOCTL_I915_PERF_OPEN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_OPEN, struct drm_i915_perf_open_param)
#define DRM_IOCTL_I915_PERF_ADD_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_ADD_CONFIG, struct drm_i915_perf_oa_config)
#define DRM_IOCTL_I915_PERF_REMOVE_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_REMOVE_CONFIG, __u64)
/* Allow drivers to submit batchbuffers directly to hardware, relying
* on the security mechanisms provided by hardware.
...
...
@@ -431,6 +435,11 @@ typedef struct drm_i915_irq_wait {
*/
#define I915_PARAM_HAS_EXEC_BATCH_FIRST 48
/* Query whether DRM_I915_GEM_EXECBUFFER2 supports supplying an array of
* drm_i915_gem_exec_fence structures. See I915_EXEC_FENCE_ARRAY.
*/
#define I915_PARAM_HAS_EXEC_FENCE_ARRAY 49
typedef
struct
drm_i915_getparam
{
__s32
param
;
/*
...
...
@@ -812,6 +821,17 @@ struct drm_i915_gem_exec_object2 {
__u64
rsvd2
;
};
struct
drm_i915_gem_exec_fence
{
/**
* User's handle for a drm_syncobj to wait on or signal.
*/
__u32
handle
;
#define I915_EXEC_FENCE_WAIT (1<<0)
#define I915_EXEC_FENCE_SIGNAL (1<<1)
__u32
flags
;
};
struct
drm_i915_gem_execbuffer2
{
/**
* List of gem_exec_object2 structs
...
...
@@ -826,7 +846,11 @@ struct drm_i915_gem_execbuffer2 {
__u32
DR1
;
__u32
DR4
;
__u32
num_cliprects
;
/** This is a struct drm_clip_rect *cliprects */
/**
* This is a struct drm_clip_rect *cliprects if I915_EXEC_FENCE_ARRAY
* is not set. If I915_EXEC_FENCE_ARRAY is set, then this is a
* struct drm_i915_gem_exec_fence *fences.
*/
__u64
cliprects_ptr
;
#define I915_EXEC_RING_MASK (7<<0)
#define I915_EXEC_DEFAULT (0<<0)
...
...
@@ -927,7 +951,14 @@ struct drm_i915_gem_execbuffer2 {
* element).
*/
#define I915_EXEC_BATCH_FIRST (1<<18)
#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_BATCH_FIRST<<1))
/* Setting I915_FENCE_ARRAY implies that num_cliprects and cliprects_ptr
* define an array of i915_gem_exec_fence structures which specify a set of
* dma fences to wait upon or signal.
*/
#define I915_EXEC_FENCE_ARRAY (1<<19)
#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_FENCE_ARRAY<<1))
#define I915_EXEC_CONTEXT_ID_MASK (0xffffffff)
#define i915_execbuffer2_set_context_id(eb2, context) \
...
...
@@ -1467,6 +1498,22 @@ enum drm_i915_perf_record_type {
DRM_I915_PERF_RECORD_MAX
/* non-ABI */
};
/**
* Structure to upload perf dynamic configuration into the kernel.
*/
struct
drm_i915_perf_oa_config
{
/** String formatted like "%08x-%04x-%04x-%04x-%012x" */
char
uuid
[
36
];
__u32
n_mux_regs
;
__u32
n_boolean_regs
;
__u32
n_flex_regs
;
__u64
__user
mux_regs_ptr
;
__u64
__user
boolean_regs_ptr
;
__u64
__user
flex_regs_ptr
;
};
#if defined(__cplusplus)
}
#endif
...
...
tools/include/uapi/linux/bpf.h
浏览文件 @
c976a7d6
...
...
@@ -143,12 +143,6 @@ enum bpf_attach_type {
#define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
enum
bpf_sockmap_flags
{
BPF_SOCKMAP_UNSPEC
,
BPF_SOCKMAP_STRPARSER
,
__MAX_BPF_SOCKMAP_FLAG
};
/* If BPF_F_ALLOW_OVERRIDE flag is used in BPF_PROG_ATTACH command
* to the given target_fd cgroup the descendent cgroup will be able to
* override effective bpf program that was inherited from this cgroup
...
...
@@ -368,9 +362,20 @@ union bpf_attr {
* int bpf_redirect(ifindex, flags)
* redirect to another netdev
* @ifindex: ifindex of the net device
* @flags: bit 0 - if set, redirect to ingress instead of egress
* other bits - reserved
* Return: TC_ACT_REDIRECT
* @flags:
* cls_bpf:
* bit 0 - if set, redirect to ingress instead of egress
* other bits - reserved
* xdp_bpf:
* all bits - reserved
* Return: cls_bpf: TC_ACT_REDIRECT on success or TC_ACT_SHOT on error
* xdp_bfp: XDP_REDIRECT on success or XDP_ABORT on error
* int bpf_redirect_map(map, key, flags)
* redirect to endpoint in map
* @map: pointer to dev map
* @key: index in map to lookup
* @flags: --
* Return: XDP_REDIRECT on success or XDP_ABORT on error
*
* u32 bpf_get_route_realm(skb)
* retrieve a dst's tclassid
...
...
@@ -632,7 +637,7 @@ union bpf_attr {
FN(skb_adjust_room), \
FN(redirect_map), \
FN(sk_redirect_map), \
FN(sock_map_update),
FN(sock_map_update),
\
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
* function eBPF program intends to call
...
...
@@ -753,20 +758,23 @@ struct bpf_sock {
__u32
family
;
__u32
type
;
__u32
protocol
;
__u32
mark
;
__u32
priority
;
};
#define XDP_PACKET_HEADROOM 256
/* User return codes for XDP prog type.
* A valid XDP program must return one of these defined values. All other
* return codes are reserved for future use. Unknown return codes will
result
*
in packet drop
.
* return codes are reserved for future use. Unknown return codes will
*
result in packet drops and a warning via bpf_warn_invalid_xdp_action()
.
*/
enum
xdp_action
{
XDP_ABORTED
=
0
,
XDP_DROP
,
XDP_PASS
,
XDP_TX
,
XDP_REDIRECT
,
};
/* user accessible metadata for XDP packet hook
...
...
tools/include/uapi/linux/kvm.h
浏览文件 @
c976a7d6
...
...
@@ -711,7 +711,8 @@ struct kvm_ppc_one_seg_page_size {
struct
kvm_ppc_smmu_info
{
__u64
flags
;
__u32
slb_size
;
__u32
pad
;
__u16
data_keys
;
/* # storage keys supported for data */
__u16
instr_keys
;
/* # storage keys supported for instructions */
struct
kvm_ppc_one_seg_page_size
sps
[
KVM_PPC_PAGE_SIZES_MAX_SZ
];
};
...
...
tools/include/uapi/linux/mman.h
浏览文件 @
c976a7d6
#ifndef _UAPI_LINUX_MMAN_H
#define _UAPI_LINUX_MMAN_H
#include <uapi/asm/mman.h>
#include <asm/mman.h>
#include <asm-generic/hugetlb_encode.h>
#define MREMAP_MAYMOVE 1
#define MREMAP_FIXED 2
...
...
@@ -10,4 +11,25 @@
#define OVERCOMMIT_ALWAYS 1
#define OVERCOMMIT_NEVER 2
/*
* Huge page size encoding when MAP_HUGETLB is specified, and a huge page
* size other than the default is desired. See hugetlb_encode.h.
* All known huge page size encodings are provided here. It is the
* responsibility of the application to know which sizes are supported on
* the running system. See mmap(2) man page for details.
*/
#define MAP_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
#define MAP_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK
#define MAP_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB
#define MAP_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB
#define MAP_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB
#define MAP_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB
#define MAP_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB
#define MAP_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB
#define MAP_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB
#define MAP_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB
#define MAP_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB
#define MAP_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB
#endif
/* _UAPI_LINUX_MMAN_H */
tools/perf/arch/s390/util/Build
浏览文件 @
c976a7d6
libperf
-
y
+=
header
.
o
libperf
-
y
+=
sym
-
handling
.
o
libperf
-
y
+=
kvm
-
stat
.
o
libperf
-
$
(
CONFIG_DWARF
)
+=
dwarf
-
regs
.
o
...
...
tools/perf/arch/s390/util/sym-handling.c
已删除
100644 → 0
浏览文件 @
a47ba4d7
/*
* Architecture specific ELF symbol handling and relocation mapping.
*
* Copyright 2017 IBM Corp.
* Author(s): Thomas Richter <tmricht@linux.vnet.ibm.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License (version 2 only)
* as published by the Free Software Foundation.
*/
#include "symbol.h"
#ifdef HAVE_LIBELF_SUPPORT
bool
elf__needs_adjust_symbols
(
GElf_Ehdr
ehdr
)
{
if
(
ehdr
.
e_type
==
ET_EXEC
)
return
false
;
return
ehdr
.
e_type
==
ET_REL
||
ehdr
.
e_type
==
ET_DYN
;
}
void
arch__adjust_sym_map_offset
(
GElf_Sym
*
sym
,
GElf_Shdr
*
shdr
__maybe_unused
,
struct
map
*
map
)
{
if
(
map
->
type
==
MAP__FUNCTION
)
sym
->
st_value
+=
map
->
start
;
}
#endif
tools/perf/util/callchain.c
浏览文件 @
c976a7d6
...
...
@@ -65,8 +65,6 @@ static int parse_callchain_mode(const char *value)
callchain_param
.
mode
=
CHAIN_FOLDED
;
return
0
;
}
pr_err
(
"Invalid callchain mode: %s
\n
"
,
value
);
return
-
1
;
}
...
...
@@ -82,8 +80,6 @@ static int parse_callchain_order(const char *value)
callchain_param
.
order_set
=
true
;
return
0
;
}
pr_err
(
"Invalid callchain order: %s
\n
"
,
value
);
return
-
1
;
}
...
...
@@ -105,8 +101,6 @@ static int parse_callchain_sort_key(const char *value)
callchain_param
.
branch_callstack
=
1
;
return
0
;
}
pr_err
(
"Invalid callchain sort key: %s
\n
"
,
value
);
return
-
1
;
}
...
...
@@ -124,8 +118,6 @@ static int parse_callchain_value(const char *value)
callchain_param
.
value
=
CCVAL_COUNT
;
return
0
;
}
pr_err
(
"Invalid callchain config key: %s
\n
"
,
value
);
return
-
1
;
}
...
...
@@ -319,12 +311,27 @@ int perf_callchain_config(const char *var, const char *value)
return
ret
;
}
if
(
!
strcmp
(
var
,
"print-type"
))
return
parse_callchain_mode
(
value
);
if
(
!
strcmp
(
var
,
"order"
))
return
parse_callchain_order
(
value
);
if
(
!
strcmp
(
var
,
"sort-key"
))
return
parse_callchain_sort_key
(
value
);
if
(
!
strcmp
(
var
,
"print-type"
)){
int
ret
;
ret
=
parse_callchain_mode
(
value
);
if
(
ret
==
-
1
)
pr_err
(
"Invalid callchain mode: %s
\n
"
,
value
);
return
ret
;
}
if
(
!
strcmp
(
var
,
"order"
)){
int
ret
;
ret
=
parse_callchain_order
(
value
);
if
(
ret
==
-
1
)
pr_err
(
"Invalid callchain order: %s
\n
"
,
value
);
return
ret
;
}
if
(
!
strcmp
(
var
,
"sort-key"
)){
int
ret
;
ret
=
parse_callchain_sort_key
(
value
);
if
(
ret
==
-
1
)
pr_err
(
"Invalid callchain sort key: %s
\n
"
,
value
);
return
ret
;
}
if
(
!
strcmp
(
var
,
"threshold"
))
{
callchain_param
.
min_percent
=
strtod
(
value
,
&
endptr
);
if
(
value
==
endptr
)
{
...
...
tools/perf/util/evsel.c
浏览文件 @
c976a7d6
...
...
@@ -271,12 +271,17 @@ struct perf_evsel *perf_evsel__new_idx(struct perf_event_attr *attr, int idx)
return
evsel
;
}
static
bool
perf_event_can_profile_kernel
(
void
)
{
return
geteuid
()
==
0
||
perf_event_paranoid
()
==
-
1
;
}
struct
perf_evsel
*
perf_evsel__new_cycles
(
bool
precise
)
{
struct
perf_event_attr
attr
=
{
.
type
=
PERF_TYPE_HARDWARE
,
.
config
=
PERF_COUNT_HW_CPU_CYCLES
,
.
exclude_kernel
=
geteuid
()
!=
0
,
.
exclude_kernel
=
!
perf_event_can_profile_kernel
()
,
};
struct
perf_evsel
*
evsel
;
...
...
tools/perf/util/symbol-elf.c
浏览文件 @
c976a7d6
...
...
@@ -810,12 +810,6 @@ static u64 ref_reloc(struct kmap *kmap)
void
__weak
arch__sym_update
(
struct
symbol
*
s
__maybe_unused
,
GElf_Sym
*
sym
__maybe_unused
)
{
}
void
__weak
arch__adjust_sym_map_offset
(
GElf_Sym
*
sym
,
GElf_Shdr
*
shdr
,
struct
map
*
map
__maybe_unused
)
{
sym
->
st_value
-=
shdr
->
sh_addr
-
shdr
->
sh_offset
;
}
int
dso__load_sym
(
struct
dso
*
dso
,
struct
map
*
map
,
struct
symsrc
*
syms_ss
,
struct
symsrc
*
runtime_ss
,
int
kmodule
)
{
...
...
@@ -996,7 +990,7 @@ int dso__load_sym(struct dso *dso, struct map *map, struct symsrc *syms_ss,
/* Adjust symbol to map to file offset */
if
(
adjust_kernel_syms
)
arch__adjust_sym_map_offset
(
&
sym
,
&
shdr
,
map
)
;
sym
.
st_value
-=
shdr
.
sh_addr
-
shdr
.
sh_offset
;
if
(
strcmp
(
section_name
,
(
curr_dso
->
short_name
+
...
...
tools/perf/util/symbol.h
浏览文件 @
c976a7d6
...
...
@@ -344,9 +344,6 @@ int setup_intlist(struct intlist **list, const char *list_str,
#ifdef HAVE_LIBELF_SUPPORT
bool
elf__needs_adjust_symbols
(
GElf_Ehdr
ehdr
);
void
arch__sym_update
(
struct
symbol
*
s
,
GElf_Sym
*
sym
);
void
arch__adjust_sym_map_offset
(
GElf_Sym
*
sym
,
GElf_Shdr
*
shdr
__maybe_unused
,
struct
map
*
map
__maybe_unused
);
#endif
#define SYMBOL_A 0
...
...
tools/perf/util/syscalltbl.c
浏览文件 @
c976a7d6
...
...
@@ -15,9 +15,9 @@
#include "syscalltbl.h"
#include <stdlib.h>
#include <linux/compiler.h>
#ifdef HAVE_SYSCALL_TABLE
#include <linux/compiler.h>
#include <string.h>
#include "string2.h"
#include "util.h"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录