Merge branch 'perf/urgent' into perf/core, to resolve conflict and to prepare for new patches
Conflicts: arch/x86/kernel/traps.c Signed-off-by: Ingo Molnar <mingo@kernel.org>
此提交包含在:
@@ -44,6 +44,9 @@ cpupower: FORCE
|
||||
cgroup firewire hv guest usb virtio vm net: FORCE
|
||||
$(call descend,$@)
|
||||
|
||||
liblockdep: FORCE
|
||||
$(call descend,lib/lockdep)
|
||||
|
||||
libapikfs: FORCE
|
||||
$(call descend,lib/api)
|
||||
|
||||
@@ -91,6 +94,9 @@ cpupower_clean:
|
||||
cgroup_clean hv_clean firewire_clean lguest_clean usb_clean virtio_clean vm_clean net_clean:
|
||||
$(call descend,$(@:_clean=),clean)
|
||||
|
||||
liblockdep_clean:
|
||||
$(call descend,lib/lockdep,clean)
|
||||
|
||||
libapikfs_clean:
|
||||
$(call descend,lib/api,clean)
|
||||
|
||||
|
@@ -1,8 +1,7 @@
|
||||
# file format version
|
||||
FILE_VERSION = 1
|
||||
|
||||
MAKEFLAGS += --no-print-directory
|
||||
LIBLOCKDEP_VERSION=$(shell make -sC ../../.. kernelversion)
|
||||
LIBLOCKDEP_VERSION=$(shell make --no-print-directory -sC ../../.. kernelversion)
|
||||
|
||||
# Makefiles suck: This macro sets a default value of $(2) for the
|
||||
# variable named by $(1), unless the variable has been set by
|
||||
@@ -231,7 +230,7 @@ install_lib: all_cmd
|
||||
install: install_lib
|
||||
|
||||
clean:
|
||||
$(RM) *.o *~ $(TARGETS) *.a *.so $(VERSION_FILES) .*.d
|
||||
$(RM) *.o *~ $(TARGETS) *.a *liblockdep*.so* $(VERSION_FILES) .*.d
|
||||
$(RM) tags TAGS
|
||||
|
||||
endif # skip-makefile
|
||||
|
@@ -747,14 +747,17 @@ struct __find_variable_param {
|
||||
static int __die_find_variable_cb(Dwarf_Die *die_mem, void *data)
|
||||
{
|
||||
struct __find_variable_param *fvp = data;
|
||||
Dwarf_Attribute attr;
|
||||
int tag;
|
||||
|
||||
tag = dwarf_tag(die_mem);
|
||||
if ((tag == DW_TAG_formal_parameter ||
|
||||
tag == DW_TAG_variable) &&
|
||||
die_compare_name(die_mem, fvp->name))
|
||||
die_compare_name(die_mem, fvp->name) &&
|
||||
/* Does the DIE have location information or external instance? */
|
||||
(dwarf_attr(die_mem, DW_AT_external, &attr) ||
|
||||
dwarf_attr(die_mem, DW_AT_location, &attr)))
|
||||
return DIE_FIND_CB_END;
|
||||
|
||||
if (dwarf_haspc(die_mem, fvp->addr))
|
||||
return DIE_FIND_CB_CONTINUE;
|
||||
else
|
||||
|
@@ -511,12 +511,12 @@ static int convert_variable(Dwarf_Die *vr_die, struct probe_finder *pf)
|
||||
|
||||
ret = convert_variable_location(vr_die, pf->addr, pf->fb_ops,
|
||||
&pf->sp_die, pf->tvar);
|
||||
if (ret == -ENOENT)
|
||||
if (ret == -ENOENT || ret == -EINVAL)
|
||||
pr_err("Failed to find the location of %s at this address.\n"
|
||||
" Perhaps, it has been optimized out.\n", pf->pvar->var);
|
||||
else if (ret == -ENOTSUP)
|
||||
pr_err("Sorry, we don't support this variable location yet.\n");
|
||||
else if (pf->pvar->field) {
|
||||
else if (ret == 0 && pf->pvar->field) {
|
||||
ret = convert_variable_fields(vr_die, pf->pvar->var,
|
||||
pf->pvar->field, &pf->tvar->ref,
|
||||
&die_mem);
|
||||
|
新增問題並參考
封鎖使用者