stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Mel Gorman <mgorman@suse.de>,
	Vlastimil Babka <vbabka@suse.cz>,
	Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	Johannes Weiner <hannes@cmpxchg.org>, Jan Kara <jack@suse.cz>,
	Michal Hocko <mhocko@suse.cz>, Hugh Dickins <hughd@google.com>,
	Dave Hansen <dave.hansen@intel.com>, Theodore Tso <tytso@mit.edu>,
	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
	Oleg Nesterov <oleg@redhat.com>, Rik van Riel <riel@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: [PATCH 3.15 026/139] mm: page_alloc: use word-based accesses for get/set pageblock bitmaps
Date: Sat, 28 Jun 2014 10:46:27 -0700	[thread overview]
Message-ID: <20140628174606.603821950@linuxfoundation.org> (raw)
In-Reply-To: <20140628174605.352098823@linuxfoundation.org>

3.15-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Mel Gorman <mgorman@suse.de>

commit e58469bafd0524e848c3733bc3918d854595e20f upstream.

The test_bit operations in get/set pageblock flags are expensive.  This
patch reads the bitmap on a word basis and use shifts and masks to isolate
the bits of interest.  Similarly masks are used to set a local copy of the
bitmap and then use cmpxchg to update the bitmap if there have been no
other changes made in parallel.

In a test running dd onto tmpfs the overhead of the pageblock-related
functions went from 1.27% in profiles to 0.5%.

In addition to the performance benefits, this patch closes races that are
possible between:

a) get_ and set_pageblock_migratetype(), where get_pageblock_migratetype()
   reads part of the bits before and other part of the bits after
   set_pageblock_migratetype() has updated them.

b) set_pageblock_migratetype() and set_pageblock_skip(), where the non-atomic
   read-modify-update set bit operation in set_pageblock_skip() will cause
   lost updates to some bits changed in the set_pageblock_migratetype().

Joonsoo Kim first reported the case a) via code inspection.  Vlastimil
Babka's testing with a debug patch showed that either a) or b) occurs
roughly once per mmtests' stress-highalloc benchmark (although not
necessarily in the same pageblock).  Furthermore during development of
unrelated compaction patches, it was observed that frequent calls to
{start,undo}_isolate_page_range() the race occurs several thousands of
times and has resulted in NULL pointer dereferences in move_freepages()
and free_one_page() in places where free_list[migratetype] is
manipulated by e.g.  list_move().  Further debugging confirmed that
migratetype had invalid value of 6, causing out of bounds access to the
free_list array.

That confirmed that the race exist, although it may be extremely rare,
and currently only fatal where page isolation is performed due to
memory hot remove.  Races on pageblocks being updated by
set_pageblock_migratetype(), where both old and new migratetype are
lower MIGRATE_RESERVE, currently cannot result in an invalid value
being observed, although theoretically they may still lead to
unexpected creation or destruction of MIGRATE_RESERVE pageblocks.
Furthermore, things could get suddenly worse when memory isolation is
used more, or when new migratetypes are added.

After this patch, the race has no longer been observed in testing.

Signed-off-by: Mel Gorman <mgorman@suse.de>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Reported-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Reported-and-tested-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Jan Kara <jack@suse.cz>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Hugh Dickins <hughd@google.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Theodore Ts'o <tytso@mit.edu>
Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 include/linux/mmzone.h          |    6 +++-
 include/linux/pageblock-flags.h |   37 +++++++++++++++++++++++-----
 mm/page_alloc.c                 |   52 ++++++++++++++++++++++++----------------
 3 files changed, 68 insertions(+), 27 deletions(-)

--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -75,9 +75,13 @@ enum {
 
 extern int page_group_by_mobility_disabled;
 
+#define NR_MIGRATETYPE_BITS (PB_migrate_end - PB_migrate + 1)
+#define MIGRATETYPE_MASK ((1UL << NR_MIGRATETYPE_BITS) - 1)
+
 static inline int get_pageblock_migratetype(struct page *page)
 {
-	return get_pageblock_flags_group(page, PB_migrate, PB_migrate_end);
+	BUILD_BUG_ON(PB_migrate_end - PB_migrate != 2);
+	return get_pageblock_flags_mask(page, PB_migrate_end, MIGRATETYPE_MASK);
 }
 
 struct free_area {
--- a/include/linux/pageblock-flags.h
+++ b/include/linux/pageblock-flags.h
@@ -30,9 +30,12 @@ enum pageblock_bits {
 	PB_migrate,
 	PB_migrate_end = PB_migrate + 3 - 1,
 			/* 3 bits required for migrate types */
-#ifdef CONFIG_COMPACTION
 	PB_migrate_skip,/* If set the block is skipped by compaction */
-#endif /* CONFIG_COMPACTION */
+
+	/*
+	 * Assume the bits will always align on a word. If this assumption
+	 * changes then get/set pageblock needs updating.
+	 */
 	NR_PAGEBLOCK_BITS
 };
 
@@ -62,11 +65,33 @@ extern int pageblock_order;
 /* Forward declaration */
 struct page;
 
+unsigned long get_pageblock_flags_mask(struct page *page,
+				unsigned long end_bitidx,
+				unsigned long mask);
+void set_pageblock_flags_mask(struct page *page,
+				unsigned long flags,
+				unsigned long end_bitidx,
+				unsigned long mask);
+
 /* Declarations for getting and setting flags. See mm/page_alloc.c */
-unsigned long get_pageblock_flags_group(struct page *page,
-					int start_bitidx, int end_bitidx);
-void set_pageblock_flags_group(struct page *page, unsigned long flags,
-					int start_bitidx, int end_bitidx);
+static inline unsigned long get_pageblock_flags_group(struct page *page,
+					int start_bitidx, int end_bitidx)
+{
+	unsigned long nr_flag_bits = end_bitidx - start_bitidx + 1;
+	unsigned long mask = (1 << nr_flag_bits) - 1;
+
+	return get_pageblock_flags_mask(page, end_bitidx, mask);
+}
+
+static inline void set_pageblock_flags_group(struct page *page,
+					unsigned long flags,
+					int start_bitidx, int end_bitidx)
+{
+	unsigned long nr_flag_bits = end_bitidx - start_bitidx + 1;
+	unsigned long mask = (1 << nr_flag_bits) - 1;
+
+	set_pageblock_flags_mask(page, flags, end_bitidx, mask);
+}
 
 #ifdef CONFIG_COMPACTION
 #define get_pageblock_skip(page) \
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -6009,53 +6009,65 @@ static inline int pfn_to_bitidx(struct z
  * @end_bitidx: The last bit of interest
  * returns pageblock_bits flags
  */
-unsigned long get_pageblock_flags_group(struct page *page,
-					int start_bitidx, int end_bitidx)
+unsigned long get_pageblock_flags_mask(struct page *page,
+					unsigned long end_bitidx,
+					unsigned long mask)
 {
 	struct zone *zone;
 	unsigned long *bitmap;
-	unsigned long pfn, bitidx;
-	unsigned long flags = 0;
-	unsigned long value = 1;
+	unsigned long pfn, bitidx, word_bitidx;
+	unsigned long word;
 
 	zone = page_zone(page);
 	pfn = page_to_pfn(page);
 	bitmap = get_pageblock_bitmap(zone, pfn);
 	bitidx = pfn_to_bitidx(zone, pfn);
+	word_bitidx = bitidx / BITS_PER_LONG;
+	bitidx &= (BITS_PER_LONG-1);
 
-	for (; start_bitidx <= end_bitidx; start_bitidx++, value <<= 1)
-		if (test_bit(bitidx + start_bitidx, bitmap))
-			flags |= value;
-
-	return flags;
+	word = bitmap[word_bitidx];
+	bitidx += end_bitidx;
+	return (word >> (BITS_PER_LONG - bitidx - 1)) & mask;
 }
 
 /**
- * set_pageblock_flags_group - Set the requested group of flags for a pageblock_nr_pages block of pages
+ * set_pageblock_flags_mask - Set the requested group of flags for a pageblock_nr_pages block of pages
  * @page: The page within the block of interest
  * @start_bitidx: The first bit of interest
  * @end_bitidx: The last bit of interest
  * @flags: The flags to set
  */
-void set_pageblock_flags_group(struct page *page, unsigned long flags,
-					int start_bitidx, int end_bitidx)
+void set_pageblock_flags_mask(struct page *page, unsigned long flags,
+					unsigned long end_bitidx,
+					unsigned long mask)
 {
 	struct zone *zone;
 	unsigned long *bitmap;
-	unsigned long pfn, bitidx;
-	unsigned long value = 1;
+	unsigned long pfn, bitidx, word_bitidx;
+	unsigned long old_word, word;
+
+	BUILD_BUG_ON(NR_PAGEBLOCK_BITS != 4);
 
 	zone = page_zone(page);
 	pfn = page_to_pfn(page);
 	bitmap = get_pageblock_bitmap(zone, pfn);
 	bitidx = pfn_to_bitidx(zone, pfn);
+	word_bitidx = bitidx / BITS_PER_LONG;
+	bitidx &= (BITS_PER_LONG-1);
+
 	VM_BUG_ON_PAGE(!zone_spans_pfn(zone, pfn), page);
 
-	for (; start_bitidx <= end_bitidx; start_bitidx++, value <<= 1)
-		if (flags & value)
-			__set_bit(bitidx + start_bitidx, bitmap);
-		else
-			__clear_bit(bitidx + start_bitidx, bitmap);
+	bitidx += end_bitidx;
+	mask <<= (BITS_PER_LONG - bitidx - 1);
+	flags <<= (BITS_PER_LONG - bitidx - 1);
+
+	word = ACCESS_ONCE(bitmap[word_bitidx]);
+	for (;;) {
+		old_word = cmpxchg(&bitmap[word_bitidx], word, (word & ~mask) | flags);
+		if (word == old_word)
+			break;
+		word = old_word;
+	}
 }
 
 /*



  parent reply	other threads:[~2014-06-28 17:46 UTC|newest]

Thread overview: 151+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-28 17:46 [PATCH 3.15 000/139] 3.15.3-stable review Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 001/139] imx-drm: fix hdmi hotplug detection initial state Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 002/139] block: virtio_blk: dont hold spin lock during world switch Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 003/139] extcon: max8997: Fix NULL pointer exception on missing pdata Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 004/139] extcon: max77693: Fix two NULL pointer exceptions " Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 005/139] extcon: max14577: Fix probe failure on successful work queue Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 006/139] extcon: max14577: Properly handle regmap_irq_get_virq error Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 007/139] w1: do not unlock unheld list_mutex in __w1_remove_master_device() Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 008/139] printk/of_serial: fix serial console cessation part way through boot Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 010/139] staging: tidspbridge: check for CONFIG_SND_OMAP_SOC_MCBSP Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 011/139] Staging: rtl8188eu: overflow in update_sta_support_rate() Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 012/139] staging/mt29f_spinand: Terminate of match table Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 013/139] applicom: dereferencing NULL on error path Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 014/139] usb: usbtest: fix unlink write error with pattern 1 Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 015/139] USB: usbtest: add a timeout for scatter-gather tests Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 016/139] usb: gadget: rename CONFIG_USB_GADGET_PXA25X Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 017/139] usb: dwc3: gadget: clear stall when disabling endpoint Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 018/139] ARM: OMAP: replace checks for CONFIG_USB_GADGET_OMAP Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 019/139] USB: EHCI: avoid BIOS handover on the HASEE E200 Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 020/139] USB: option: fix runtime PM handling Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 021/139] tools/vm/page-types.c: catch sigbus if raced with truncate Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 022/139] hugetlb: restrict hugepage_migration_support() to x86_64 Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 023/139] kthread: fix return value of kthread_create() upon SIGKILL Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 024/139] mm: vmscan: do not throttle based on pfmemalloc reserves if node has no ZONE_NORMAL Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 025/139] memcg: do not hang on OOM when killed by userspace OOM access to memory reserves Greg Kroah-Hartman
2014-06-28 17:46 ` Greg Kroah-Hartman [this message]
2014-06-28 17:46 ` [PATCH 3.15 027/139] mm/memory-failure.c-failure: send right signal code to correct thread Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 028/139] mm/memory-failure.c: dont let collect_procs() skip over processes for MF_ACTION_REQUIRED Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 029/139] mm/memory-failure.c: support use of a dedicated thread to handle SIGBUS(BUS_MCEERR_AO) Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 030/139] zram: correct offset usage in zram_bio_discard Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 031/139] mm: fix sleeping function warning from __put_anon_vma Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 032/139] HID: core: fix validation of report id 0 Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 033/139] mm: vmscan: clear kswapds special reclaim powers before exiting Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 034/139] ptrace: fix fork event messages across pid namespaces Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 035/139] arm64: ptrace: change fs when passing kernel pointer to regset code Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 036/139] arm64: ptrace: fix empty registers set in prstatus of aarch32 process core Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 037/139] idr: fix overflow bug during maximum ID calculation at maximum height Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 038/139] s390/time: cast tv_nsec to u64 prior to shift in update_vsyscall Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 039/139] s390/lowcore: reserve 96 bytes for IRB in lowcore Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 040/139] regulator: s2mpa01: Use correct register for buck1 ramp delay Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 041/139] regulator: s2mps11: Fix accidental enable of buck6 " Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 042/139] regulator: s2mpa01: Fix accidental enable of buck4 " Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 043/139] ext4: fix data integrity sync in ordered mode Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 044/139] ext4: fix zeroing of page during writeback Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 045/139] ext4: fix ZERO_RANGE test failure in data journalling Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 046/139] ext4: fix wrong assert in ext4_mb_normalize_request() Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 047/139] matroxfb: perform a dummy read of M_STATUS Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 048/139] USB: usb_wwan: fix urb leak in write error path Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 049/139] USB: usb_wwan: fix race between write and resume Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 050/139] USB: usb_wwan: fix write and suspend race Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 051/139] USB: usb_wwan: fix urb leak at shutdown Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 052/139] USB: usb_wwan: fix potential NULL-deref at resume Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 053/139] USB: usb_wwan: fix potential blocked I/O after resume Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 054/139] USB: sierra: fix AA deadlock in open error path Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 055/139] USB: sierra: fix use after free at suspend/resume Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 056/139] USB: sierra: fix urb and memory leak in resume error path Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 057/139] USB: sierra: fix urb and memory leak on disconnect Greg Kroah-Hartman
2014-06-28 17:46 ` [PATCH 3.15 058/139] USB: sierra: fix remote wakeup Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 059/139] usb: qcserial: add Netgear AirCard 341U Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 060/139] usb: qcserial: add additional Sierra Wireless QMI devices Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 061/139] USB: serial: fix potential runtime pm imbalance at device remove Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 062/139] media: ivtv: Fix Oops when no firmware is loaded Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 063/139] media: stk1160: Avoid stack-allocated buffer for control URBs Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 064/139] media: exynos4-is: Free FIMC-IS CPU memory only when allocated Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 065/139] media: exynos4-is: Fix compilation for !CONFIG_COMMON_CLK Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 067/139] ACPICA: utstring: Check array index bound before use Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 068/139] ACPI: Fix conflict between customized DSDT and DSDT local copy Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 069/139] ACPI / hotplug / PCI: Add hotplug contexts to PCI host bridges Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 071/139] rtmutex: Detect changes in the pi lock chain Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 072/139] rtmutex: Handle deadlock detection smarter Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 073/139] rtmutex: Plug slow unlock race Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 074/139] media: uvcvideo: Fix clock param realtime setting Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 076/139] media: saa7134: fix regression with tvtime Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 077/139] ARM: stacktrace: avoid listing stacktrace functions in stacktrace Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 078/139] ARM: 8037/1: mm: support big-endian page tables Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 079/139] ARM: OMAP2+: gpmc: enable BCH_HW ecc-scheme for AM43xx platforms Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 080/139] PM / OPP: fix incorrect OPP count handling in of_init_opp_table Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 082/139] Bluetooth: 6LoWPAN: Fix MAC address universal/local bit handling Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 084/139] Bluetooth: Fix authentication check for FIPS security level Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 085/139] Bluetooth: Fix requiring SMP MITM for outgoing connections Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 086/139] Bluetooth: Fix missing check for FIPS security level Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 087/139] Target/iser: Bail from accept_np if np_thread is trying to close Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 088/139] Target/iser: Fix hangs in connection teardown Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 089/139] Target/iser: Improve cm events handling Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 090/139] Target/iser: Wait for proper cleanup before unloading Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 091/139] Target/iser: Gracefully reject T10-PI enabled connect request if not supported Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 092/139] target: Set CMD_T_ACTIVE bit for Task Management Requests Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 093/139] target: Use complete_all for se_cmd->t_transport_stop_comp Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 094/139] iscsi-target: Fix ABORT_TASK + connection reset iscsi_queue_req memory leak Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 095/139] Target/iser: Fix a wrong dereference in case discovery session is over iser Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 096/139] Target/iscsi: Fix sendtargets response pdu for iser transport Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 097/139] target: Report correct response length for some commands Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 098/139] scsi_cmnd: Introduce scsi_transfer_length helper Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 099/139] libiscsi, iser: Adjust data_length to include protection information Greg Kroah-Hartman
2014-07-02 22:15   ` Alex Williamson
2014-07-02 22:44     ` Mike Christie
2014-07-02 22:48       ` Alex Williamson
2014-07-03  6:05         ` Christoph Hellwig
2014-07-02 22:52       ` James Bottomley
2014-07-02 23:19         ` Alex Williamson
2014-07-03  0:05           ` Nicholas A. Bellinger
2014-07-03  6:05         ` Christoph Hellwig
2014-07-03 13:54           ` James Bottomley
2014-07-03 16:27             ` Greg Kroah-Hartman
2014-07-03 16:33               ` Christoph Hellwig
2014-07-03 18:00                 ` James Bottomley
2014-07-06 12:27                   ` Sagi Grimberg
2014-07-03 16:28             ` Christoph Hellwig
2014-06-28 17:47 ` [PATCH 3.15 100/139] TARGET/sbc,loopback: Adjust command data length in case pi exists on the wire Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 101/139] f2fs: submit bio at the reclaim path Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 102/139] ARM: mvebu: DT: fix OpenBlocks AX3-4 RAM size Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 103/139] arm64: uid16: fix __kernel_old_{gid,uid}_t definitions Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 104/139] arm64/dma: Removing ARCH_HAS_DMA_GET_REQUIRED_MASK macro Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 105/139] arm64: mm: remove broken &= operator from pmd_mknotpresent Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 106/139] x86-32, espfix: Remove filter for espfix32 due to race Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 107/139] x86, x32: Use compat shims for io_{setup,submit} Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 108/139] Revert "drm/radeon: use variable UVD clocks" Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 109/139] Revert "offb: Add palette hack for little endian" Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 110/139] genirq: Sanitize spurious interrupt detection of threaded irqs Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 111/139] aio: fix aio request leak when events are reaped by userspace Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 112/139] aio: fix kernel memory disclosure in io_getevents() introduced in v3.10 Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 113/139] CIFS: Fix memory leaks in SMB2_open Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 114/139] Btrfs: fix leaf corruption caused by ENOSPC while hole punching Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 115/139] Btrfs: fix double free in find_lock_delalloc_range Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 116/139] Btrfs: read inode size after acquiring the mutex when punching a hole Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 117/139] btrfs: Add ctime/mtime update for btrfs device add/remove Greg Kroah-Hartman
2014-06-28 17:47 ` [PATCH 3.15 118/139] Btrfs: output warning instead of error when loading free space cache failed Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 119/139] Btrfs: send, account for orphan directories when building path strings Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 120/139] Btrfs: make sure there are not any read requests before stopping workers Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 121/139] Btrfs: fix NULL pointer crash of deleting a seed device Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 122/139] Btrfs: mark mapping with error flag to report errors to userspace Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 123/139] Btrfs: set right total device count for seeding support Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 124/139] Btrfs: send, dont error in the presence of subvols/snapshots Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 125/139] Btrfs: send, use the right limits for xattr names and values Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 126/139] btrfs: allocate raid type kobjects dynamically Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 127/139] fs: btrfs: volumes.c: Fix for possible null pointer dereference Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 128/139] Btrfs: dont check nodes for extent items Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 129/139] Btrfs: use right type to get real comparison Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 130/139] Btrfs: fix scrub_print_warning to handle skinny metadata extents Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 131/139] btrfs: fix use of uninit "ret" in end_extent_writepage() Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 132/139] Bluetooth: Clearly distinguish mgmt LTK type from authenticated property Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 133/139] Bluetooth: Fix properly ignoring LTKs of unknown types Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 134/139] lz4: fix another possible overrun Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 136/139] epoll: fix use-after-free in eventpoll_release_file Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 137/139] random: fix nasty entropy accounting bug Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 138/139] builddeb: use $OBJCOPY variable instead of objcopy Greg Kroah-Hartman
2014-06-28 17:48 ` [PATCH 3.15 139/139] efi-pstore: Fix an overflow on 32-bit builds Greg Kroah-Hartman
2014-06-28 22:32 ` [PATCH 3.15 000/139] 3.15.3-stable review Guenter Roeck
2014-06-29  0:53   ` Satoru Takeuchi
2014-06-29  1:37     ` Greg Kroah-Hartman
2014-06-30 16:18 ` Shuah Khan

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=20140628174606.603821950@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=dave.hansen@intel.com \
    --cc=hannes@cmpxchg.org \
    --cc=hughd@google.com \
    --cc=iamjoonsoo.kim@lge.com \
    --cc=jack@suse.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mgorman@suse.de \
    --cc=mhocko@suse.cz \
    --cc=oleg@redhat.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=riel@redhat.com \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=tytso@mit.edu \
    --cc=vbabka@suse.cz \
    /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;
as well as URLs for NNTP newsgroup(s).