linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kamal Mostafa <kamal@canonical.com>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
	kernel-team@lists.ubuntu.com
Cc: Vlastimil Babka <vbabka@suse.cz>,
	Zhang Yanfei <zhangyanfei@cn.fujitsu.com>,
	David Rientjes <rientjes@google.com>,
	Rik van Riel <riel@redhat.com>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Joonsoo Kim <iamjoonsoo.kim@lge.com>,
	Michal Hocko <mhocko@suse.cz>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Kamal Mostafa <kamal@canonical.com>
Subject: [PATCH 3.13.y-ckt 089/143] mm: when stealing freepages, also take pages created by splitting buddy page
Date: Tue, 31 Mar 2015 12:47:34 -0700	[thread overview]
Message-ID: <1427831308-1854-90-git-send-email-kamal@canonical.com> (raw)
In-Reply-To: <1427831308-1854-1-git-send-email-kamal@canonical.com>

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

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

From: Vlastimil Babka <vbabka@suse.cz>

commit 99592d598eca62bdbbf62b59941c189176dfc614 upstream.

When studying page stealing, I noticed some weird looking decisions in
try_to_steal_freepages().  The first I assume is a bug (Patch 1), the
following two patches were driven by evaluation.

Testing was done with stress-highalloc of mmtests, using the
mm_page_alloc_extfrag tracepoint and postprocessing to get counts of how
often page stealing occurs for individual migratetypes, and what
migratetypes are used for fallbacks.  Arguably, the worst case of page
stealing is when UNMOVABLE allocation steals from MOVABLE pageblock.
RECLAIMABLE allocation stealing from MOVABLE allocation is also not ideal,
so the goal is to minimize these two cases.

The evaluation of v2 wasn't always clear win and Joonsoo questioned the
results.  Here I used different baseline which includes RFC compaction
improvements from [1].  I found that the compaction improvements reduce
variability of stress-highalloc, so there's less noise in the data.

First, let's look at stress-highalloc configured to do sync compaction,
and how these patches reduce page stealing events during the test.  First
column is after fresh reboot, other two are reiterations of test without
reboot.  That was all accumulater over 5 re-iterations (so the benchmark
was run 5x3 times with 5 fresh restarts).

Baseline:

                                                   3.19-rc4        3.19-rc4        3.19-rc4
                                                  5-nothp-1       5-nothp-2       5-nothp-3
Page alloc extfrag event                               10264225     8702233    10244125
Extfrag fragmenting                                    10263271     8701552    10243473
Extfrag fragmenting for unmovable                         13595       17616       15960
Extfrag fragmenting unmovable placed with movable          7989       12193        8447
Extfrag fragmenting for reclaimable                         658        1840        1817
Extfrag fragmenting reclaimable placed with movable         558        1677        1679
Extfrag fragmenting for movable                        10249018     8682096    10225696

With Patch 1:
                                                   3.19-rc4        3.19-rc4        3.19-rc4
                                                  6-nothp-1       6-nothp-2       6-nothp-3
Page alloc extfrag event                               11834954     9877523     9774860
Extfrag fragmenting                                    11833993     9876880     9774245
Extfrag fragmenting for unmovable                          7342       16129       11712
Extfrag fragmenting unmovable placed with movable          4191       10547        6270
Extfrag fragmenting for reclaimable                         373        1130         923
Extfrag fragmenting reclaimable placed with movable         302         906         738
Extfrag fragmenting for movable                        11826278     9859621     9761610

With Patch 2:
                                                   3.19-rc4        3.19-rc4        3.19-rc4
                                                  7-nothp-1       7-nothp-2       7-nothp-3
Page alloc extfrag event                                4725990     3668793     3807436
Extfrag fragmenting                                     4725104     3668252     3806898
Extfrag fragmenting for unmovable                          6678        7974        7281
Extfrag fragmenting unmovable placed with movable          2051        3829        4017
Extfrag fragmenting for reclaimable                         429        1208        1278
Extfrag fragmenting reclaimable placed with movable         369         976        1034
Extfrag fragmenting for movable                         4717997     3659070     3798339

With Patch 3:
                                                   3.19-rc4        3.19-rc4        3.19-rc4
                                                  8-nothp-1       8-nothp-2       8-nothp-3
Page alloc extfrag event                                5016183     4700142     3850633
Extfrag fragmenting                                     5015325     4699613     3850072
Extfrag fragmenting for unmovable                          1312        3154        3088
Extfrag fragmenting unmovable placed with movable          1115        2777        2714
Extfrag fragmenting for reclaimable                         437        1193        1097
Extfrag fragmenting reclaimable placed with movable         330         969         879
Extfrag fragmenting for movable                         5013576     4695266     3845887

In v2 we've seen apparent regression with Patch 1 for unmovable events,
this is now gone, suggesting it was indeed noise.  Here, each patch
improves the situation for unmovable events.  Reclaimable is improved by
patch 1 and then either the same modulo noise, or perhaps sligtly worse -
a small price for unmovable improvements, IMHO.  The number of movable
allocations falling back to other migratetypes is most noisy, but it's
reduced to half at Patch 2 nevertheless.  These are least critical as
compaction can move them around.

If we look at success rates, the patches don't affect them, that didn't change.

Baseline:
                             3.19-rc4              3.19-rc4              3.19-rc4
                            5-nothp-1             5-nothp-2             5-nothp-3
Success 1 Min         49.00 (  0.00%)       42.00 ( 14.29%)       41.00 ( 16.33%)
Success 1 Mean        51.00 (  0.00%)       45.00 ( 11.76%)       42.60 ( 16.47%)
Success 1 Max         55.00 (  0.00%)       51.00 (  7.27%)       46.00 ( 16.36%)
Success 2 Min         53.00 (  0.00%)       47.00 ( 11.32%)       44.00 ( 16.98%)
Success 2 Mean        59.60 (  0.00%)       50.80 ( 14.77%)       48.20 ( 19.13%)
Success 2 Max         64.00 (  0.00%)       56.00 ( 12.50%)       52.00 ( 18.75%)
Success 3 Min         84.00 (  0.00%)       82.00 (  2.38%)       78.00 (  7.14%)
Success 3 Mean        85.60 (  0.00%)       82.80 (  3.27%)       79.40 (  7.24%)
Success 3 Max         86.00 (  0.00%)       83.00 (  3.49%)       80.00 (  6.98%)

Patch 1:
                             3.19-rc4              3.19-rc4              3.19-rc4
                            6-nothp-1             6-nothp-2             6-nothp-3
Success 1 Min         49.00 (  0.00%)       44.00 ( 10.20%)       44.00 ( 10.20%)
Success 1 Mean        51.80 (  0.00%)       46.00 ( 11.20%)       45.80 ( 11.58%)
Success 1 Max         54.00 (  0.00%)       49.00 (  9.26%)       49.00 (  9.26%)
Success 2 Min         58.00 (  0.00%)       49.00 ( 15.52%)       48.00 ( 17.24%)
Success 2 Mean        60.40 (  0.00%)       51.80 ( 14.24%)       50.80 ( 15.89%)
Success 2 Max         63.00 (  0.00%)       54.00 ( 14.29%)       55.00 ( 12.70%)
Success 3 Min         84.00 (  0.00%)       81.00 (  3.57%)       79.00 (  5.95%)
Success 3 Mean        85.00 (  0.00%)       81.60 (  4.00%)       79.80 (  6.12%)
Success 3 Max         86.00 (  0.00%)       82.00 (  4.65%)       82.00 (  4.65%)

Patch 2:

                             3.19-rc4              3.19-rc4              3.19-rc4
                            7-nothp-1             7-nothp-2             7-nothp-3
Success 1 Min         50.00 (  0.00%)       44.00 ( 12.00%)       39.00 ( 22.00%)
Success 1 Mean        52.80 (  0.00%)       45.60 ( 13.64%)       42.40 ( 19.70%)
Success 1 Max         55.00 (  0.00%)       46.00 ( 16.36%)       47.00 ( 14.55%)
Success 2 Min         52.00 (  0.00%)       48.00 (  7.69%)       45.00 ( 13.46%)
Success 2 Mean        53.40 (  0.00%)       49.80 (  6.74%)       48.80 (  8.61%)
Success 2 Max         57.00 (  0.00%)       52.00 (  8.77%)       52.00 (  8.77%)
Success 3 Min         84.00 (  0.00%)       81.00 (  3.57%)       79.00 (  5.95%)
Success 3 Mean        85.00 (  0.00%)       82.40 (  3.06%)       79.60 (  6.35%)
Success 3 Max         86.00 (  0.00%)       83.00 (  3.49%)       80.00 (  6.98%)

Patch 3:
                             3.19-rc4              3.19-rc4              3.19-rc4
                            8-nothp-1             8-nothp-2             8-nothp-3
Success 1 Min         46.00 (  0.00%)       44.00 (  4.35%)       42.00 (  8.70%)
Success 1 Mean        50.20 (  0.00%)       45.60 (  9.16%)       44.00 ( 12.35%)
Success 1 Max         52.00 (  0.00%)       47.00 (  9.62%)       47.00 (  9.62%)
Success 2 Min         53.00 (  0.00%)       49.00 (  7.55%)       48.00 (  9.43%)
Success 2 Mean        55.80 (  0.00%)       50.60 (  9.32%)       49.00 ( 12.19%)
Success 2 Max         59.00 (  0.00%)       52.00 ( 11.86%)       51.00 ( 13.56%)
Success 3 Min         84.00 (  0.00%)       80.00 (  4.76%)       79.00 (  5.95%)
Success 3 Mean        85.40 (  0.00%)       81.60 (  4.45%)       80.40 (  5.85%)
Success 3 Max         87.00 (  0.00%)       83.00 (  4.60%)       82.00 (  5.75%)

While there's no improvement here, I consider reduced fragmentation events
to be worth on its own.  Patch 2 also seems to reduce scanning for free
pages, and migrations in compaction, suggesting it has somewhat less work
to do:

Patch 1:

Compaction stalls                 4153        3959        3978
Compaction success                1523        1441        1446
Compaction failures               2630        2517        2531
Page migrate success           4600827     4943120     5104348
Page migrate failure             19763       16656       17806
Compaction pages isolated      9597640    10305617    10653541
Compaction migrate scanned    77828948    86533283    87137064
Compaction free scanned      517758295   521312840   521462251
Compaction cost                   5503        5932        6110

Patch 2:

Compaction stalls                 3800        3450        3518
Compaction success                1421        1316        1317
Compaction failures               2379        2134        2201
Page migrate success           4160421     4502708     4752148
Page migrate failure             19705       14340       14911
Compaction pages isolated      8731983     9382374     9910043
Compaction migrate scanned    98362797    96349194    98609686
Compaction free scanned      496512560   469502017   480442545
Compaction cost                   5173        5526        5811

As with v2, /proc/pagetypeinfo appears unaffected with respect to numbers
of unmovable and reclaimable pageblocks.

Configuring the benchmark to allocate like THP page fault (i.e.  no sync
compaction) gives much noisier results for iterations 2 and 3 after
reboot.  This is not so surprising given how [1] offers lower improvements
in this scenario due to less restarts after deferred compaction which
would change compaction pivot.

Baseline:
                                                   3.19-rc4        3.19-rc4        3.19-rc4
                                                    5-thp-1         5-thp-2         5-thp-3
Page alloc extfrag event                                8148965     6227815     6646741
Extfrag fragmenting                                     8147872     6227130     6646117
Extfrag fragmenting for unmovable                         10324       12942       15975
Extfrag fragmenting unmovable placed with movable          5972        8495       10907
Extfrag fragmenting for reclaimable                         601        1707        2210
Extfrag fragmenting reclaimable placed with movable         520        1570        2000
Extfrag fragmenting for movable                         8136947     6212481     6627932

Patch 1:
                                                   3.19-rc4        3.19-rc4        3.19-rc4
                                                    6-thp-1         6-thp-2         6-thp-3
Page alloc extfrag event                                8345457     7574471     7020419
Extfrag fragmenting                                     8343546     7573777     7019718
Extfrag fragmenting for unmovable                         10256       18535       30716
Extfrag fragmenting unmovable placed with movable          6893       11726       22181
Extfrag fragmenting for reclaimable                         465        1208        1023
Extfrag fragmenting reclaimable placed with movable         353         996         843
Extfrag fragmenting for movable                         8332825     7554034     6987979

Patch 2:
                                                   3.19-rc4        3.19-rc4        3.19-rc4
                                                    7-thp-1         7-thp-2         7-thp-3
Page alloc extfrag event                                3512847     3020756     2891625
Extfrag fragmenting                                     3511940     3020185     2891059
Extfrag fragmenting for unmovable                          9017        6892        6191
Extfrag fragmenting unmovable placed with movable          1524        3053        2435
Extfrag fragmenting for reclaimable                         445        1081        1160
Extfrag fragmenting reclaimable placed with movable         375         918         986
Extfrag fragmenting for movable                         3502478     3012212     2883708

Patch 3:
                                                   3.19-rc4        3.19-rc4        3.19-rc4
                                                    8-thp-1         8-thp-2         8-thp-3
Page alloc extfrag event                                3181699     3082881     2674164
Extfrag fragmenting                                     3180812     3082303     2673611
Extfrag fragmenting for unmovable                          1201        4031        4040
Extfrag fragmenting unmovable placed with movable           974        3611        3645
Extfrag fragmenting for reclaimable                         478        1165        1294
Extfrag fragmenting reclaimable placed with movable         387         985        1030
Extfrag fragmenting for movable                         3179133     3077107     2668277

The improvements for first iteration are clear, the rest is much noisier
and can appear like regression for Patch 1.  Anyway, patch 2 rectifies it.

Allocation success rates are again unaffected so there's no point in
making this e-mail any longer.

[1] http://marc.info/?l=linux-mm&m=142166196321125&w=2

This patch (of 3):

When __rmqueue_fallback() is called to allocate a page of order X, it will
find a page of order Y >= X of a fallback migratetype, which is different
from the desired migratetype.  With the help of try_to_steal_freepages(),
it may change the migratetype (to the desired one) also of:

1) all currently free pages in the pageblock containing the fallback page
2) the fallback pageblock itself
3) buddy pages created by splitting the fallback page (when Y > X)

These decisions take the order Y into account, as well as the desired
migratetype, with the goal of preventing multiple fallback allocations
that could e.g.  distribute UNMOVABLE allocations among multiple
pageblocks.

Originally, decision for 1) has implied the decision for 3).  Commit
47118af076f6 ("mm: mmzone: MIGRATE_CMA migration type added") changed that
(probably unintentionally) so that the buddy pages in case 3) are always
changed to the desired migratetype, except for CMA pageblocks.

Commit fef903efcf0c ("mm/page_allo.c: restructure free-page stealing code
and fix a bug") did some refactoring and added a comment that the case of
3) is intended.  Commit 0cbef29a7821 ("mm: __rmqueue_fallback() should
respect pageblock type") removed the comment and tried to restore the
original behavior where 1) implies 3), but due to the previous
refactoring, the result is instead that only 2) implies 3) - and the
conditions for 2) are less frequently met than conditions for 1).  This
may increase fragmentation in situations where the code decides to steal
all free pages from the pageblock (case 1)), but then gives back the buddy
pages produced by splitting.

This patch restores the original intended logic where 1) implies 3).
During testing with stress-highalloc from mmtests, this has shown to
decrease the number of events where UNMOVABLE and RECLAIMABLE allocations
steal from MOVABLE pageblocks, which can lead to permanent fragmentation.
In some cases it has increased the number of events when MOVABLE
allocations steal from UNMOVABLE or RECLAIMABLE pageblocks, but these are
fixable by sync compaction and thus less harmful.

Note that evaluation has shown that the behavior introduced by
47118af076f6 for buddy pages in case 3) is actually even better than the
original logic, so the following patch will introduce it properly once
again.  For stable backports of this patch it makes thus sense to only fix
versions containing 0cbef29a7821.

[iamjoonsoo.kim@lge.com: tracepoint fix]
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Mel Gorman <mgorman@suse.de>
Cc: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Signed-off-by: Kamal Mostafa <kamal@canonical.com>
---
 include/trace/events/kmem.h |  7 ++++---
 mm/page_alloc.c             | 12 +++++-------
 2 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/include/trace/events/kmem.h b/include/trace/events/kmem.h
index aece134..4ad10ba 100644
--- a/include/trace/events/kmem.h
+++ b/include/trace/events/kmem.h
@@ -268,11 +268,11 @@ TRACE_EVENT(mm_page_alloc_extfrag,
 
 	TP_PROTO(struct page *page,
 		int alloc_order, int fallback_order,
-		int alloc_migratetype, int fallback_migratetype, int new_migratetype),
+		int alloc_migratetype, int fallback_migratetype),
 
 	TP_ARGS(page,
 		alloc_order, fallback_order,
-		alloc_migratetype, fallback_migratetype, new_migratetype),
+		alloc_migratetype, fallback_migratetype),
 
 	TP_STRUCT__entry(
 		__field(	struct page *,	page			)
@@ -289,7 +289,8 @@ TRACE_EVENT(mm_page_alloc_extfrag,
 		__entry->fallback_order		= fallback_order;
 		__entry->alloc_migratetype	= alloc_migratetype;
 		__entry->fallback_migratetype	= fallback_migratetype;
-		__entry->change_ownership	= (new_migratetype == alloc_migratetype);
+		__entry->change_ownership	= (alloc_migratetype ==
+					get_pageblock_migratetype(page));
 	),
 
 	TP_printk("page=%p pfn=%lu alloc_order=%d fallback_order=%d pageblock_order=%d alloc_migratetype=%d fallback_migratetype=%d fragmenting=%d change_ownership=%d",
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 83a20df..b764a6a 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1034,8 +1034,8 @@ static void change_pageblock_range(struct page *pageblock_page,
  * nor move CMA pages to different free lists. We don't want unmovable pages
  * to be allocated from MIGRATE_CMA areas.
  *
- * Returns the new migratetype of the pageblock (or the same old migratetype
- * if it was unchanged).
+ * Returns the allocation migratetype if free pages were stolen, or the
+ * fallback migratetype if it was decided not to steal.
  */
 static int try_to_steal_freepages(struct zone *zone, struct page *page,
 				  int start_type, int fallback_type)
@@ -1064,12 +1064,10 @@ static int try_to_steal_freepages(struct zone *zone, struct page *page,
 
 		/* Claim the whole block if over half of it is free */
 		if (pages >= (1 << (pageblock_order-1)) ||
-				page_group_by_mobility_disabled) {
-
+				page_group_by_mobility_disabled)
 			set_pageblock_migratetype(page, start_type);
-			return start_type;
-		}
 
+		return start_type;
 	}
 
 	return fallback_type;
@@ -1114,7 +1112,7 @@ __rmqueue_fallback(struct zone *zone, int order, int start_migratetype)
 			       new_type);
 
 			trace_mm_page_alloc_extfrag(page, order, current_order,
-				start_migratetype, migratetype, new_type);
+				start_migratetype, migratetype);
 
 			return page;
 		}
-- 
1.9.1


  parent reply	other threads:[~2015-03-31 20:01 UTC|newest]

Thread overview: 146+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-31 19:46 [3.13.y-ckt stable] Linux 3.13.11-ckt18 stable review Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 001/143] quota: Store maximum space limit in bytes Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 002/143] ip: zero sockaddr returned on error queue Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 003/143] net: rps: fix cpu unplug Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 004/143] ipv6: stop sending PTB packets for MTU < 1280 Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 005/143] netxen: fix netxen_nic_poll() logic Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 006/143] udp_diag: Fix socket skipping within chain Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 007/143] ping: Fix race in free in receive path Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 008/143] bnx2x: fix napi poll return value for repoll Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 009/143] net: don't OOPS on socket aio Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 010/143] bridge: dont send notification when skb->len == 0 in rtnl_bridge_notify Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 011/143] ipv4: tcp: get rid of ugly unicast_sock Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 012/143] ppp: deflate: never return len larger than output buffer Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 013/143] net: sctp: fix passing wrong parameter header to param_type2af in sctp_process_param Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 014/143] ARM: pxa: add regulator_has_full_constraints to corgi board file Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 015/143] ARM: pxa: add regulator_has_full_constraints to poodle " Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 016/143] ARM: pxa: add regulator_has_full_constraints to spitz " Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 017/143] hx4700: regulator: declare full constraints Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 018/143] HID: input: fix confusion on conflicting mappings Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 019/143] HID: fixup the conflicting keyboard mappings quirk Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 020/143] megaraid_sas: disable interrupt_mask before enabling hardware interrupts Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 021/143] PCI: Generate uppercase hex for modalias var in uevent Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 022/143] usb: core: buffer: smallest buffer should start at ARCH_DMA_MINALIGN Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 023/143] tty/serial: at91: enable peripheral clock before accessing I/O registers Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 024/143] tty/serial: at91: fix error handling in atmel_serial_probe() Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 025/143] axonram: Fix bug in direct_access Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 026/143] ksoftirqd: Enable IRQs and call cond_resched() before poking RCU Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 027/143] TPM: Add new TPMs to the tail of the list to prevent inadvertent change of dev Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 028/143] char: tpm: Add missing error check for devm_kzalloc Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 029/143] tpm_tis: verify interrupt during init Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 030/143] tpm: Fix NULL return in tpm_ibmvtpm_get_desired_dma Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 031/143] tpm/tpm_i2c_stm_st33: Fix potential bug in tpm_stm_i2c_send Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 032/143] tpm/tpm_i2c_stm_st33: Add status check when reading data on the FIFO Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 033/143] mmc: sdhci-pxav3: fix unbalanced clock issues during probe Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 034/143] iwlwifi: mvm: validate tid and sta_id in ba_notif Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 035/143] power: bq24190: Fix ignored supplicants Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 036/143] ARM: DRA7: hwmod: Fix boot crash with DEBUG_LL enabled on UART3 Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 037/143] Bluetooth: ath3k: Add support of AR3012 bluetooth 13d3:3423 device Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 038/143] cfq-iosched: fix incorrect filing of rt async cfqq Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 039/143] smack: fix possible use after frees in task_security() callers Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 040/143] xfs: ensure buffer types are set correctly Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 041/143] xfs: inode unlink does not set AGI buffer type Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 042/143] xfs: set buf types when converting extent formats Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 043/143] xfs: set superblock buffer type correctly Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 044/143] btrfs: set proper message level for skinny metadata Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 045/143] KVM: s390: base hrtimer on a monotonic clock Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 046/143] PCI: Fix infinite loop with ROM image of size 0 Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 047/143] USB: cp210x: add ID for RUGGEDCOM USB Serial Console Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 048/143] clk: zynq: Force CPU_2X clock to be ungated Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 049/143] mmc: sdhci-pxav3: Remove checks for mandatory host clock Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 050/143] mmc: sdhci-pxav3: fix race between runtime pm and irq Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 051/143] power_supply: 88pm860x: Fix leaked power supply on probe fail Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 052/143] staging: comedi: comedi_compat32.c: fix COMEDI_CMD copy back Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 053/143] mmc: sdhci-pxav3: fix setting of pdata->clk_delay_cycles Kamal Mostafa
2015-03-31 19:46 ` [PATCH 3.13.y-ckt 054/143] ARM: 8284/1: sa1100: clear RCSR_SMR on resume Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 055/143] usb: musb: omap2plus bus glue needs USB host support Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 056/143] usb: musb: add omap-control dependency Kamal Mostafa
2015-04-01  9:37   ` Luis Henriques
2015-04-02 17:39     ` Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 057/143] cdc-acm: add sanity checks Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 058/143] USB: add flag for HCDs that can't receive wakeup requests (isp1760-hcd) Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 059/143] USB: fix use-after-free bug in usb_hcd_unlink_urb() Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 060/143] iwlwifi: mvm: always use mac color zero Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 061/143] iwlwifi: pcie: disable the SCD_BASE_ADDR when we resume from WoWLAN Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 062/143] vt: provide notifications on selection changes Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 063/143] tty: Prevent untrappable signals from malicious program Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 064/143] cpufreq: Set cpufreq_cpu_data to NULL before putting kobject Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 065/143] [media] lmedm04: Fix usb_submit_urb BOGUS urb xfer, pipe 1 != type 3 in interrupt urb Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 066/143] mei: mask interrupt set bit on clean reset bit Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 067/143] mei: me: release hw from reset only during the reset flow Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 068/143] MIPS: KVM: Deliver guest interrupts after local_irq_disable() Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 069/143] KVM: MIPS: Don't leak FPU/DSP to guest Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 070/143] ALSA: hda - Add the pin fixup for HP Envy TS bass speaker Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 071/143] ALSA: hda - Set up GPIO for Toshiba Satellite S50D Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 072/143] xen/manage: Fix USB interaction issues when resuming Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 073/143] drm/i915: Correct the IOSF Dev_FN field for IOSF transfers Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 074/143] cfq-iosched: handle failure of cfq group allocation Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 075/143] tracing: Fix unmapping loop in tracing_mark_write Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 076/143] fsnotify: fix handling of renames in audit Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 077/143] drm/radeon: workaround for CP HW bug on CIK Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 078/143] drm/radeon: only enable kv/kb dpm interrupts once v3 Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 079/143] NFSv4.1: Fix a kfree() of uninitialised pointers in decode_cb_sequence_args Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 080/143] cpufreq: speedstep-smi: enable interrupts when waiting Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 081/143] mm/hugetlb: pmd_huge() returns true for non-present hugepage Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 082/143] mm: cleanup follow_page_mask() Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 083/143] mm/hugetlb: take page table lock in follow_huge_pmd() Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 084/143] mm/hugetlb: fix getting refcount 0 page in hugetlb_fault() Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 085/143] mm/hugetlb: add migration/hwpoisoned entry check in hugetlb_change_protection Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 086/143] mm/hugetlb: add migration entry check in __unmap_hugepage_range Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 087/143] mm: softdirty: unmapped addresses between VMAs are clean Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 088/143] proc/pagemap: walk page tables under pte lock Kamal Mostafa
2015-03-31 19:47 ` Kamal Mostafa [this message]
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 090/143] mm/mmap.c: fix arithmetic overflow in __vm_enough_memory() Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 091/143] mm/nommu.c: " Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 092/143] iscsi-target: Drop problematic active_ts_list usage Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 093/143] target: Fix PR_APTPL_BUF_LEN buffer size limitation Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 094/143] mm/compaction: fix wrong order check in compact_finished() Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 095/143] mm/memory.c: actually remap enough memory Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 096/143] mm: hwpoison: drop lru_add_drain_all() in __soft_offline_page() Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 097/143] ALSA: hda - enable mute led quirk for one more hp machine Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 098/143] ARC: fix page address calculation if PAGE_OFFSET != LINUX_LINK_BASE Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 099/143] drm/radeon/dp: Set EDP_CONFIGURATION_SET for bridge chips if necessary Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 100/143] drm/radeon: fix voltage setup on hawaii Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 101/143] ALSA: hdspm - Constrain periods to 2 on older cards Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 102/143] jffs2: fix handling of corrupted summary length Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 103/143] dm mirror: do not degrade the mirror on discard error Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 104/143] dm io: reject unsupported DISCARD requests with EOPNOTSUPP Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 105/143] target: Add missing WRITE_SAME end-of-device sanity check Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 106/143] target: Check for LBA + sectors wrap-around in sbc_parse_cdb Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 107/143] Btrfs: fix fsync data loss after adding hard link to inode Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 108/143] Added Little Endian support to vtpm module Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 109/143] fixed invalid assignment of 64bit mask to host dma_boundary for scatter gather segment boundary limit Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 110/143] sg: fix read() error reporting Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 111/143] IB/qib: Do not write EEPROM Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 112/143] md/raid5: Fix livelock when array is both resyncing and degraded Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 113/143] dm: fix a race condition in dm_get_md Kamal Mostafa
2015-03-31 19:47 ` [PATCH 3.13.y-ckt 114/143] dm snapshot: fix a possible invalid memory access on unload Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 115/143] cpufreq: s3c: remove incorrect __init annotations Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 116/143] libceph: assert both regular and lingering lists in __remove_osd() Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 117/143] libceph: change from BUG to WARN for __remove_osd() asserts Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 118/143] libceph: fix double __remove_osd() problem Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 119/143] MIPS: Export FP functions used by lose_fpu(1) for KVM Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 120/143] kdb: fix incorrect counts in KDB summary command output Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 121/143] blk-throttle: check stats_cpu before reading it from sysfs Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 122/143] procfs: fix race between symlink removals and traversals Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 123/143] autofs4 copy_dev_ioctl(): keep the value of ->size we'd used for allocation Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 124/143] pktgen: fix UDP checksum computation Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 125/143] ipv6: fix ipv6_cow_metrics for non DST_HOST case Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 126/143] clk-gate: fix bit # check in clk_register_gate() Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 127/143] ALSA: off by one bug in snd_riptide_joystick_probe() Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 128/143] ath5k: fix spontaneus AR5312 freezes Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 129/143] pinctrl: pinctrl-imx: don't use invalid value of conf_reg Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 130/143] ALSA: hda - Add one more node in the EAPD supporting candidate list Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 131/143] ALSA: hda - Add pin configs for ASUS mobo with IDT 92HD73XX codec Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 132/143] drm/i915/bdw: PCI IDs ending in 0xb are ULT Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 133/143] xfs: Fix quota type in quota structures when reusing quota file Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 134/143] gpiolib: of: allow of_gpiochip_find_and_xlate to find more than one chip per node Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 135/143] gpio: tps65912: fix wrong container_of arguments Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 136/143] ALSA: pcm: Don't leave PREPARED state after draining Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 137/143] metag: Fix KSTK_EIP() and KSTK_ESP() macros Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 138/143] md/raid1: fix read balance when a drive is write-mostly Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 139/143] drm/radeon: use drm_mode_vrefresh() rather than mode->vrefresh Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 140/143] drm/radeon: fix 1 RB harvest config setup for TN/RL Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 141/143] arm64: compat Fix siginfo_t -> compat_siginfo_t conversion on big endian Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 142/143] nilfs2: fix potential memory overrun on inode Kamal Mostafa
2015-03-31 19:48 ` [PATCH 3.13.y-ckt 143/143] HID: i2c-hid: Limit reads to wMaxInputLength bytes for input events Kamal Mostafa

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=1427831308-1854-90-git-send-email-kamal@canonical.com \
    --to=kamal@canonical.com \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=hannes@cmpxchg.org \
    --cc=iamjoonsoo.kim@lge.com \
    --cc=kernel-team@lists.ubuntu.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mhocko@suse.cz \
    --cc=riel@redhat.com \
    --cc=rientjes@google.com \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=vbabka@suse.cz \
    --cc=zhangyanfei@cn.fujitsu.com \
    /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).