On Fri 07-07-17 16:37:23, Wei Yang wrote: > On Thu, Jul 06, 2017 at 08:56:50AM +0200, Michal Hocko wrote: > >> Below is a result with a little changed kernel to show the start_pfn > >> always. > >> The sequence is: > >> 1. bootup > >> > >> Node 0, zone Movable > >> spanned 65536 > >> present 0 > >> managed 0 > >> start_pfn: 0 > >> > >> 2. online movable 2 continuous memory_blocks > >> > >> Node 0, zone Movable > >> spanned 65536 > >> present 65536 > >> managed 65536 > >> start_pfn: 1310720 > >> > >> 3. offline 2nd memory_blocks > >> > >> Node 0, zone Movable > >> spanned 65536 > >> present 32768 > >> managed 32768 > >> start_pfn: 1310720 > >> > >> 4. offline 1st memory_blocks > >> > >> Node 0, zone Movable > >> spanned 65536 > >> present 0 > >> managed 0 > >> start_pfn: 1310720 > >> > >> So I am not sure this is still clearly defined? > > > >Could you be more specific what is not clearly defined? You have > >offlined all online memory blocks so present/managed is 0 while the > >spanned is unchanged because the zone is still defined in range > >[1310720, 1376256]. > > > > The zone is empty after remove these two memory blocks, while we still think > it is defined in range [1310720, 1376256].
Yes and present/managed shows that the zone is empty. It's range spans some range but there are no online pages. > This is what I want to point. As I've said several times already. This is somemething that _could_ be fixed but I would rather not to do so until there is a _readl_ usecase which would depend on it. Especially when we can online any memory block to the zone you like. We should really strive to reduce the amount of code rather than keep it just in case without anybody actually using it. -- Michal Hocko SUSE Labs