Message ID | 1499863221-16206-8-git-send-email-wei.w.wang@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Jul 12, 2017 at 08:40:20PM +0800, Wei Wang wrote: > This patch enables for_each_zone()/for_each_populated_zone() to be > invoked by a kernel module. ... for use by virtio balloon. > Signed-off-by: Wei Wang <wei.w.wang@intel.com> balloon seems to only use + for_each_populated_zone(zone) + for_each_migratetype_order(order, type) > --- > mm/mmzone.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/mm/mmzone.c b/mm/mmzone.c > index a51c0a6..08a2a3a 100644 > --- a/mm/mmzone.c > +++ b/mm/mmzone.c > @@ -13,6 +13,7 @@ struct pglist_data *first_online_pgdat(void) > { > return NODE_DATA(first_online_node); > } > +EXPORT_SYMBOL_GPL(first_online_pgdat); > > struct pglist_data *next_online_pgdat(struct pglist_data *pgdat) > { > @@ -41,6 +42,7 @@ struct zone *next_zone(struct zone *zone) > } > return zone; > } > +EXPORT_SYMBOL_GPL(next_zone); > > static inline int zref_in_nodemask(struct zoneref *zref, nodemask_t *nodes) > { > -- > 2.7.4
On 07/13/2017 08:16 AM, Michael S. Tsirkin wrote: > On Wed, Jul 12, 2017 at 08:40:20PM +0800, Wei Wang wrote: >> This patch enables for_each_zone()/for_each_populated_zone() to be >> invoked by a kernel module. > ... for use by virtio balloon. With this patch, other kernel modules can also use the for_each_zone(). Would it be better to claim it broader? > >> Signed-off-by: Wei Wang <wei.w.wang@intel.com> > balloon seems to only use > + for_each_populated_zone(zone) > + for_each_migratetype_order(order, type) > Yes. using for_each_populated_zone() requires the following export. Best, Wei >> --- >> mm/mmzone.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/mm/mmzone.c b/mm/mmzone.c >> index a51c0a6..08a2a3a 100644 >> --- a/mm/mmzone.c >> +++ b/mm/mmzone.c >> @@ -13,6 +13,7 @@ struct pglist_data *first_online_pgdat(void) >> { >> return NODE_DATA(first_online_node); >> } >> +EXPORT_SYMBOL_GPL(first_online_pgdat); >> >> struct pglist_data *next_online_pgdat(struct pglist_data *pgdat) >> { >> @@ -41,6 +42,7 @@ struct zone *next_zone(struct zone *zone) >> } >> return zone; >> } >> +EXPORT_SYMBOL_GPL(next_zone); >> >> static inline int zref_in_nodemask(struct zoneref *zref, nodemask_t *nodes) >> { >> -- >> 2.7.4 > --------------------------------------------------------------------- > To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org > For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org >
On Wed 12-07-17 20:40:20, Wei Wang wrote: > This patch enables for_each_zone()/for_each_populated_zone() to be > invoked by a kernel module. This needs much better justification with an example of who is going to use these symbols and what for. > Signed-off-by: Wei Wang <wei.w.wang@intel.com> > --- > mm/mmzone.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/mm/mmzone.c b/mm/mmzone.c > index a51c0a6..08a2a3a 100644 > --- a/mm/mmzone.c > +++ b/mm/mmzone.c > @@ -13,6 +13,7 @@ struct pglist_data *first_online_pgdat(void) > { > return NODE_DATA(first_online_node); > } > +EXPORT_SYMBOL_GPL(first_online_pgdat); > > struct pglist_data *next_online_pgdat(struct pglist_data *pgdat) > { > @@ -41,6 +42,7 @@ struct zone *next_zone(struct zone *zone) > } > return zone; > } > +EXPORT_SYMBOL_GPL(next_zone); > > static inline int zref_in_nodemask(struct zoneref *zref, nodemask_t *nodes) > { > -- > 2.7.4 > > -- > 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>
diff --git a/mm/mmzone.c b/mm/mmzone.c index a51c0a6..08a2a3a 100644 --- a/mm/mmzone.c +++ b/mm/mmzone.c @@ -13,6 +13,7 @@ struct pglist_data *first_online_pgdat(void) { return NODE_DATA(first_online_node); } +EXPORT_SYMBOL_GPL(first_online_pgdat); struct pglist_data *next_online_pgdat(struct pglist_data *pgdat) { @@ -41,6 +42,7 @@ struct zone *next_zone(struct zone *zone) } return zone; } +EXPORT_SYMBOL_GPL(next_zone); static inline int zref_in_nodemask(struct zoneref *zref, nodemask_t *nodes) {
This patch enables for_each_zone()/for_each_populated_zone() to be invoked by a kernel module. Signed-off-by: Wei Wang <wei.w.wang@intel.com> --- mm/mmzone.c | 2 ++ 1 file changed, 2 insertions(+)