All of lore.kernel.org
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Dave Chinner <david@fromorbit.com>
Cc: Ingo Molnar <mingo@kernel.org>, Mel Gorman <mgorman@suse.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux-MM <linux-mm@kvack.org>,
	xfs@oss.sgi.com, ppc-dev <linuxppc-dev@lists.ozlabs.org>
Subject: Re: [PATCH 4/4] mm: numa: Slow PTE scan rate if migration failures occur
Date: Tue, 10 Mar 2015 16:55:52 -0700	[thread overview]
Message-ID: <CA+55aFzFt-vX5Jerci0Ty4Uf7K4_nQ7wyCp8hhU_dB0X4cBpVQ@mail.gmail.com> (raw)
In-Reply-To: <20150309191943.GF26657@destitution>

On Mon, Mar 9, 2015 at 12:19 PM, Dave Chinner <david@fromorbit.com> wrote:
> On Mon, Mar 09, 2015 at 09:52:18AM -0700, Linus Torvalds wrote:
>>
>> What's your virtual environment setup? Kernel config, and
>> virtualization environment to actually get that odd fake NUMA thing
>> happening?
>
> I don't have the exact .config with me (test machines at home
> are shut down because I'm half a world away), but it's pretty much
> this (copied and munged from a similar test vm on my laptop):

[ snip snip ]

Ok, I hate debugging by symptoms anyway, so I didn't do any of this,
and went back to actually *thinking* about the code instead of trying
to reproduce this and figure things out by trial and error.

And I think I figured it out. Of course, since I didn't actually test
anything, what do I know, but I feel good about it, because I think I
can explain why that patch that on the face of it shouldn't change
anything actually did.

So, the old code just did all those manual page table changes,
clearing the present bit and setting the NUMA bit instead.

The new code _ostensibly_ does the same, except it clears the present
bit and sets the PROTNONE bit instead.

However, rather than playing special games with just those two bits,
it uses the normal pte accessor functions, and in particular uses
vma->vm_page_prot to reset the protections back. Which is a nice
cleanup and really makes the code look saner, and does the same thing.

Except it really isn't the same thing at all.

Why?

The protection bits in the page tables are *not* the same as
vma->vm_page_prot. Yes, they start out that way, but they don't stay
that way. And no, I'm not talking about dirty and accessed bits.

The difference? COW. Any private mapping is marked read-only in
vma->vm_page_prot, and then the COW (or the initial write) makes it
read-write.

And so, when we did

-       pte = pte_mknonnuma(pte);
+       /* Make it present again */
+       pte = pte_modify(pte, vma->vm_page_prot);
+       pte = pte_mkyoung(pte);

that isn't equivalent at all - it makes the page read-only, because it
restores it to its original state.

Now, that isn't actually what hurts most, I suspect. Judging by the
profiles, we don't suddenly take a lot of new COW faults. No, what
hurts most is that the NUMA balancing code does this:

        /*
         * Avoid grouping on DSO/COW pages in specific and RO pages
         * in general, RO pages shouldn't hurt as much anyway since
         * they can be in shared cache state.
         */
        if (!pte_write(pte))
                flags |= TNF_NO_GROUP;

and that "!pte_write(pte)" is basically now *always* true for private
mappings (which is 99% of all mappings).

In other words, I think the patch unintentionally made the NUMA code
basically always do the TNF_NO_GROUP case.

I think that a quick hack for testing might be to just replace that
"!pte_write()" with "!pte_dirty()", and seeing how that acts.

Comments?

                      Linus

WARNING: multiple messages have this Message-ID (diff)
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Dave Chinner <david@fromorbit.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	xfs@oss.sgi.com, Linux-MM <linux-mm@kvack.org>,
	Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	ppc-dev <linuxppc-dev@lists.ozlabs.org>,
	Ingo Molnar <mingo@kernel.org>, Mel Gorman <mgorman@suse.de>
Subject: Re: [PATCH 4/4] mm: numa: Slow PTE scan rate if migration failures occur
Date: Tue, 10 Mar 2015 16:55:52 -0700	[thread overview]
Message-ID: <CA+55aFzFt-vX5Jerci0Ty4Uf7K4_nQ7wyCp8hhU_dB0X4cBpVQ@mail.gmail.com> (raw)
In-Reply-To: <20150309191943.GF26657@destitution>

On Mon, Mar 9, 2015 at 12:19 PM, Dave Chinner <david@fromorbit.com> wrote:
> On Mon, Mar 09, 2015 at 09:52:18AM -0700, Linus Torvalds wrote:
>>
>> What's your virtual environment setup? Kernel config, and
>> virtualization environment to actually get that odd fake NUMA thing
>> happening?
>
> I don't have the exact .config with me (test machines at home
> are shut down because I'm half a world away), but it's pretty much
> this (copied and munged from a similar test vm on my laptop):

[ snip snip ]

Ok, I hate debugging by symptoms anyway, so I didn't do any of this,
and went back to actually *thinking* about the code instead of trying
to reproduce this and figure things out by trial and error.

And I think I figured it out. Of course, since I didn't actually test
anything, what do I know, but I feel good about it, because I think I
can explain why that patch that on the face of it shouldn't change
anything actually did.

So, the old code just did all those manual page table changes,
clearing the present bit and setting the NUMA bit instead.

The new code _ostensibly_ does the same, except it clears the present
bit and sets the PROTNONE bit instead.

However, rather than playing special games with just those two bits,
it uses the normal pte accessor functions, and in particular uses
vma->vm_page_prot to reset the protections back. Which is a nice
cleanup and really makes the code look saner, and does the same thing.

Except it really isn't the same thing at all.

Why?

The protection bits in the page tables are *not* the same as
vma->vm_page_prot. Yes, they start out that way, but they don't stay
that way. And no, I'm not talking about dirty and accessed bits.

The difference? COW. Any private mapping is marked read-only in
vma->vm_page_prot, and then the COW (or the initial write) makes it
read-write.

And so, when we did

-       pte = pte_mknonnuma(pte);
+       /* Make it present again */
+       pte = pte_modify(pte, vma->vm_page_prot);
+       pte = pte_mkyoung(pte);

that isn't equivalent at all - it makes the page read-only, because it
restores it to its original state.

Now, that isn't actually what hurts most, I suspect. Judging by the
profiles, we don't suddenly take a lot of new COW faults. No, what
hurts most is that the NUMA balancing code does this:

        /*
         * Avoid grouping on DSO/COW pages in specific and RO pages
         * in general, RO pages shouldn't hurt as much anyway since
         * they can be in shared cache state.
         */
        if (!pte_write(pte))
                flags |= TNF_NO_GROUP;

and that "!pte_write(pte)" is basically now *always* true for private
mappings (which is 99% of all mappings).

In other words, I think the patch unintentionally made the NUMA code
basically always do the TNF_NO_GROUP case.

I think that a quick hack for testing might be to just replace that
"!pte_write()" with "!pte_dirty()", and seeing how that acts.

Comments?

                      Linus

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

WARNING: multiple messages have this Message-ID (diff)
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Dave Chinner <david@fromorbit.com>
Cc: Ingo Molnar <mingo@kernel.org>, Mel Gorman <mgorman@suse.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux-MM <linux-mm@kvack.org>,
	xfs@oss.sgi.com, ppc-dev <linuxppc-dev@lists.ozlabs.org>
Subject: Re: [PATCH 4/4] mm: numa: Slow PTE scan rate if migration failures occur
Date: Tue, 10 Mar 2015 16:55:52 -0700	[thread overview]
Message-ID: <CA+55aFzFt-vX5Jerci0Ty4Uf7K4_nQ7wyCp8hhU_dB0X4cBpVQ@mail.gmail.com> (raw)
In-Reply-To: <20150309191943.GF26657@destitution>

On Mon, Mar 9, 2015 at 12:19 PM, Dave Chinner <david@fromorbit.com> wrote:
> On Mon, Mar 09, 2015 at 09:52:18AM -0700, Linus Torvalds wrote:
>>
>> What's your virtual environment setup? Kernel config, and
>> virtualization environment to actually get that odd fake NUMA thing
>> happening?
>
> I don't have the exact .config with me (test machines at home
> are shut down because I'm half a world away), but it's pretty much
> this (copied and munged from a similar test vm on my laptop):

[ snip snip ]

Ok, I hate debugging by symptoms anyway, so I didn't do any of this,
and went back to actually *thinking* about the code instead of trying
to reproduce this and figure things out by trial and error.

And I think I figured it out. Of course, since I didn't actually test
anything, what do I know, but I feel good about it, because I think I
can explain why that patch that on the face of it shouldn't change
anything actually did.

So, the old code just did all those manual page table changes,
clearing the present bit and setting the NUMA bit instead.

The new code _ostensibly_ does the same, except it clears the present
bit and sets the PROTNONE bit instead.

However, rather than playing special games with just those two bits,
it uses the normal pte accessor functions, and in particular uses
vma->vm_page_prot to reset the protections back. Which is a nice
cleanup and really makes the code look saner, and does the same thing.

Except it really isn't the same thing at all.

Why?

The protection bits in the page tables are *not* the same as
vma->vm_page_prot. Yes, they start out that way, but they don't stay
that way. And no, I'm not talking about dirty and accessed bits.

The difference? COW. Any private mapping is marked read-only in
vma->vm_page_prot, and then the COW (or the initial write) makes it
read-write.

And so, when we did

-       pte = pte_mknonnuma(pte);
+       /* Make it present again */
+       pte = pte_modify(pte, vma->vm_page_prot);
+       pte = pte_mkyoung(pte);

that isn't equivalent at all - it makes the page read-only, because it
restores it to its original state.

Now, that isn't actually what hurts most, I suspect. Judging by the
profiles, we don't suddenly take a lot of new COW faults. No, what
hurts most is that the NUMA balancing code does this:

        /*
         * Avoid grouping on DSO/COW pages in specific and RO pages
         * in general, RO pages shouldn't hurt as much anyway since
         * they can be in shared cache state.
         */
        if (!pte_write(pte))
                flags |= TNF_NO_GROUP;

and that "!pte_write(pte)" is basically now *always* true for private
mappings (which is 99% of all mappings).

In other words, I think the patch unintentionally made the NUMA code
basically always do the TNF_NO_GROUP case.

I think that a quick hack for testing might be to just replace that
"!pte_write()" with "!pte_dirty()", and seeing how that acts.

Comments?

                      Linus

--
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: Linus Torvalds <torvalds@linux-foundation.org>
To: Dave Chinner <david@fromorbit.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	xfs@oss.sgi.com, Linux-MM <linux-mm@kvack.org>,
	Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	ppc-dev <linuxppc-dev@lists.ozlabs.org>,
	Ingo Molnar <mingo@kernel.org>, Mel Gorman <mgorman@suse.de>
Subject: Re: [PATCH 4/4] mm: numa: Slow PTE scan rate if migration failures occur
Date: Tue, 10 Mar 2015 16:55:52 -0700	[thread overview]
Message-ID: <CA+55aFzFt-vX5Jerci0Ty4Uf7K4_nQ7wyCp8hhU_dB0X4cBpVQ@mail.gmail.com> (raw)
In-Reply-To: <20150309191943.GF26657@destitution>

On Mon, Mar 9, 2015 at 12:19 PM, Dave Chinner <david@fromorbit.com> wrote:
> On Mon, Mar 09, 2015 at 09:52:18AM -0700, Linus Torvalds wrote:
>>
>> What's your virtual environment setup? Kernel config, and
>> virtualization environment to actually get that odd fake NUMA thing
>> happening?
>
> I don't have the exact .config with me (test machines at home
> are shut down because I'm half a world away), but it's pretty much
> this (copied and munged from a similar test vm on my laptop):

[ snip snip ]

Ok, I hate debugging by symptoms anyway, so I didn't do any of this,
and went back to actually *thinking* about the code instead of trying
to reproduce this and figure things out by trial and error.

And I think I figured it out. Of course, since I didn't actually test
anything, what do I know, but I feel good about it, because I think I
can explain why that patch that on the face of it shouldn't change
anything actually did.

So, the old code just did all those manual page table changes,
clearing the present bit and setting the NUMA bit instead.

The new code _ostensibly_ does the same, except it clears the present
bit and sets the PROTNONE bit instead.

However, rather than playing special games with just those two bits,
it uses the normal pte accessor functions, and in particular uses
vma->vm_page_prot to reset the protections back. Which is a nice
cleanup and really makes the code look saner, and does the same thing.

Except it really isn't the same thing at all.

Why?

The protection bits in the page tables are *not* the same as
vma->vm_page_prot. Yes, they start out that way, but they don't stay
that way. And no, I'm not talking about dirty and accessed bits.

The difference? COW. Any private mapping is marked read-only in
vma->vm_page_prot, and then the COW (or the initial write) makes it
read-write.

And so, when we did

-       pte = pte_mknonnuma(pte);
+       /* Make it present again */
+       pte = pte_modify(pte, vma->vm_page_prot);
+       pte = pte_mkyoung(pte);

that isn't equivalent at all - it makes the page read-only, because it
restores it to its original state.

Now, that isn't actually what hurts most, I suspect. Judging by the
profiles, we don't suddenly take a lot of new COW faults. No, what
hurts most is that the NUMA balancing code does this:

        /*
         * Avoid grouping on DSO/COW pages in specific and RO pages
         * in general, RO pages shouldn't hurt as much anyway since
         * they can be in shared cache state.
         */
        if (!pte_write(pte))
                flags |= TNF_NO_GROUP;

and that "!pte_write(pte)" is basically now *always* true for private
mappings (which is 99% of all mappings).

In other words, I think the patch unintentionally made the NUMA code
basically always do the TNF_NO_GROUP case.

I think that a quick hack for testing might be to just replace that
"!pte_write()" with "!pte_dirty()", and seeing how that acts.

Comments?

                      Linus

  reply	other threads:[~2015-03-10 23:56 UTC|newest]

Thread overview: 195+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-07 15:20 [RFC PATCH 0/4] Automatic NUMA balancing and PROT_NONE handling followup v2r8 Mel Gorman
2015-03-07 15:20 ` Mel Gorman
2015-03-07 15:20 ` Mel Gorman
2015-03-07 15:20 ` Mel Gorman
2015-03-07 15:20 ` [PATCH 1/4] mm: thp: Return the correct value for change_huge_pmd Mel Gorman
2015-03-07 15:20   ` Mel Gorman
2015-03-07 15:20   ` Mel Gorman
2015-03-07 15:20   ` Mel Gorman
2015-03-07 20:13   ` Linus Torvalds
2015-03-07 20:13     ` Linus Torvalds
2015-03-07 20:13     ` Linus Torvalds
2015-03-07 20:13     ` Linus Torvalds
2015-03-07 20:31   ` Linus Torvalds
2015-03-07 20:31     ` Linus Torvalds
2015-03-07 20:31     ` Linus Torvalds
2015-03-07 20:31     ` Linus Torvalds
2015-03-07 20:56     ` Mel Gorman
2015-03-07 20:56       ` Mel Gorman
2015-03-07 20:56       ` Mel Gorman
2015-03-07 20:56       ` Mel Gorman
2015-03-07 15:20 ` [PATCH 2/4] mm: numa: Remove migrate_ratelimited Mel Gorman
2015-03-07 15:20   ` Mel Gorman
2015-03-07 15:20   ` Mel Gorman
2015-03-07 15:20   ` Mel Gorman
2015-03-07 15:20 ` [PATCH 3/4] mm: numa: Mark huge PTEs young when clearing NUMA hinting faults Mel Gorman
2015-03-07 15:20   ` Mel Gorman
2015-03-07 15:20   ` Mel Gorman
2015-03-07 15:20   ` Mel Gorman
2015-03-07 18:33   ` Linus Torvalds
2015-03-07 18:33     ` Linus Torvalds
2015-03-07 18:33     ` Linus Torvalds
2015-03-07 18:33     ` Linus Torvalds
2015-03-07 18:42     ` Linus Torvalds
2015-03-07 18:42       ` Linus Torvalds
2015-03-07 18:42       ` Linus Torvalds
2015-03-07 18:42       ` Linus Torvalds
2015-03-07 15:20 ` [PATCH 4/4] mm: numa: Slow PTE scan rate if migration failures occur Mel Gorman
2015-03-07 15:20   ` Mel Gorman
2015-03-07 15:20   ` Mel Gorman
2015-03-07 15:20   ` Mel Gorman
2015-03-07 16:36   ` Ingo Molnar
2015-03-07 16:36     ` Ingo Molnar
2015-03-07 16:36     ` Ingo Molnar
2015-03-07 16:36     ` Ingo Molnar
2015-03-07 17:37     ` Mel Gorman
2015-03-07 17:37       ` Mel Gorman
2015-03-07 17:37       ` Mel Gorman
2015-03-07 17:37       ` Mel Gorman
2015-03-08  9:54       ` Ingo Molnar
2015-03-08  9:54         ` Ingo Molnar
2015-03-08  9:54         ` Ingo Molnar
2015-03-08  9:54         ` Ingo Molnar
2015-03-07 19:12     ` Linus Torvalds
2015-03-07 19:12       ` Linus Torvalds
2015-03-07 19:12       ` Linus Torvalds
2015-03-07 19:12       ` Linus Torvalds
2015-03-08 10:02       ` Ingo Molnar
2015-03-08 10:02         ` Ingo Molnar
2015-03-08 10:02         ` Ingo Molnar
2015-03-08 10:02         ` Ingo Molnar
2015-03-08 18:35         ` Linus Torvalds
2015-03-08 18:35           ` Linus Torvalds
2015-03-08 18:35           ` Linus Torvalds
2015-03-08 18:35           ` Linus Torvalds
2015-03-08 18:46           ` Linus Torvalds
2015-03-08 18:46             ` Linus Torvalds
2015-03-08 18:46             ` Linus Torvalds
2015-03-08 18:46             ` Linus Torvalds
2015-03-09 11:29           ` Dave Chinner
2015-03-09 11:29             ` Dave Chinner
2015-03-09 11:29             ` Dave Chinner
2015-03-09 11:29             ` Dave Chinner
2015-03-09 16:52             ` Linus Torvalds
2015-03-09 16:52               ` Linus Torvalds
2015-03-09 16:52               ` Linus Torvalds
2015-03-09 16:52               ` Linus Torvalds
2015-03-09 19:19               ` Dave Chinner
2015-03-09 19:19                 ` Dave Chinner
2015-03-09 19:19                 ` Dave Chinner
2015-03-10 23:55                 ` Linus Torvalds [this message]
2015-03-10 23:55                   ` Linus Torvalds
2015-03-10 23:55                   ` Linus Torvalds
2015-03-10 23:55                   ` Linus Torvalds
2015-03-12 13:10                   ` Mel Gorman
2015-03-12 13:10                     ` Mel Gorman
2015-03-12 13:10                     ` Mel Gorman
2015-03-12 13:10                     ` Mel Gorman
2015-03-12 16:20                     ` Linus Torvalds
2015-03-12 16:20                       ` Linus Torvalds
2015-03-12 16:20                       ` Linus Torvalds
2015-03-12 16:20                       ` Linus Torvalds
2015-03-12 18:49                       ` Mel Gorman
2015-03-12 18:49                         ` Mel Gorman
2015-03-12 18:49                         ` Mel Gorman
2015-03-12 18:49                         ` Mel Gorman
2015-03-17  7:06                         ` Dave Chinner
2015-03-17  7:06                           ` Dave Chinner
2015-03-17  7:06                           ` Dave Chinner
2015-03-17  7:06                           ` Dave Chinner
2015-03-17 16:53                           ` Linus Torvalds
2015-03-17 16:53                             ` Linus Torvalds
2015-03-17 16:53                             ` Linus Torvalds
2015-03-17 16:53                             ` Linus Torvalds
2015-03-17 20:51                             ` Dave Chinner
2015-03-17 20:51                               ` Dave Chinner
2015-03-17 20:51                               ` Dave Chinner
2015-03-17 20:51                               ` Dave Chinner
2015-03-17 21:30                               ` Linus Torvalds
2015-03-17 21:30                                 ` Linus Torvalds
2015-03-17 21:30                                 ` Linus Torvalds
2015-03-17 21:30                                 ` Linus Torvalds
2015-03-17 22:08                                 ` Dave Chinner
2015-03-17 22:08                                   ` Dave Chinner
2015-03-17 22:08                                   ` Dave Chinner
2015-03-17 22:08                                   ` Dave Chinner
2015-03-18 16:08                                   ` Linus Torvalds
2015-03-18 16:08                                     ` Linus Torvalds
2015-03-18 16:08                                     ` Linus Torvalds
2015-03-18 16:08                                     ` Linus Torvalds
2015-03-18 17:31                                     ` Linus Torvalds
2015-03-18 17:31                                       ` Linus Torvalds
2015-03-18 17:31                                       ` Linus Torvalds
2015-03-18 17:31                                       ` Linus Torvalds
2015-03-18 22:23                                       ` Dave Chinner
2015-03-18 22:23                                         ` Dave Chinner
2015-03-18 22:23                                         ` Dave Chinner
2015-03-18 22:23                                         ` Dave Chinner
2015-03-19 14:10                                       ` Mel Gorman
2015-03-19 14:10                                         ` Mel Gorman
2015-03-19 14:10                                         ` Mel Gorman
2015-03-19 14:10                                         ` Mel Gorman
2015-03-19 18:09                                         ` Linus Torvalds
2015-03-19 18:09                                           ` Linus Torvalds
2015-03-19 18:09                                           ` Linus Torvalds
2015-03-19 18:09                                           ` Linus Torvalds
2015-03-19 21:41                                       ` Linus Torvalds
2015-03-19 21:41                                         ` Linus Torvalds
2015-03-19 21:41                                         ` Linus Torvalds
2015-03-19 21:41                                         ` Linus Torvalds
2015-03-19 22:41                                         ` Dave Chinner
2015-03-19 22:41                                           ` Dave Chinner
2015-03-19 22:41                                           ` Dave Chinner
2015-03-19 22:41                                           ` Dave Chinner
2015-03-19 23:05                                           ` Linus Torvalds
2015-03-19 23:05                                             ` Linus Torvalds
2015-03-19 23:05                                             ` Linus Torvalds
2015-03-19 23:05                                             ` Linus Torvalds
2015-03-19 23:23                                             ` Dave Chinner
2015-03-19 23:23                                               ` Dave Chinner
2015-03-19 23:23                                               ` Dave Chinner
2015-03-19 23:23                                               ` Dave Chinner
2015-03-20  0:23                                             ` Dave Chinner
2015-03-20  0:23                                               ` Dave Chinner
2015-03-20  0:23                                               ` Dave Chinner
2015-03-20  0:23                                               ` Dave Chinner
2015-03-20  1:29                                               ` Linus Torvalds
2015-03-20  1:29                                                 ` Linus Torvalds
2015-03-20  1:29                                                 ` Linus Torvalds
2015-03-20  1:29                                                 ` Linus Torvalds
2015-03-20  4:13                                                 ` Dave Chinner
2015-03-20  4:13                                                   ` Dave Chinner
2015-03-20  4:13                                                   ` Dave Chinner
2015-03-20  4:13                                                   ` Dave Chinner
2015-03-20 17:02                                                   ` Linus Torvalds
2015-03-20 17:02                                                     ` Linus Torvalds
2015-03-20 17:02                                                     ` Linus Torvalds
2015-03-20 17:02                                                     ` Linus Torvalds
2015-03-23 12:01                                                     ` Mel Gorman
2015-03-23 12:01                                                       ` Mel Gorman
2015-03-23 12:01                                                       ` Mel Gorman
2015-03-23 12:01                                                       ` Mel Gorman
2015-03-20 10:12                                                 ` Mel Gorman
2015-03-20 10:12                                                   ` Mel Gorman
2015-03-20 10:12                                                   ` Mel Gorman
2015-03-20 10:12                                                   ` Mel Gorman
2015-03-20  9:56                                             ` Mel Gorman
2015-03-20  9:56                                               ` Mel Gorman
2015-03-20  9:56                                               ` Mel Gorman
2015-03-20  9:56                                               ` Mel Gorman
2015-03-08 20:40         ` Mel Gorman
2015-03-08 20:40           ` Mel Gorman
2015-03-08 20:40           ` Mel Gorman
2015-03-08 20:40           ` Mel Gorman
2015-03-09 21:02           ` Mel Gorman
2015-03-09 21:02             ` Mel Gorman
2015-03-09 21:02             ` Mel Gorman
2015-03-09 21:02             ` Mel Gorman
2015-03-10 13:08             ` Mel Gorman
2015-03-10 13:08               ` Mel Gorman
2015-03-10 13:08               ` Mel Gorman
2015-03-10 13:08               ` Mel Gorman
2015-03-08  9:41   ` Ingo Molnar
2015-03-08  9:41     ` Ingo Molnar
2015-03-08  9:41     ` Ingo Molnar
2015-03-08  9:41     ` Ingo Molnar

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=CA+55aFzFt-vX5Jerci0Ty4Uf7K4_nQ7wyCp8hhU_dB0X4cBpVQ@mail.gmail.com \
    --to=torvalds@linux-foundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=david@fromorbit.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mgorman@suse.de \
    --cc=mingo@kernel.org \
    --cc=xfs@oss.sgi.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 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.