* [PATCH] mm: remove a redundant condition in the for loop
@ 2017-06-19 13:54 Hao Lee
2017-06-19 14:17 ` Vlastimil Babka
0 siblings, 1 reply; 10+ messages in thread
From: Hao Lee @ 2017-06-19 13:54 UTC (permalink / raw)
To: akpm
Cc: vbabka, mgorman, mhocko, hannes, iamjoonsoo.kim, minchan,
linux-mm, linux-kernel, Hao Lee
The variable current_order decreases from MAX_ORDER-1 to order, so the
condition current_order <= MAX_ORDER-1 is always true.
Signed-off-by: Hao Lee <haolee.swjtu@gmail.com>
---
mm/page_alloc.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 2302f25..9120c2b 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2215,9 +2215,8 @@ __rmqueue_fallback(struct zone *zone, unsigned int order, int start_migratetype)
bool can_steal;
/* Find the largest possible block of pages in the other list */
- for (current_order = MAX_ORDER-1;
- current_order >= order && current_order <= MAX_ORDER-1;
- --current_order) {
+ for (current_order = MAX_ORDER-1; current_order >= order;
+ --current_order) {
area = &(zone->free_area[current_order]);
fallback_mt = find_suitable_fallback(area, current_order,
start_migratetype, false, &can_steal);
--
2.9.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] mm: remove a redundant condition in the for loop
2017-06-19 13:54 [PATCH] mm: remove a redundant condition in the for loop Hao Lee
@ 2017-06-19 14:17 ` Vlastimil Babka
2017-06-19 19:05 ` Rasmus Villemoes
0 siblings, 1 reply; 10+ messages in thread
From: Vlastimil Babka @ 2017-06-19 14:17 UTC (permalink / raw)
To: Hao Lee, akpm
Cc: mgorman, mhocko, hannes, iamjoonsoo.kim, minchan, linux-mm, linux-kernel
On 06/19/2017 03:54 PM, Hao Lee wrote:
> The variable current_order decreases from MAX_ORDER-1 to order, so the
> condition current_order <= MAX_ORDER-1 is always true.
>
> Signed-off-by: Hao Lee <haolee.swjtu@gmail.com>
Sounds right.
Acked-by: Vlastimil Babka <vbabka@suse.cz>
> ---
> mm/page_alloc.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 2302f25..9120c2b 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -2215,9 +2215,8 @@ __rmqueue_fallback(struct zone *zone, unsigned int order, int start_migratetype)
> bool can_steal;
>
> /* Find the largest possible block of pages in the other list */
> - for (current_order = MAX_ORDER-1;
> - current_order >= order && current_order <= MAX_ORDER-1;
> - --current_order) {
> + for (current_order = MAX_ORDER-1; current_order >= order;
> + --current_order) {
> area = &(zone->free_area[current_order]);
> fallback_mt = find_suitable_fallback(area, current_order,
> start_migratetype, false, &can_steal);
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] mm: remove a redundant condition in the for loop
2017-06-19 14:17 ` Vlastimil Babka
@ 2017-06-19 19:05 ` Rasmus Villemoes
2017-06-19 20:23 ` Vlastimil Babka
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Rasmus Villemoes @ 2017-06-19 19:05 UTC (permalink / raw)
To: Vlastimil Babka
Cc: Hao Lee, akpm, mgorman, mhocko, hannes, iamjoonsoo.kim, minchan,
linux-mm, linux-kernel
On Mon, Jun 19 2017, Vlastimil Babka <vbabka@suse.cz> wrote:
> On 06/19/2017 03:54 PM, Hao Lee wrote:
>> The variable current_order decreases from MAX_ORDER-1 to order, so the
>> condition current_order <= MAX_ORDER-1 is always true.
>>
>> Signed-off-by: Hao Lee <haolee.swjtu@gmail.com>
>
> Sounds right.
>
> Acked-by: Vlastimil Babka <vbabka@suse.cz>
current_order and order are both unsigned, and if order==0,
current_order >= order is always true, and we may decrement
current_order past 0 making it UINT_MAX... A comment would be in order,
though.
>> ---
>> mm/page_alloc.c | 5 ++---
>> 1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index 2302f25..9120c2b 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -2215,9 +2215,8 @@ __rmqueue_fallback(struct zone *zone, unsigned int order, int start_migratetype)
>> bool can_steal;
>>
>> /* Find the largest possible block of pages in the other list */
>> - for (current_order = MAX_ORDER-1;
>> - current_order >= order && current_order <= MAX_ORDER-1;
>> - --current_order) {
>> + for (current_order = MAX_ORDER-1; current_order >= order;
>> + --current_order) {
>> area = &(zone->free_area[current_order]);
>> fallback_mt = find_suitable_fallback(area, current_order,
>> start_migratetype, false, &can_steal);
>>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] mm: remove a redundant condition in the for loop
2017-06-19 19:05 ` Rasmus Villemoes
@ 2017-06-19 20:23 ` Vlastimil Babka
2017-06-20 1:39 ` Hao Lee
2017-06-21 9:43 ` Michal Hocko
2 siblings, 0 replies; 10+ messages in thread
From: Vlastimil Babka @ 2017-06-19 20:23 UTC (permalink / raw)
To: Rasmus Villemoes
Cc: Hao Lee, akpm, mgorman, mhocko, hannes, iamjoonsoo.kim, minchan,
linux-mm, linux-kernel
On 06/19/2017 09:05 PM, Rasmus Villemoes wrote:
> On Mon, Jun 19 2017, Vlastimil Babka <vbabka@suse.cz> wrote:
>
>> On 06/19/2017 03:54 PM, Hao Lee wrote:
>>> The variable current_order decreases from MAX_ORDER-1 to order, so the
>>> condition current_order <= MAX_ORDER-1 is always true.
>>>
>>> Signed-off-by: Hao Lee <haolee.swjtu@gmail.com>
>>
>> Sounds right.
>>
>> Acked-by: Vlastimil Babka <vbabka@suse.cz>
>
> current_order and order are both unsigned, and if order==0,
> current_order >= order is always true, and we may decrement
> current_order past 0 making it UINT_MAX... A comment would be in order,
> though.
Doh, right. Thanks.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] mm: remove a redundant condition in the for loop
2017-06-19 19:05 ` Rasmus Villemoes
2017-06-19 20:23 ` Vlastimil Babka
@ 2017-06-20 1:39 ` Hao Lee
2017-06-21 9:43 ` Michal Hocko
2 siblings, 0 replies; 10+ messages in thread
From: Hao Lee @ 2017-06-20 1:39 UTC (permalink / raw)
To: Rasmus Villemoes
Cc: Vlastimil Babka, akpm, mgorman, mhocko, Johannes Weiner,
iamjoonsoo.kim, minchan, linux-mm, linux-kernel
On Tue, Jun 20, 2017 at 3:05 AM, Rasmus Villemoes
<linux@rasmusvillemoes.dk> wrote:
> On Mon, Jun 19 2017, Vlastimil Babka <vbabka@suse.cz> wrote:
>
>> On 06/19/2017 03:54 PM, Hao Lee wrote:
>>> The variable current_order decreases from MAX_ORDER-1 to order, so the
>>> condition current_order <= MAX_ORDER-1 is always true.
>>>
>>> Signed-off-by: Hao Lee <haolee.swjtu@gmail.com>
>>
>> Sounds right.
>>
>> Acked-by: Vlastimil Babka <vbabka@suse.cz>
>
> current_order and order are both unsigned, and if order==0,
> current_order >= order is always true, and we may decrement
> current_order past 0 making it UINT_MAX... A comment would be in order,
> though.
Thanks, I didn't notice unsigned subtraction. Sorry about that.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] mm: remove a redundant condition in the for loop
2017-06-19 19:05 ` Rasmus Villemoes
2017-06-19 20:23 ` Vlastimil Babka
2017-06-20 1:39 ` Hao Lee
@ 2017-06-21 9:43 ` Michal Hocko
2017-06-21 18:55 ` [PATCH] mm/page_alloc.c: eliminate unsigned confusion in __rmqueue_fallback Rasmus Villemoes
2 siblings, 1 reply; 10+ messages in thread
From: Michal Hocko @ 2017-06-21 9:43 UTC (permalink / raw)
To: Rasmus Villemoes
Cc: Vlastimil Babka, Hao Lee, akpm, mgorman, hannes, iamjoonsoo.kim,
minchan, linux-mm, linux-kernel
On Mon 19-06-17 21:05:29, Rasmus Villemoes wrote:
> On Mon, Jun 19 2017, Vlastimil Babka <vbabka@suse.cz> wrote:
>
> > On 06/19/2017 03:54 PM, Hao Lee wrote:
> >> The variable current_order decreases from MAX_ORDER-1 to order, so the
> >> condition current_order <= MAX_ORDER-1 is always true.
> >>
> >> Signed-off-by: Hao Lee <haolee.swjtu@gmail.com>
> >
> > Sounds right.
> >
> > Acked-by: Vlastimil Babka <vbabka@suse.cz>
>
> current_order and order are both unsigned, and if order==0,
> current_order >= order is always true, and we may decrement
> current_order past 0 making it UINT_MAX... A comment would be in order,
> though.
Yes, not the first time this has been brought up
https://lkml.org/lkml/2016/6/20/493. I guess a comment is long overdue.
Or just get rid of the unsigned trap which would be probably more clean.
> >> ---
> >> mm/page_alloc.c | 5 ++---
> >> 1 file changed, 2 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> >> index 2302f25..9120c2b 100644
> >> --- a/mm/page_alloc.c
> >> +++ b/mm/page_alloc.c
> >> @@ -2215,9 +2215,8 @@ __rmqueue_fallback(struct zone *zone, unsigned int order, int start_migratetype)
> >> bool can_steal;
> >>
> >> /* Find the largest possible block of pages in the other list */
> >> - for (current_order = MAX_ORDER-1;
> >> - current_order >= order && current_order <= MAX_ORDER-1;
> >> - --current_order) {
> >> + for (current_order = MAX_ORDER-1; current_order >= order;
> >> + --current_order) {
> >> area = &(zone->free_area[current_order]);
> >> fallback_mt = find_suitable_fallback(area, current_order,
> >> start_migratetype, false, &can_steal);
> >>
--
Michal Hocko
SUSE Labs
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH] mm/page_alloc.c: eliminate unsigned confusion in __rmqueue_fallback
2017-06-21 9:43 ` Michal Hocko
@ 2017-06-21 18:55 ` Rasmus Villemoes
2017-06-23 12:22 ` Michal Hocko
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Rasmus Villemoes @ 2017-06-21 18:55 UTC (permalink / raw)
To: Michal Hocko, Andrew Morton, Vlastimil Babka, Hillf Danton,
Johannes Weiner, Tetsuo Handa, Vinayak Menon, Xishi Qiu
Cc: Hao Lee, Rasmus Villemoes, linux-mm, linux-kernel
Since current_order starts as MAX_ORDER-1 and is then only
decremented, the second half of the loop condition seems
superfluous. However, if order is 0, we may decrement current_order
past 0, making it UINT_MAX. This is obviously too subtle ([1], [2]).
Since we need to add some comment anyway, change the two variables to
signed, making the counting-down for loop look more familiar, and
apparently also making gcc generate slightly smaller code.
[1] https://lkml.org/lkml/2016/6/20/493
[2] https://lkml.org/lkml/2017/6/19/345
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
---
Michal, something like this, perhaps?
mm/page_alloc.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 2302f250d6b1..e656f4da9772 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2204,19 +2204,23 @@ static bool unreserve_highatomic_pageblock(const struct alloc_context *ac,
* list of requested migratetype, possibly along with other pages from the same
* block, depending on fragmentation avoidance heuristics. Returns true if
* fallback was found so that __rmqueue_smallest() can grab it.
+ *
+ * The use of signed ints for order and current_order is a deliberate
+ * deviation from the rest of this file, to make the for loop
+ * condition simpler.
*/
static inline bool
-__rmqueue_fallback(struct zone *zone, unsigned int order, int start_migratetype)
+__rmqueue_fallback(struct zone *zone, int order, int start_migratetype)
{
struct free_area *area;
- unsigned int current_order;
+ int current_order;
struct page *page;
int fallback_mt;
bool can_steal;
/* Find the largest possible block of pages in the other list */
for (current_order = MAX_ORDER-1;
- current_order >= order && current_order <= MAX_ORDER-1;
+ current_order >= order;
--current_order) {
area = &(zone->free_area[current_order]);
fallback_mt = find_suitable_fallback(area, current_order,
--
2.11.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] mm/page_alloc.c: eliminate unsigned confusion in __rmqueue_fallback
2017-06-21 18:55 ` [PATCH] mm/page_alloc.c: eliminate unsigned confusion in __rmqueue_fallback Rasmus Villemoes
@ 2017-06-23 12:22 ` Michal Hocko
2017-06-23 13:10 ` Vlastimil Babka
2017-06-24 13:26 ` Wei Yang
2 siblings, 0 replies; 10+ messages in thread
From: Michal Hocko @ 2017-06-23 12:22 UTC (permalink / raw)
To: Rasmus Villemoes
Cc: Andrew Morton, Vlastimil Babka, Hillf Danton, Johannes Weiner,
Tetsuo Handa, Vinayak Menon, Xishi Qiu, Hao Lee, linux-mm,
linux-kernel
On Wed 21-06-17 20:55:28, Rasmus Villemoes wrote:
> Since current_order starts as MAX_ORDER-1 and is then only
> decremented, the second half of the loop condition seems
> superfluous. However, if order is 0, we may decrement current_order
> past 0, making it UINT_MAX. This is obviously too subtle ([1], [2]).
>
> Since we need to add some comment anyway, change the two variables to
> signed, making the counting-down for loop look more familiar, and
> apparently also making gcc generate slightly smaller code.
>
> [1] https://lkml.org/lkml/2016/6/20/493
> [2] https://lkml.org/lkml/2017/6/19/345
>
> Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
I would hope for a more consistent usage of the type but his alone
should prevent future attempts to "clean up" the code.
Acked-by: Michal Hocko <mhocko@suse.com>
> ---
> Michal, something like this, perhaps?
>
> mm/page_alloc.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 2302f250d6b1..e656f4da9772 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -2204,19 +2204,23 @@ static bool unreserve_highatomic_pageblock(const struct alloc_context *ac,
> * list of requested migratetype, possibly along with other pages from the same
> * block, depending on fragmentation avoidance heuristics. Returns true if
> * fallback was found so that __rmqueue_smallest() can grab it.
> + *
> + * The use of signed ints for order and current_order is a deliberate
> + * deviation from the rest of this file, to make the for loop
> + * condition simpler.
> */
> static inline bool
> -__rmqueue_fallback(struct zone *zone, unsigned int order, int start_migratetype)
> +__rmqueue_fallback(struct zone *zone, int order, int start_migratetype)
> {
> struct free_area *area;
> - unsigned int current_order;
> + int current_order;
> struct page *page;
> int fallback_mt;
> bool can_steal;
>
> /* Find the largest possible block of pages in the other list */
> for (current_order = MAX_ORDER-1;
> - current_order >= order && current_order <= MAX_ORDER-1;
> + current_order >= order;
> --current_order) {
> area = &(zone->free_area[current_order]);
> fallback_mt = find_suitable_fallback(area, current_order,
> --
> 2.11.0
>
--
Michal Hocko
SUSE Labs
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] mm/page_alloc.c: eliminate unsigned confusion in __rmqueue_fallback
2017-06-21 18:55 ` [PATCH] mm/page_alloc.c: eliminate unsigned confusion in __rmqueue_fallback Rasmus Villemoes
2017-06-23 12:22 ` Michal Hocko
@ 2017-06-23 13:10 ` Vlastimil Babka
2017-06-24 13:26 ` Wei Yang
2 siblings, 0 replies; 10+ messages in thread
From: Vlastimil Babka @ 2017-06-23 13:10 UTC (permalink / raw)
To: Rasmus Villemoes, Michal Hocko, Andrew Morton, Hillf Danton,
Johannes Weiner, Tetsuo Handa, Vinayak Menon, Xishi Qiu
Cc: Hao Lee, linux-mm, linux-kernel
On 06/21/2017 08:55 PM, Rasmus Villemoes wrote:
> Since current_order starts as MAX_ORDER-1 and is then only
> decremented, the second half of the loop condition seems
> superfluous. However, if order is 0, we may decrement current_order
> past 0, making it UINT_MAX. This is obviously too subtle ([1], [2]).
>
> Since we need to add some comment anyway, change the two variables to
> signed, making the counting-down for loop look more familiar, and
> apparently also making gcc generate slightly smaller code.
>
> [1] https://lkml.org/lkml/2016/6/20/493
> [2] https://lkml.org/lkml/2017/6/19/345
>
> Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
> ---
> Michal, something like this, perhaps?
>
> mm/page_alloc.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 2302f250d6b1..e656f4da9772 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -2204,19 +2204,23 @@ static bool unreserve_highatomic_pageblock(const struct alloc_context *ac,
> * list of requested migratetype, possibly along with other pages from the same
> * block, depending on fragmentation avoidance heuristics. Returns true if
> * fallback was found so that __rmqueue_smallest() can grab it.
> + *
> + * The use of signed ints for order and current_order is a deliberate
> + * deviation from the rest of this file, to make the for loop
> + * condition simpler.
> */
> static inline bool
> -__rmqueue_fallback(struct zone *zone, unsigned int order, int start_migratetype)
> +__rmqueue_fallback(struct zone *zone, int order, int start_migratetype)
> {
> struct free_area *area;
> - unsigned int current_order;
> + int current_order;
> struct page *page;
> int fallback_mt;
> bool can_steal;
>
> /* Find the largest possible block of pages in the other list */
> for (current_order = MAX_ORDER-1;
> - current_order >= order && current_order <= MAX_ORDER-1;
> + current_order >= order;
> --current_order) {
> area = &(zone->free_area[current_order]);
> fallback_mt = find_suitable_fallback(area, current_order,
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] mm/page_alloc.c: eliminate unsigned confusion in __rmqueue_fallback
2017-06-21 18:55 ` [PATCH] mm/page_alloc.c: eliminate unsigned confusion in __rmqueue_fallback Rasmus Villemoes
2017-06-23 12:22 ` Michal Hocko
2017-06-23 13:10 ` Vlastimil Babka
@ 2017-06-24 13:26 ` Wei Yang
2 siblings, 0 replies; 10+ messages in thread
From: Wei Yang @ 2017-06-24 13:26 UTC (permalink / raw)
To: Rasmus Villemoes
Cc: Michal Hocko, Andrew Morton, Vlastimil Babka, Hillf Danton,
Johannes Weiner, Tetsuo Handa, Vinayak Menon, Xishi Qiu, Hao Lee,
linux-mm, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 2285 bytes --]
On Wed, Jun 21, 2017 at 08:55:28PM +0200, Rasmus Villemoes wrote:
>Since current_order starts as MAX_ORDER-1 and is then only
>decremented, the second half of the loop condition seems
>superfluous. However, if order is 0, we may decrement current_order
>past 0, making it UINT_MAX. This is obviously too subtle ([1], [2]).
>
>Since we need to add some comment anyway, change the two variables to
>signed, making the counting-down for loop look more familiar, and
>apparently also making gcc generate slightly smaller code.
>
>[1] https://lkml.org/lkml/2016/6/20/493
>[2] https://lkml.org/lkml/2017/6/19/345
>
>Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
>---
>Michal, something like this, perhaps?
>
>mm/page_alloc.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
>diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>index 2302f250d6b1..e656f4da9772 100644
>--- a/mm/page_alloc.c
>+++ b/mm/page_alloc.c
>@@ -2204,19 +2204,23 @@ static bool unreserve_highatomic_pageblock(const struct alloc_context *ac,
> * list of requested migratetype, possibly along with other pages from the same
> * block, depending on fragmentation avoidance heuristics. Returns true if
> * fallback was found so that __rmqueue_smallest() can grab it.
>+ *
>+ * The use of signed ints for order and current_order is a deliberate
>+ * deviation from the rest of this file, to make the for loop
>+ * condition simpler.
> */
> static inline bool
>-__rmqueue_fallback(struct zone *zone, unsigned int order, int start_migratetype)
>+__rmqueue_fallback(struct zone *zone, int order, int start_migratetype)
> {
> struct free_area *area;
>- unsigned int current_order;
>+ int current_order;
> struct page *page;
> int fallback_mt;
> bool can_steal;
>
> /* Find the largest possible block of pages in the other list */
> for (current_order = MAX_ORDER-1;
>- current_order >= order && current_order <= MAX_ORDER-1;
>+ current_order >= order;
> --current_order) {
> area = &(zone->free_area[current_order]);
> fallback_mt = find_suitable_fallback(area, current_order,
>--
>2.11.0
Looks nice. Why I didn't come up with this change.
Acked-by: Wei Yang <weiyang@gmail.com>
--
Wei Yang
Help you, Help me
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2017-06-24 13:26 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-19 13:54 [PATCH] mm: remove a redundant condition in the for loop Hao Lee
2017-06-19 14:17 ` Vlastimil Babka
2017-06-19 19:05 ` Rasmus Villemoes
2017-06-19 20:23 ` Vlastimil Babka
2017-06-20 1:39 ` Hao Lee
2017-06-21 9:43 ` Michal Hocko
2017-06-21 18:55 ` [PATCH] mm/page_alloc.c: eliminate unsigned confusion in __rmqueue_fallback Rasmus Villemoes
2017-06-23 12:22 ` Michal Hocko
2017-06-23 13:10 ` Vlastimil Babka
2017-06-24 13:26 ` Wei Yang
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).