mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sasha Levin <Alexander.Levin@microsoft.com>
To: "stable@vger.kernel.org" <stable@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	Jiri Olsa <jolsa@redhat.com>,
	Stephane Eranian <eranian@google.com>,
	Vince Weaver <vincent.weaver@maine.edu>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	"acme@kernel.org" <acme@kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Sasha Levin <Alexander.Levin@microsoft.com>
Subject: [PATCH AUTOSEL 4.18 107/136] perf/x86/intel/lbr: Fix incomplete LBR call stack
Date: Mon, 17 Sep 2018 03:01:19 +0000	[thread overview]
Message-ID: <20180917030006.245495-107-alexander.levin@microsoft.com> (raw)
In-Reply-To: <20180917030006.245495-1-alexander.levin@microsoft.com>

From: Kan Liang <kan.liang@linux.intel.com>

[ Upstream commit 0592e57b24e7e05ec1f4c50b9666c013abff7017 ]

LBR has a limited stack size. If a task has a deeper call stack than
LBR's stack size, only the overflowed part is reported. A complete call
stack may not be reconstructed by perf tool.

Current code doesn't access all LBR registers. It only read the ones
below the TOS. The LBR registers above the TOS will be discarded
unconditionally.

When a CALL is captured, the TOS is incremented by 1 , modulo max LBR
stack size. The LBR HW only records the call stack information to the
register which the TOS points to. It will not touch other LBR
registers. So the registers above the TOS probably still store the valid
call stack information for an overflowed call stack, which need to be
reported.

To retrieve complete call stack information, we need to start from TOS,
read all LBR registers until an invalid entry is detected.
0s can be used to detect the invalid entry, because:

 - When a RET is captured, the HW zeros the LBR register which TOS points
   to, then decreases the TOS.
 - The LBR registers are reset to 0 when adding a new LBR event or
   scheduling an existing LBR event.
 - A taken branch at IP 0 is not expected

The context switch code is also modified to save/restore all valid LBR
registers. Furthermore, the LBR registers, which don't have valid call
stack information, need to be reset in restore, because they may be
polluted while swapped out.

Here is a small test program, tchain_deep.
Its call stack is deeper than 32.

 noinline void f33(void)
 {
        int i;

        for (i = 0; i < 10000000;) {
                if (i%2)
                        i++;
                else
                        i++;
        }
 }

 noinline void f32(void)
 {
        f33();
 }

 noinline void f31(void)
 {
        f32();
 }

 ... ...

 noinline void f1(void)
 {
        f2();
 }

 int main()
 {
        f1();
 }

Here is the test result on SKX. The max stack size of SKX is 32.

Without the patch:

 $ perf record -e cycles --call-graph lbr -- ./tchain_deep
 $ perf report --stdio
 #
 # Children      Self  Command      Shared Object     Symbol
 # ........  ........  ...........  ................  .................
 #
   100.00%    99.99%  tchain_deep    tchain_deep       [.] f33
            |
             --99.99%--f30
                       f31
                       f32
                       f33

With the patch:

 $ perf record -e cycles --call-graph lbr -- ./tchain_deep
 $ perf report --stdio
 # Children      Self  Command      Shared Object     Symbol
 # ........  ........  ...........  ................  ..................
 #
    99.99%     0.00%  tchain_deep    tchain_deep       [.] f1
            |
            ---f1
               f2
               f3
               f4
               f5
               f6
               f7
               f8
               f9
               f10
               f11
               f12
               f13
               f14
               f15
               f16
               f17
               f18
               f19
               f20
               f21
               f22
               f23
               f24
               f25
               f26
               f27
               f28
               f29
               f30
               f31
               f32
               f33

Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Stephane Eranian <eranian@google.com>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: acme@kernel.org
Cc: eranian@google.com
Link: https://lore.kernel.org/lkml/1528213126-4312-1-git-send-email-kan.liang@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
---
 arch/x86/events/intel/lbr.c  | 32 ++++++++++++++++++++++++++------
 arch/x86/events/perf_event.h |  1 +
 2 files changed, 27 insertions(+), 6 deletions(-)

diff --git a/arch/x86/events/intel/lbr.c b/arch/x86/events/intel/lbr.c
index cf372b90557e..a4170048a30b 100644
--- a/arch/x86/events/intel/lbr.c
+++ b/arch/x86/events/intel/lbr.c
@@ -346,7 +346,7 @@ static void __intel_pmu_lbr_restore(struct x86_perf_task_context *task_ctx)
 
 	mask = x86_pmu.lbr_nr - 1;
 	tos = task_ctx->tos;
-	for (i = 0; i < tos; i++) {
+	for (i = 0; i < task_ctx->valid_lbrs; i++) {
 		lbr_idx = (tos - i) & mask;
 		wrlbr_from(lbr_idx, task_ctx->lbr_from[i]);
 		wrlbr_to  (lbr_idx, task_ctx->lbr_to[i]);
@@ -354,6 +354,15 @@ static void __intel_pmu_lbr_restore(struct x86_perf_task_context *task_ctx)
 		if (x86_pmu.intel_cap.lbr_format == LBR_FORMAT_INFO)
 			wrmsrl(MSR_LBR_INFO_0 + lbr_idx, task_ctx->lbr_info[i]);
 	}
+
+	for (; i < x86_pmu.lbr_nr; i++) {
+		lbr_idx = (tos - i) & mask;
+		wrlbr_from(lbr_idx, 0);
+		wrlbr_to(lbr_idx, 0);
+		if (x86_pmu.intel_cap.lbr_format == LBR_FORMAT_INFO)
+			wrmsrl(MSR_LBR_INFO_0 + lbr_idx, 0);
+	}
+
 	wrmsrl(x86_pmu.lbr_tos, tos);
 	task_ctx->lbr_stack_state = LBR_NONE;
 }
@@ -361,7 +370,7 @@ static void __intel_pmu_lbr_restore(struct x86_perf_task_context *task_ctx)
 static void __intel_pmu_lbr_save(struct x86_perf_task_context *task_ctx)
 {
 	unsigned lbr_idx, mask;
-	u64 tos;
+	u64 tos, from;
 	int i;
 
 	if (task_ctx->lbr_callstack_users == 0) {
@@ -371,13 +380,17 @@ static void __intel_pmu_lbr_save(struct x86_perf_task_context *task_ctx)
 
 	mask = x86_pmu.lbr_nr - 1;
 	tos = intel_pmu_lbr_tos();
-	for (i = 0; i < tos; i++) {
+	for (i = 0; i < x86_pmu.lbr_nr; i++) {
 		lbr_idx = (tos - i) & mask;
-		task_ctx->lbr_from[i] = rdlbr_from(lbr_idx);
+		from = rdlbr_from(lbr_idx);
+		if (!from)
+			break;
+		task_ctx->lbr_from[i] = from;
 		task_ctx->lbr_to[i]   = rdlbr_to(lbr_idx);
 		if (x86_pmu.intel_cap.lbr_format == LBR_FORMAT_INFO)
 			rdmsrl(MSR_LBR_INFO_0 + lbr_idx, task_ctx->lbr_info[i]);
 	}
+	task_ctx->valid_lbrs = i;
 	task_ctx->tos = tos;
 	task_ctx->lbr_stack_state = LBR_VALID;
 }
@@ -531,7 +544,7 @@ static void intel_pmu_lbr_read_32(struct cpu_hw_events *cpuc)
  */
 static void intel_pmu_lbr_read_64(struct cpu_hw_events *cpuc)
 {
-	bool need_info = false;
+	bool need_info = false, call_stack = false;
 	unsigned long mask = x86_pmu.lbr_nr - 1;
 	int lbr_format = x86_pmu.intel_cap.lbr_format;
 	u64 tos = intel_pmu_lbr_tos();
@@ -542,7 +555,7 @@ static void intel_pmu_lbr_read_64(struct cpu_hw_events *cpuc)
 	if (cpuc->lbr_sel) {
 		need_info = !(cpuc->lbr_sel->config & LBR_NO_INFO);
 		if (cpuc->lbr_sel->config & LBR_CALL_STACK)
-			num = tos;
+			call_stack = true;
 	}
 
 	for (i = 0; i < num; i++) {
@@ -555,6 +568,13 @@ static void intel_pmu_lbr_read_64(struct cpu_hw_events *cpuc)
 		from = rdlbr_from(lbr_idx);
 		to   = rdlbr_to(lbr_idx);
 
+		/*
+		 * Read LBR call stack entries
+		 * until invalid entry (0s) is detected.
+		 */
+		if (call_stack && !from)
+			break;
+
 		if (lbr_format == LBR_FORMAT_INFO && need_info) {
 			u64 info;
 
diff --git a/arch/x86/events/perf_event.h b/arch/x86/events/perf_event.h
index 9f3711470ec1..6b72a92069fd 100644
--- a/arch/x86/events/perf_event.h
+++ b/arch/x86/events/perf_event.h
@@ -648,6 +648,7 @@ struct x86_perf_task_context {
 	u64 lbr_to[MAX_LBR_ENTRIES];
 	u64 lbr_info[MAX_LBR_ENTRIES];
 	int tos;
+	int valid_lbrs;
 	int lbr_callstack_users;
 	int lbr_stack_state;
 };
-- 
2.17.1

  parent reply	other threads:[~2018-09-17  3:29 UTC|newest]

Thread overview: 139+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-17  3:00 [PATCH AUTOSEL 4.18 001/136] crypto: skcipher - Fix -Wstringop-truncation warnings Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 002/136] iio: adc: ina2xx: avoid kthread_stop() with stale task_struct Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 003/136] tsl2550: fix lux1_input error in low light Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 005/136] vmci: type promotion bug in qp_host_get_user_memory() Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 004/136] misc: ibmvmc: Use GFP_ATOMIC under spin lock Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 006/136] siox: don't create a thread without starting it Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 008/136] net: hns3: Fix for mac pause not disable in pfc mode Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 007/136] net: hns3: Fix for mailbox message truncated problem Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 009/136] net: hns3: Fix warning bug when doing lp selftest Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 010/136] net: hns3: Fix get_vector ops in hclgevf_main module Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 012/136] staging: rts5208: fix missing error check on call to rtsx_write_register Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 011/136] x86/numa_emulation: Fix emulated-to-physical node mapping Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 013/136] power: supply: axp288_charger: Fix initial constant_charge_current value Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 014/136] misc: sram: enable clock before registering regions Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 015/136] serial: sh-sci: Stop RX FIFO timer during port shutdown Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 017/136] power: vexpress: fix corruption in notifier registration Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 016/136] uwb: hwa-rc: fix memory leak at probe Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 018/136] iommu/amd: make sure TLB to be flushed before IOVA freed Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 019/136] Bluetooth: Add a new Realtek 8723DE ID 0bda:b009 Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 020/136] USB: serial: kobil_sct: fix modem-status error handling Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 021/136] 6lowpan: iphc: reset mac_header after decompress to fix panic Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 022/136] iommu/msm: Don't call iommu_device_{,un}link from atomic context Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 023/136] s390/mm: correct allocate_pgste proc_handler callback Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 024/136] power: remove possible deadlock when unregistering power_supply Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 025/136] drm/amd/display/dc/dce: Fix multiple potential integer overflows Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 026/136] drm/amd/display: fix use of uninitialized memory Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 027/136] md-cluster: clear another node's suspend_area after the copy is finished Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 029/136] RDMA/bnxt_re: Fix a couple off by one bugs Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 028/136] cxgb4: Fix the condition to check if the card is T5 Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 031/136] RDMA/bnxt_re: Fix a bunch of off by one bugs in qplib_fp.c Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 030/136] RDMA/i40w: Hold read semaphore while looking after VMA Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 032/136] arm64: fix infinite stacktrace Sasha Levin
2018-09-18 10:55   ` Mikulas Patocka
2018-09-18 11:00     ` Will Deacon
2018-09-21 14:58       ` Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 033/136] IB/core: type promotion bug in rdma_rw_init_one_mr() Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 034/136] media: exynos4-is: Prevent NULL pointer dereference in __isp_video_try_fmt() Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 036/136] powerpc/kdump: Handle crashkernel memory reservation failure Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 035/136] IB/mlx4: Test port number before querying type Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 037/136] media: fsl-viu: fix error handling in viu_of_probe() Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 038/136] vhost_net: Avoid tx vring kicks during busyloop Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 039/136] media: staging/imx: fill vb2_v4l2_buffer field entry Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 041/136] IB/mlx5: Fix GRE flow specification Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 040/136] media: sta2x11: Add video_device and vb2_queue locks Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 042/136] include/rdma/opa_addr.h: Fix an endianness issue Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 043/136] x86/tsc: Add missing header to tsc_msr.c Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 044/136] ARM: hwmod: RTC: Don't assume lock/unlock will be called with irq enabled Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 045/136] x86/entry/64: Add two more instruction suffixes Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 047/136] scsi: target/iscsi: Make iscsit_ta_authentication() respect the output buffer size Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 046/136] ARM: dts: ls1021a: Add missing cooling device properties for CPUs Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 048/136] thermal: i.MX: Allow thermal probe to fail gracefully in case of bad calibration Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 049/136] scsi: klist: Make it safe to use klists in atomic context Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 050/136] scsi: ibmvscsi: Improve strings handling Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 052/136] usb: wusbcore: security: cast sizeof to int for comparison Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 051/136] scsi: target: Avoid that EXTENDED COPY commands trigger lock inversion Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 053/136] ath10k: sdio: use same endpoint id for all packets in a bundle Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 055/136] powerpc/powernv/ioda2: Reduce upper limit for DMA window size Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 054/136] ath10k: sdio: set skb len for all rx packets Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 056/136] platform/x86: asus-wireless: Fix uninitialized symbol usage Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 057/136] ACPI / button: increment wakeup count only when notified Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 058/136] s390/sysinfo: add missing #ifdef CONFIG_PROC_FS Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 060/136] s390/dasd: correct numa_node in dasd_alloc_queue Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 059/136] alarmtimer: Prevent overflow for relative nanosleep Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 061/136] s390/scm_blk: correct numa_node in scm_blk_dev_setup Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 062/136] s390/extmem: fix gcc 8 stringop-overflow warning Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 063/136] mtd: rawnand: atmel: add module param to avoid using dma Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 065/136] posix-timers: Make forward callback return s64 Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 064/136] iio: accel: adxl345: convert address field usage in iio_chan_spec Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 066/136] posix-timers: Sanitize overrun handling Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 068/136] nfp: fail probe if serial or interface id is missing Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 067/136] ALSA: snd-aoa: add of_node_put() in error path Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 069/136] selftests: forwarding: Tweak tc filters for mirror-to-gretap tests Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 070/136] ath10k: use locked skb_dequeue for rx completions Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 071/136] media: s3c-camif: ignore -ENOIOCTLCMD from v4l2_subdev_call for s_power Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 073/136] media: omap3isp: zero-initialize the isp cam_xclk{a,b} initial data Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 072/136] media: soc_camera: ov772x: correct setting of banding filter Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 074/136] media: ov772x: add checks for register read errors Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 075/136] staging: android: ashmem: Fix mmap size validation Sasha Levin
2018-09-17  3:00 ` [PATCH AUTOSEL 4.18 076/136] media: ov772x: allow i2c controllers without I2C_FUNC_PROTOCOL_MANGLING Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 078/136] drivers/tty: add error handling for pcmcia_loop_config Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 077/136] staging: mt7621-eth: Fix memory leak in mtk_add_mac() error path Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 079/136] arm64: dts: renesas: salvator-common: Fix adv7482 decimal unit addresses Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 080/136] serial: pxa: Fix an error handling path in 'serial_pxa_probe()' Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 081/136] staging: mt7621-dts: Fix remaining pcie warnings Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 082/136] media: tm6000: add error handling for dvb_register_adapter Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 083/136] ASoC: qdsp6: qdafe: fix some off by one bugs Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 084/136] ALSA: hda: Add AZX_DCAPS_PM_RUNTIME for AMD Raven Ridge Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 085/136] net: phy: xgmiitorgmii: Check read_status results Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 087/136] drm/sun4i: Enable DW HDMI PHY clock Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 086/136] ath10k: protect ath10k_htt_rx_ring_free with rx_ring.lock Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 088/136] net: phy: xgmiitorgmii: Check phy_driver ready before accessing Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 090/136] ath10k: transmit queued frames after processing rx packets Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 089/136] drm/sun4i: Fix releasing node when enumerating enpoints Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 091/136] mt76x2: fix mrr idx/count estimation in mt76x2_mac_fill_tx_status() Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 092/136] rndis_wlan: potential buffer overflow in rndis_wlan_auth_indication() Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 093/136] brcmsmac: fix wrap around in conversion from constant to s16 Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 095/136] wlcore: Add missing PM call for wlcore_cmd_wait_for_event_or_timeout() Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 094/136] bitfield: fix *_encode_bits() Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 096/136] drm/omap: gem: Fix mm_list locking Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 098/136] RDMA/uverbs: Don't overwrite NULL pointer with ZERO_SIZE_PTR Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 097/136] ARM: mvebu: declare asm symbols as character arrays in pmsu.c Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 099/136] Documentation/process: fix reST table border error Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 100/136] perf/hw_breakpoint: Split attribute parse and commit Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 101/136] arm: dts: mediatek: Add missing cooling device properties for CPUs Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 102/136] HID: hid-ntrig: add error handling for sysfs_create_group Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 103/136] HID: i2c-hid: Use devm to allocate i2c_hid struct Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 104/136] MIPS: boot: fix build rule of vmlinux.its.S Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 105/136] arm64: dts: renesas: Fix VSPD registers range Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 106/136] drm/v3d: Take a lock across GPU scheduler job creation and queuing Sasha Levin
2018-09-17  3:01 ` Sasha Levin [this message]
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 108/136] scsi: bnx2i: add error handling for ioremap_nocache Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 110/136] scsi: hisi_sas: Fix the conflict between dev gone and host reset Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 109/136] iomap: complete partial direct I/O writes synchronously Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 112/136] spi: orion: fix CS GPIO handling again Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 111/136] audit: Fix extended comparison of GID/EGID Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 113/136] scsi: megaraid_sas: Update controller info during resume Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 114/136] ASoC: Intel: bytcr_rt5640: Fix Acer Iconia 8 over-current detect threshold Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 115/136] ASoC: rt1305: Use ULL suffixes for 64-bit constants Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 116/136] ASoC: rsnd: SSI parent cares SWSP bit Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 117/136] EDAC, i7core: Fix memleaks and use-after-free on probe and remove Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 119/136] module: exclude SHN_UNDEF symbols from kallsyms api Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 118/136] ASoC: dapm: Fix potential DAI widget pointer deref when linking DAIs Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 120/136] gpio: Fix wrong rounding in gpio-menz127 Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 121/136] nfsd: fix corrupted reply to badly ordered compound Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 122/136] EDAC: Fix memleak in module init error path Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 123/136] EDAC, altera: Fix an error handling path in altr_s10_sdram_probe() Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 124/136] staging: pi433: fix race condition in pi433_ioctl Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 125/136] ath10k: fix incorrect size of dma_free_coherent in ath10k_ce_alloc_src_ring_64 Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 127/136] fs/lock: skip lock owner pid translation in case we are in init_pid_ns Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 126/136] ath10k: snoc: use correct bus-specific pointer in RX retry Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 128/136] ath10k: fix memory leak of tpc_stats Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 129/136] Input: xen-kbdfront - fix multi-touch XenStore node's locations Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 130/136] iio: 104-quad-8: Fix off-by-one error in register selection Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 132/136] ARM: dts: dra7: fix DCAN node addresses Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 131/136] drm/vc4: Add missing formats to vc4_format_mod_supported() Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 133/136] drm/vc4: plane: Expand the lower bits by repeating the higher bits Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 135/136] perf tests: Fix indexing when invoking subtests Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 134/136] PCI: Whitelist Thunderbolt ports for runtime D3 Sasha Levin
2018-09-17  3:01 ` [PATCH AUTOSEL 4.18 136/136] gpio: tegra: Fix tegra_gpio_irq_set_type() Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180917030006.245495-107-alexander.levin@microsoft.com \
    --to=alexander.levin@microsoft.com \
    --cc=acme@kernel.org \
    --cc=acme@redhat.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=eranian@google.com \
    --cc=jolsa@redhat.com \
    --cc=kan.liang@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=stable@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=vincent.weaver@maine.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®