Re: [PATCH] mm, page_alloc: drop pointless static qualifier in build_zonelists()
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()
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()
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()
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