Re: [PATCH] mm, page_alloc: drop pointless static qualifier in build_zonelists()

2019-10-08 Thread Michal Hocko
On Tue 08-10-19 19:06:57, Cristopher Lameter wrote:
> On Sat, 28 Sep 2019, Kaitao Cheng wrote:
> 
> > There is no need to make the 'node_order' variable static
> > since new value always be assigned before use it.
> 
> In the past MAX_NUMMNODES could become quite large like 512 or 1k. Large
> array allocations on the stack are problematic.
> 
> Maybe that is no longer the case?

CONFIG_NODES_SHIFT=10 is nothing really unusual in distribution kernels.
Likely wasteful for most HW available but a proper way to address it in
this particular case is to use a different data structure than drop the
static modifier which seems to be more of an misunderstanding than an
intention.
-- 
Michal Hocko
SUSE Labs


Re: [PATCH] mm, page_alloc: drop pointless static qualifier in build_zonelists()

2019-10-08 Thread Christopher Lameter
On Sat, 28 Sep 2019, Kaitao Cheng wrote:

> There is no need to make the 'node_order' variable static
> since new value always be assigned before use it.

In the past MAX_NUMMNODES could become quite large like 512 or 1k. Large
array allocations on the stack are problematic.

Maybe that is no longer the case?


Re: [PATCH] mm, page_alloc: drop pointless static qualifier in build_zonelists()

2019-09-27 Thread Dan Williams
On Fri, Sep 27, 2019 at 9:14 AM Kaitao Cheng  wrote:
>
> There is no need to make the 'node_order' variable static
> since new value always be assigned before use it.
>
> Signed-off-by: Kaitao Cheng 
> Signed-off-by: Muchun Song 
> ---
>  mm/page_alloc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 3334a769eb91..c473c304d09f 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -5597,7 +5597,7 @@ static void build_thisnode_zonelists(pg_data_t *pgdat)
>
>  static void build_zonelists(pg_data_t *pgdat)
>  {
> -   static int node_order[MAX_NUMNODES];
> +   int node_order[MAX_NUMNODES];

This isn't pointless. This prevents 4KB stack allocation which might overflow.


[PATCH] mm, page_alloc: drop pointless static qualifier in build_zonelists()

2019-09-27 Thread Kaitao Cheng
There is no need to make the 'node_order' variable static
since new value always be assigned before use it.

Signed-off-by: Kaitao Cheng 
Signed-off-by: Muchun Song 
---
 mm/page_alloc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 3334a769eb91..c473c304d09f 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -5597,7 +5597,7 @@ static void build_thisnode_zonelists(pg_data_t *pgdat)
 
 static void build_zonelists(pg_data_t *pgdat)
 {
-   static int node_order[MAX_NUMNODES];
+   int node_order[MAX_NUMNODES];
int node, load, nr_nodes = 0;
nodemask_t used_mask;
int local_node, prev_node;
-- 
2.20.1