From: Minchan Kim <minchan@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
linux-mm <linux-mm@kvack.org>, "H. Peter Anvin" <hpa@zytor.com>,
Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Mel Gorman <mgorman@suse.de>, Rik van Riel <riel@redhat.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Hugh Dickins <hughd@google.com>,
Rusty Russell <rusty@rustcorp.com.au>,
"Michael S. Tsirkin" <mst@redhat.com>,
Dave Hansen <dave.hansen@intel.com>,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [RFC 2/2] x86_64: expand kernel stack to 16K
Date: Thu, 29 May 2014 14:10:42 +0900 [thread overview]
Message-ID: <20140529051042.GF10092@bbox> (raw)
In-Reply-To: <CA+55aFyoT1xuM-HsZ4GKt=FfDYs76oD7U-RBkZn-2PErj6ZZVw@mail.gmail.com>
On Wed, May 28, 2014 at 09:13:15PM -0700, Linus Torvalds wrote:
> On Wed, May 28, 2014 at 8:46 PM, Minchan Kim <minchan@kernel.org> wrote:
> >
> > Yes. For example, with mark __alloc_pages_slowpath noinline_for_stack,
> > we can reduce 176byte.
>
> Well, but it will then call that __alloc_pages_slowpath() function,
> which has a 176-byte stack frame.. Plus the call frame.
>
> Now, that only triggers for when the initial "__GFP_HARDWALL" case
> fails, but that's exactly what happens when we do need to do direct
> reclaim.
>
> That said, I *have* seen cases where the gcc spill code got really
> confused, and simplifying the function (by not inlining excessively)
> actually causes a truly smaller stack overall, despite the actual call
> frames etc. But I think the gcc people fixed the kinds of things that
> caused *that* kind of stack slot explosion.
>
> And avoiding inlining can end up resulting in less stack, if the
> really deep parts don't happen to go through that function that got
> inlined (ie any call chain that wouldn't have gone through that
> "slowpath" function at all).
>
> But in this case, __alloc_pages_slowpath() is where we end up doing
> the actual direct reclaim anyway, so just uninlining doesn't actually
> help. Although it would probably make the asm code more readable ;)
Indeed. :(
Actually I found there are other places to opitmize out.
For example, we can unline try_preserve_large_page for __change_page_attr_set_clr.
Although I'm not familiar with that part, I guess large page would be rare
so we could save 112-byte.
before:
ffffffff81042330 <__change_page_attr_set_clr>:
ffffffff81042330: e8 4b da 6a 00 callq ffffffff816efd80 <__entry_text_start>
ffffffff81042335: 55 push %rbp
ffffffff81042336: 48 89 e5 mov %rsp,%rbp
ffffffff81042339: 41 57 push %r15
ffffffff8104233b: 41 56 push %r14
ffffffff8104233d: 41 55 push %r13
ffffffff8104233f: 41 54 push %r12
ffffffff81042341: 49 89 fc mov %rdi,%r12
ffffffff81042344: 53 push %rbx
ffffffff81042345: 48 81 ec f8 00 00 00 sub $0xf8,%rsp
ffffffff8104234c: 8b 47 20 mov 0x20(%rdi),%eax
ffffffff8104234f: 89 b5 50 ff ff ff mov %esi,-0xb0(%rbp)
ffffffff81042355: 85 c0 test %eax,%eax
ffffffff81042357: 89 85 5c ff ff ff mov %eax,-0xa4(%rbp)
ffffffff8104235d: 0f 84 8c 06 00 00 je ffffffff810429ef <__change_page_attr_set_clr+0x6bf>
after:
ffffffff81042740 <__change_page_attr_set_clr>:
ffffffff81042740: e8 bb d5 6a 00 callq ffffffff816efd00 <__entry_text_start>
ffffffff81042745: 55 push %rbp
ffffffff81042746: 48 89 e5 mov %rsp,%rbp
ffffffff81042749: 41 57 push %r15
ffffffff8104274b: 41 56 push %r14
ffffffff8104274d: 41 55 push %r13
ffffffff8104274f: 49 89 fd mov %rdi,%r13
ffffffff81042752: 41 54 push %r12
ffffffff81042754: 53 push %rbx
ffffffff81042755: 48 81 ec 88 00 00 00 sub $0x88,%rsp
ffffffff8104275c: 8b 47 20 mov 0x20(%rdi),%eax
ffffffff8104275f: 89 b5 70 ff ff ff mov %esi,-0x90(%rbp)
ffffffff81042765: 85 c0 test %eax,%eax
ffffffff81042767: 89 85 74 ff ff ff mov %eax,-0x8c(%rbp)
ffffffff8104276d: 0f 84 cb 02 00 00 je ffffffff81042a3e <__change_page_attr_set_clr+0x2fe>
And below patch saves 96-byte from shrink_lruvec.
That would be not all and I am not saying optimization of every functions of VM
is way to go but just want to notice we have rooms to optimize it out.
I will wait more discussions and happy to test it(I can reproduce it in 1~2 hour
if I have a luck)
Thanks!
ffffffff8115b560 <shrink_lruvec>:
ffffffff8115b560: e8 db 46 59 00 callq ffffffff816efc40 <__entry_text_start>
ffffffff8115b565: 55 push %rbp
ffffffff8115b566: 65 48 8b 04 25 40 ba mov %gs:0xba40,%rax
ffffffff8115b56d: 00 00
ffffffff8115b56f: 48 89 e5 mov %rsp,%rbp
ffffffff8115b572: 41 57 push %r15
ffffffff8115b574: 41 56 push %r14
ffffffff8115b576: 45 31 f6 xor %r14d,%r14d
ffffffff8115b579: 41 55 push %r13
ffffffff8115b57b: 49 89 fd mov %rdi,%r13
ffffffff8115b57e: 41 54 push %r12
ffffffff8115b580: 49 89 f4 mov %rsi,%r12
ffffffff8115b583: 49 83 c4 34 add $0x34,%r12
ffffffff8115b587: 53 push %rbx
ffffffff8115b588: 48 8d 9f c8 fa ff ff lea -0x538(%rdi),%rbx
ffffffff8115b58f: 48 81 ec f8 00 00 00 sub $0xf8,%rsp
ffffffff8115b596: f6 40 16 04 testb $0x4,0x16(%rax)
after
ffffffff8115b870 <shrink_lruvec>:
ffffffff8115b870: e8 8b 43 59 00 callq ffffffff816efc00 <__entry_text_start>
ffffffff8115b875: 55 push %rbp
ffffffff8115b876: 48 8d 56 34 lea 0x34(%rsi),%rdx
ffffffff8115b87a: 48 89 e5 mov %rsp,%rbp
ffffffff8115b87d: 41 57 push %r15
ffffffff8115b87f: 41 bf 20 00 00 00 mov $0x20,%r15d
ffffffff8115b885: 48 8d 4d 90 lea -0x70(%rbp),%rcx
ffffffff8115b889: 41 56 push %r14
ffffffff8115b88b: 49 89 f6 mov %rsi,%r14
ffffffff8115b88e: 48 8d 76 2c lea 0x2c(%rsi),%rsi
ffffffff8115b892: 41 55 push %r13
ffffffff8115b894: 49 89 fd mov %rdi,%r13
ffffffff8115b897: 41 54 push %r12
ffffffff8115b899: 45 31 e4 xor %r12d,%r12d
ffffffff8115b89c: 53 push %rbx
ffffffff8115b89d: 48 81 ec 98 00 00 00 sub $0x98,%rsp
ffffffff8115b8a4: e8 47 df ff ff callq ffffffff811597f0 <get_scan_count.isra.60>
ffffffff8115b8a9: 48 8b 45 90 mov -0x70(%rbp),%rax
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 9b61b9bf81ac..574f9ce838b3 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -165,12 +165,14 @@ enum lru_list {
LRU_INACTIVE_FILE = LRU_BASE + LRU_FILE,
LRU_ACTIVE_FILE = LRU_BASE + LRU_FILE + LRU_ACTIVE,
LRU_UNEVICTABLE,
+ NR_EVICTABLE_LRU_LISTS = LRU_UNEVICTABLE,
NR_LRU_LISTS
};
#define for_each_lru(lru) for (lru = 0; lru < NR_LRU_LISTS; lru++)
-#define for_each_evictable_lru(lru) for (lru = 0; lru <= LRU_ACTIVE_FILE; lru++)
+#define for_each_evictable_lru(lru) for (lru = 0; \
+ lru < NR_EVICTABLE_LRU_LISTS; lru++)
static inline int is_file_lru(enum lru_list lru)
{
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 65cb7758dd09..bb330d1b76ae 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1839,8 +1839,8 @@ enum scan_balance {
* nr[0] = anon inactive pages to scan; nr[1] = anon active pages to scan
* nr[2] = file inactive pages to scan; nr[3] = file active pages to scan
*/
-static void get_scan_count(struct lruvec *lruvec, struct scan_control *sc,
- unsigned long *nr)
+static noinline_for_stack void get_scan_count(struct lruvec *lruvec,
+ struct scan_control *sc, unsigned long *nr)
{
struct zone_reclaim_stat *reclaim_stat = &lruvec->reclaim_stat;
u64 fraction[2];
@@ -2012,12 +2012,11 @@ out:
*/
static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
{
- unsigned long nr[NR_LRU_LISTS];
- unsigned long targets[NR_LRU_LISTS];
+ unsigned long nr[NR_EVICTABLE_LRU_LISTS];
+ unsigned long targets[NR_EVICTABLE_LRU_LISTS];
unsigned long nr_to_scan;
enum lru_list lru;
unsigned long nr_reclaimed = 0;
- unsigned long nr_to_reclaim = sc->nr_to_reclaim;
struct blk_plug plug;
bool scan_adjusted = false;
@@ -2042,7 +2041,7 @@ static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
}
}
- if (nr_reclaimed < nr_to_reclaim || scan_adjusted)
+ if (nr_reclaimed < sc->nr_to_reclaim || scan_adjusted)
continue;
/*
--
Kind regards,
Minchan Kim
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Minchan Kim <minchan@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
linux-mm <linux-mm@kvack.org>, "H. Peter Anvin" <hpa@zytor.com>,
Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Mel Gorman <mgorman@suse.de>, Rik van Riel <riel@redhat.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Hugh Dickins <hughd@google.com>,
Rusty Russell <rusty@rustcorp.com.au>,
"Michael S. Tsirkin" <mst@redhat.com>,
Dave Hansen <dave.hansen@intel.com>,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [RFC 2/2] x86_64: expand kernel stack to 16K
Date: Thu, 29 May 2014 14:10:42 +0900 [thread overview]
Message-ID: <20140529051042.GF10092@bbox> (raw)
In-Reply-To: <CA+55aFyoT1xuM-HsZ4GKt=FfDYs76oD7U-RBkZn-2PErj6ZZVw@mail.gmail.com>
On Wed, May 28, 2014 at 09:13:15PM -0700, Linus Torvalds wrote:
> On Wed, May 28, 2014 at 8:46 PM, Minchan Kim <minchan@kernel.org> wrote:
> >
> > Yes. For example, with mark __alloc_pages_slowpath noinline_for_stack,
> > we can reduce 176byte.
>
> Well, but it will then call that __alloc_pages_slowpath() function,
> which has a 176-byte stack frame.. Plus the call frame.
>
> Now, that only triggers for when the initial "__GFP_HARDWALL" case
> fails, but that's exactly what happens when we do need to do direct
> reclaim.
>
> That said, I *have* seen cases where the gcc spill code got really
> confused, and simplifying the function (by not inlining excessively)
> actually causes a truly smaller stack overall, despite the actual call
> frames etc. But I think the gcc people fixed the kinds of things that
> caused *that* kind of stack slot explosion.
>
> And avoiding inlining can end up resulting in less stack, if the
> really deep parts don't happen to go through that function that got
> inlined (ie any call chain that wouldn't have gone through that
> "slowpath" function at all).
>
> But in this case, __alloc_pages_slowpath() is where we end up doing
> the actual direct reclaim anyway, so just uninlining doesn't actually
> help. Although it would probably make the asm code more readable ;)
Indeed. :(
Actually I found there are other places to opitmize out.
For example, we can unline try_preserve_large_page for __change_page_attr_set_clr.
Although I'm not familiar with that part, I guess large page would be rare
so we could save 112-byte.
before:
ffffffff81042330 <__change_page_attr_set_clr>:
ffffffff81042330: e8 4b da 6a 00 callq ffffffff816efd80 <__entry_text_start>
ffffffff81042335: 55 push %rbp
ffffffff81042336: 48 89 e5 mov %rsp,%rbp
ffffffff81042339: 41 57 push %r15
ffffffff8104233b: 41 56 push %r14
ffffffff8104233d: 41 55 push %r13
ffffffff8104233f: 41 54 push %r12
ffffffff81042341: 49 89 fc mov %rdi,%r12
ffffffff81042344: 53 push %rbx
ffffffff81042345: 48 81 ec f8 00 00 00 sub $0xf8,%rsp
ffffffff8104234c: 8b 47 20 mov 0x20(%rdi),%eax
ffffffff8104234f: 89 b5 50 ff ff ff mov %esi,-0xb0(%rbp)
ffffffff81042355: 85 c0 test %eax,%eax
ffffffff81042357: 89 85 5c ff ff ff mov %eax,-0xa4(%rbp)
ffffffff8104235d: 0f 84 8c 06 00 00 je ffffffff810429ef <__change_page_attr_set_clr+0x6bf>
after:
ffffffff81042740 <__change_page_attr_set_clr>:
ffffffff81042740: e8 bb d5 6a 00 callq ffffffff816efd00 <__entry_text_start>
ffffffff81042745: 55 push %rbp
ffffffff81042746: 48 89 e5 mov %rsp,%rbp
ffffffff81042749: 41 57 push %r15
ffffffff8104274b: 41 56 push %r14
ffffffff8104274d: 41 55 push %r13
ffffffff8104274f: 49 89 fd mov %rdi,%r13
ffffffff81042752: 41 54 push %r12
ffffffff81042754: 53 push %rbx
ffffffff81042755: 48 81 ec 88 00 00 00 sub $0x88,%rsp
ffffffff8104275c: 8b 47 20 mov 0x20(%rdi),%eax
ffffffff8104275f: 89 b5 70 ff ff ff mov %esi,-0x90(%rbp)
ffffffff81042765: 85 c0 test %eax,%eax
ffffffff81042767: 89 85 74 ff ff ff mov %eax,-0x8c(%rbp)
ffffffff8104276d: 0f 84 cb 02 00 00 je ffffffff81042a3e <__change_page_attr_set_clr+0x2fe>
And below patch saves 96-byte from shrink_lruvec.
That would be not all and I am not saying optimization of every functions of VM
is way to go but just want to notice we have rooms to optimize it out.
I will wait more discussions and happy to test it(I can reproduce it in 1~2 hour
if I have a luck)
Thanks!
ffffffff8115b560 <shrink_lruvec>:
ffffffff8115b560: e8 db 46 59 00 callq ffffffff816efc40 <__entry_text_start>
ffffffff8115b565: 55 push %rbp
ffffffff8115b566: 65 48 8b 04 25 40 ba mov %gs:0xba40,%rax
ffffffff8115b56d: 00 00
ffffffff8115b56f: 48 89 e5 mov %rsp,%rbp
ffffffff8115b572: 41 57 push %r15
ffffffff8115b574: 41 56 push %r14
ffffffff8115b576: 45 31 f6 xor %r14d,%r14d
ffffffff8115b579: 41 55 push %r13
ffffffff8115b57b: 49 89 fd mov %rdi,%r13
ffffffff8115b57e: 41 54 push %r12
ffffffff8115b580: 49 89 f4 mov %rsi,%r12
ffffffff8115b583: 49 83 c4 34 add $0x34,%r12
ffffffff8115b587: 53 push %rbx
ffffffff8115b588: 48 8d 9f c8 fa ff ff lea -0x538(%rdi),%rbx
ffffffff8115b58f: 48 81 ec f8 00 00 00 sub $0xf8,%rsp
ffffffff8115b596: f6 40 16 04 testb $0x4,0x16(%rax)
after
ffffffff8115b870 <shrink_lruvec>:
ffffffff8115b870: e8 8b 43 59 00 callq ffffffff816efc00 <__entry_text_start>
ffffffff8115b875: 55 push %rbp
ffffffff8115b876: 48 8d 56 34 lea 0x34(%rsi),%rdx
ffffffff8115b87a: 48 89 e5 mov %rsp,%rbp
ffffffff8115b87d: 41 57 push %r15
ffffffff8115b87f: 41 bf 20 00 00 00 mov $0x20,%r15d
ffffffff8115b885: 48 8d 4d 90 lea -0x70(%rbp),%rcx
ffffffff8115b889: 41 56 push %r14
ffffffff8115b88b: 49 89 f6 mov %rsi,%r14
ffffffff8115b88e: 48 8d 76 2c lea 0x2c(%rsi),%rsi
ffffffff8115b892: 41 55 push %r13
ffffffff8115b894: 49 89 fd mov %rdi,%r13
ffffffff8115b897: 41 54 push %r12
ffffffff8115b899: 45 31 e4 xor %r12d,%r12d
ffffffff8115b89c: 53 push %rbx
ffffffff8115b89d: 48 81 ec 98 00 00 00 sub $0x98,%rsp
ffffffff8115b8a4: e8 47 df ff ff callq ffffffff811597f0 <get_scan_count.isra.60>
ffffffff8115b8a9: 48 8b 45 90 mov -0x70(%rbp),%rax
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 9b61b9bf81ac..574f9ce838b3 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -165,12 +165,14 @@ enum lru_list {
LRU_INACTIVE_FILE = LRU_BASE + LRU_FILE,
LRU_ACTIVE_FILE = LRU_BASE + LRU_FILE + LRU_ACTIVE,
LRU_UNEVICTABLE,
+ NR_EVICTABLE_LRU_LISTS = LRU_UNEVICTABLE,
NR_LRU_LISTS
};
#define for_each_lru(lru) for (lru = 0; lru < NR_LRU_LISTS; lru++)
-#define for_each_evictable_lru(lru) for (lru = 0; lru <= LRU_ACTIVE_FILE; lru++)
+#define for_each_evictable_lru(lru) for (lru = 0; \
+ lru < NR_EVICTABLE_LRU_LISTS; lru++)
static inline int is_file_lru(enum lru_list lru)
{
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 65cb7758dd09..bb330d1b76ae 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1839,8 +1839,8 @@ enum scan_balance {
* nr[0] = anon inactive pages to scan; nr[1] = anon active pages to scan
* nr[2] = file inactive pages to scan; nr[3] = file active pages to scan
*/
-static void get_scan_count(struct lruvec *lruvec, struct scan_control *sc,
- unsigned long *nr)
+static noinline_for_stack void get_scan_count(struct lruvec *lruvec,
+ struct scan_control *sc, unsigned long *nr)
{
struct zone_reclaim_stat *reclaim_stat = &lruvec->reclaim_stat;
u64 fraction[2];
@@ -2012,12 +2012,11 @@ out:
*/
static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
{
- unsigned long nr[NR_LRU_LISTS];
- unsigned long targets[NR_LRU_LISTS];
+ unsigned long nr[NR_EVICTABLE_LRU_LISTS];
+ unsigned long targets[NR_EVICTABLE_LRU_LISTS];
unsigned long nr_to_scan;
enum lru_list lru;
unsigned long nr_reclaimed = 0;
- unsigned long nr_to_reclaim = sc->nr_to_reclaim;
struct blk_plug plug;
bool scan_adjusted = false;
@@ -2042,7 +2041,7 @@ static void shrink_lruvec(struct lruvec *lruvec, struct scan_control *sc)
}
}
- if (nr_reclaimed < nr_to_reclaim || scan_adjusted)
+ if (nr_reclaimed < sc->nr_to_reclaim || scan_adjusted)
continue;
/*
--
Kind regards,
Minchan Kim
next prev parent reply other threads:[~2014-05-29 5:10 UTC|newest]
Thread overview: 205+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-28 6:53 [PATCH 1/2] ftrace: print stack usage right before Oops Minchan Kim
2014-05-28 6:53 ` Minchan Kim
2014-05-28 6:53 ` [RFC 2/2] x86_64: expand kernel stack to 16K Minchan Kim
2014-05-28 6:53 ` Minchan Kim
2014-05-28 8:37 ` Dave Chinner
2014-05-28 8:37 ` Dave Chinner
2014-05-28 8:37 ` Dave Chinner
2014-05-28 9:13 ` Dave Chinner
2014-05-28 9:13 ` Dave Chinner
2014-05-28 9:13 ` Dave Chinner
2014-05-28 16:06 ` Johannes Weiner
2014-05-28 16:06 ` Johannes Weiner
2014-05-28 16:06 ` Johannes Weiner
2014-05-28 21:55 ` Dave Chinner
2014-05-28 21:55 ` Dave Chinner
2014-05-28 21:55 ` Dave Chinner
2014-05-29 6:06 ` Minchan Kim
2014-05-29 6:06 ` Minchan Kim
2014-05-29 6:06 ` Minchan Kim
2014-05-28 9:04 ` Michael S. Tsirkin
2014-05-28 9:04 ` Michael S. Tsirkin
2014-05-29 1:09 ` Minchan Kim
2014-05-29 2:44 ` Steven Rostedt
2014-05-29 2:44 ` Steven Rostedt
2014-05-29 4:11 ` Minchan Kim
2014-05-29 4:11 ` Minchan Kim
2014-05-29 2:47 ` Rusty Russell
2014-05-29 2:47 ` Rusty Russell
2014-05-29 4:10 ` virtio_ring stack usage Rusty Russell
2014-05-28 9:27 ` [RFC 2/2] x86_64: expand kernel stack to 16K Borislav Petkov
2014-05-29 13:23 ` One Thousand Gnomes
2014-05-29 13:23 ` One Thousand Gnomes
2014-05-28 14:14 ` Steven Rostedt
2014-05-28 14:14 ` Steven Rostedt
2014-05-28 14:23 ` H. Peter Anvin
2014-05-28 14:23 ` H. Peter Anvin
2014-05-28 22:11 ` Dave Chinner
2014-05-28 22:11 ` Dave Chinner
2014-05-28 22:42 ` H. Peter Anvin
2014-05-28 22:42 ` H. Peter Anvin
2014-05-28 23:17 ` Dave Chinner
2014-05-28 23:17 ` Dave Chinner
2014-05-28 23:21 ` H. Peter Anvin
2014-05-28 23:21 ` H. Peter Anvin
2014-05-28 15:43 ` Richard Weinberger
2014-05-28 15:43 ` Richard Weinberger
2014-05-28 16:08 ` Steven Rostedt
2014-05-28 16:08 ` Steven Rostedt
2014-05-28 16:11 ` Richard Weinberger
2014-05-28 16:11 ` Richard Weinberger
2014-05-28 16:13 ` Linus Torvalds
2014-05-28 16:13 ` Linus Torvalds
2014-05-28 16:09 ` Linus Torvalds
2014-05-28 16:09 ` Linus Torvalds
2014-05-28 22:31 ` Dave Chinner
2014-05-28 22:31 ` Dave Chinner
2014-05-28 22:41 ` Linus Torvalds
2014-05-28 22:41 ` Linus Torvalds
2014-05-29 1:30 ` Dave Chinner
2014-05-29 1:30 ` Dave Chinner
2014-05-29 1:58 ` Dave Chinner
2014-05-29 1:58 ` Dave Chinner
2014-05-29 2:51 ` Linus Torvalds
2014-05-29 2:51 ` Linus Torvalds
2014-05-29 23:36 ` Minchan Kim
2014-05-29 23:36 ` Minchan Kim
2014-05-30 0:05 ` Linus Torvalds
2014-05-30 0:20 ` Minchan Kim
2014-05-30 0:20 ` Minchan Kim
2014-05-30 0:31 ` Linus Torvalds
2014-05-30 0:31 ` Linus Torvalds
2014-05-30 0:50 ` Minchan Kim
2014-05-30 0:50 ` Minchan Kim
2014-05-30 1:24 ` Linus Torvalds
2014-05-30 1:24 ` Linus Torvalds
2014-05-30 1:58 ` Dave Chinner
2014-05-30 1:58 ` Dave Chinner
2014-05-30 2:13 ` Linus Torvalds
2014-05-30 2:13 ` Linus Torvalds
2014-05-30 6:21 ` Minchan Kim
2014-05-30 6:21 ` Minchan Kim
2014-05-30 1:30 ` Linus Torvalds
2014-05-30 1:30 ` Linus Torvalds
2014-05-30 0:15 ` Dave Chinner
2014-05-30 0:15 ` Dave Chinner
2014-05-30 2:12 ` Minchan Kim
2014-05-30 2:12 ` Minchan Kim
2014-05-30 4:37 ` Linus Torvalds
2014-05-30 4:37 ` Linus Torvalds
2014-05-31 1:45 ` Linus Torvalds
2014-05-31 1:45 ` Linus Torvalds
2014-05-30 6:12 ` Minchan Kim
2014-05-30 6:12 ` Minchan Kim
2014-06-03 13:28 ` Rasmus Villemoes
2014-06-03 13:28 ` Rasmus Villemoes
2014-06-03 19:04 ` Linus Torvalds
2014-06-03 19:04 ` Linus Torvalds
2014-06-10 12:29 ` [PATCH 0/2] Per-task wait_queue_t Rasmus Villemoes
2014-06-10 12:29 ` [PATCH 1/2] wait: Introduce per-task wait_queue_t Rasmus Villemoes
2014-06-11 15:16 ` Oleg Nesterov
2014-06-10 12:29 ` [PATCH 2/2] wait: Use the per-task wait_queue_t in ___wait_event macro Rasmus Villemoes
2014-06-10 15:50 ` [PATCH 0/2] Per-task wait_queue_t Peter Zijlstra
2014-06-12 21:46 ` Rasmus Villemoes
2014-05-29 2:42 ` [RFC 2/2] x86_64: expand kernel stack to 16K Linus Torvalds
2014-05-29 2:42 ` Linus Torvalds
2014-05-29 5:14 ` H. Peter Anvin
2014-05-29 5:14 ` H. Peter Anvin
2014-05-29 6:01 ` Rusty Russell
2014-05-29 6:01 ` Rusty Russell
2014-05-29 7:26 ` virtio ring cleanups, which save stack on older gcc Rusty Russell
2014-05-29 7:26 ` Rusty Russell
2014-05-29 7:26 ` [PATCH 1/4] Hack: measure stack taken by vring from virtio_blk Rusty Russell
2014-05-29 7:26 ` Rusty Russell
2014-05-29 15:39 ` Linus Torvalds
2014-05-29 15:39 ` Linus Torvalds
2014-05-29 7:26 ` [PATCH 2/4] virtio_net: pass well-formed sg to virtqueue_add_inbuf() Rusty Russell
2014-05-29 7:26 ` Rusty Russell
2014-05-29 10:07 ` Michael S. Tsirkin
2014-05-29 10:07 ` Michael S. Tsirkin
2014-05-29 7:26 ` [PATCH 3/4] virtio_ring: assume sgs are always well-formed Rusty Russell
2014-05-29 7:26 ` Rusty Russell
2014-05-29 11:18 ` Michael S. Tsirkin
2014-05-29 11:18 ` Michael S. Tsirkin
2014-05-29 7:26 ` [PATCH 4/4] virtio_ring: unify direct/indirect code paths Rusty Russell
2014-05-29 7:26 ` Rusty Russell
2014-05-29 7:52 ` Peter Zijlstra
2014-05-29 11:05 ` Rusty Russell
2014-05-29 11:05 ` Rusty Russell
2014-05-29 11:33 ` Michael S. Tsirkin
2014-05-29 11:33 ` Michael S. Tsirkin
2014-05-29 11:29 ` Michael S. Tsirkin
2014-05-29 11:29 ` Michael S. Tsirkin
2014-05-30 2:37 ` Rusty Russell
2014-05-30 2:37 ` Rusty Russell
2014-05-30 6:21 ` Rusty Russell
2014-05-29 7:41 ` virtio ring cleanups, which save stack on older gcc Minchan Kim
2014-05-29 7:41 ` Minchan Kim
2014-05-29 10:39 ` Dave Chinner
2014-05-29 10:39 ` Dave Chinner
2014-05-29 11:08 ` Rusty Russell
2014-05-29 11:08 ` Rusty Russell
2014-05-29 23:45 ` Minchan Kim
2014-05-29 23:45 ` Minchan Kim
2014-05-30 1:06 ` Minchan Kim
2014-05-30 1:06 ` Minchan Kim
2014-05-30 6:56 ` Rusty Russell
2014-05-30 6:56 ` Rusty Russell
2014-05-29 7:26 ` [RFC 2/2] x86_64: expand kernel stack to 16K Dave Chinner
2014-05-29 7:26 ` Dave Chinner
2014-05-29 15:24 ` Linus Torvalds
2014-05-29 15:24 ` Linus Torvalds
2014-05-29 23:40 ` Minchan Kim
2014-05-29 23:40 ` Minchan Kim
2014-05-29 23:53 ` Dave Chinner
2014-05-29 23:53 ` Dave Chinner
2014-05-30 0:06 ` Dave Jones
2014-05-30 0:06 ` Dave Jones
2014-05-30 0:21 ` Dave Chinner
2014-05-30 0:21 ` Dave Chinner
2014-05-30 0:29 ` Dave Jones
2014-05-30 0:29 ` Dave Jones
2014-05-30 0:32 ` Minchan Kim
2014-05-30 0:32 ` Minchan Kim
2014-05-30 1:34 ` Dave Chinner
2014-05-30 1:34 ` Dave Chinner
2014-05-30 15:25 ` H. Peter Anvin
2014-05-30 15:25 ` H. Peter Anvin
2014-05-30 15:41 ` Linus Torvalds
2014-05-30 15:41 ` Linus Torvalds
2014-05-30 15:52 ` H. Peter Anvin
2014-05-30 15:52 ` H. Peter Anvin
2014-05-30 16:06 ` Linus Torvalds
2014-05-30 16:06 ` Linus Torvalds
2014-05-30 17:24 ` Dave Hansen
2014-05-30 17:24 ` Dave Hansen
2014-05-30 18:12 ` H. Peter Anvin
2014-05-30 18:12 ` H. Peter Anvin
2014-10-21 2:00 ` Dave Jones
2014-10-21 4:59 ` Andy Lutomirski
2014-05-30 9:48 ` Richard Weinberger
2014-05-30 9:48 ` Richard Weinberger
2014-05-30 15:36 ` Linus Torvalds
2014-05-30 15:36 ` Linus Torvalds
2014-05-31 2:06 ` Jens Axboe
2014-05-31 2:06 ` Jens Axboe
2014-06-02 22:59 ` Dave Chinner
2014-06-02 22:59 ` Dave Chinner
2014-06-03 13:02 ` Konstantin Khlebnikov
2014-06-03 13:02 ` Konstantin Khlebnikov
2014-05-29 3:46 ` Minchan Kim
2014-05-29 3:46 ` Minchan Kim
2014-05-29 4:13 ` Linus Torvalds
2014-05-29 4:13 ` Linus Torvalds
2014-05-29 5:10 ` Minchan Kim [this message]
2014-05-29 5:10 ` Minchan Kim
2014-05-30 21:23 ` Andi Kleen
2014-05-30 21:23 ` Andi Kleen
2014-05-28 16:18 ` [PATCH 1/2] ftrace: print stack usage right before Oops Steven Rostedt
2014-05-28 16:18 ` Steven Rostedt
2014-05-29 3:52 ` Minchan Kim
2014-05-29 3:52 ` Minchan Kim
2014-05-29 3:01 ` Steven Rostedt
2014-05-29 3:01 ` Steven Rostedt
2014-05-29 3:49 ` Minchan Kim
2014-05-29 3:49 ` Minchan Kim
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=20140529051042.GF10092@bbox \
--to=minchan@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=dave.hansen@intel.com \
--cc=hannes@cmpxchg.org \
--cc=hpa@zytor.com \
--cc=hughd@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=mingo@kernel.org \
--cc=mst@redhat.com \
--cc=riel@redhat.com \
--cc=rostedt@goodmis.org \
--cc=rusty@rustcorp.com.au \
--cc=torvalds@linux-foundation.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.