diff mbox series

mm/vmstat: fix /proc/vmstat format for CONFIG_DEBUG_TLBFLUSH=y CONFIG_SMP=n

Message ID 155481488468.467.4295519102880913454.stgit@buzz (mailing list archive)
State New, archived
Headers show
Series mm/vmstat: fix /proc/vmstat format for CONFIG_DEBUG_TLBFLUSH=y CONFIG_SMP=n | expand

Commit Message

Konstantin Khlebnikov April 9, 2019, 1:01 p.m. UTC
Commit 58bc4c34d249 ("mm/vmstat.c: skip NR_TLB_REMOTE_FLUSH* properly")
depends on skipping vmstat entries with empty name introduced in commit
7aaf77272358 ("mm: don't show nr_indirectly_reclaimable in /proc/vmstat")
but reverted in commit b29940c1abd7 ("mm: rename and change semantics of
nr_indirectly_reclaimable_bytes").

So, skipping no longer works and /proc/vmstat has misformatted lines " 0".
This patch simply shows debug counters "nr_tlb_remote_*" for UP.

Fixes: 58bc4c34d249 ("mm/vmstat.c: skip NR_TLB_REMOTE_FLUSH* properly")
Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
---
 mm/vmstat.c |    5 -----
 1 file changed, 5 deletions(-)

Comments

Vlastimil Babka April 9, 2019, 1:16 p.m. UTC | #1
On 4/9/19 3:01 PM, Konstantin Khlebnikov wrote:
> Commit 58bc4c34d249 ("mm/vmstat.c: skip NR_TLB_REMOTE_FLUSH* properly")
> depends on skipping vmstat entries with empty name introduced in commit
> 7aaf77272358 ("mm: don't show nr_indirectly_reclaimable in /proc/vmstat")
> but reverted in commit b29940c1abd7 ("mm: rename and change semantics of
> nr_indirectly_reclaimable_bytes").

Oops, good catch.

> So, skipping no longer works and /proc/vmstat has misformatted lines " 0".
> This patch simply shows debug counters "nr_tlb_remote_*" for UP.

Right, that's the the best solution IMHO.

> Fixes: 58bc4c34d249 ("mm/vmstat.c: skip NR_TLB_REMOTE_FLUSH* properly")
> Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>

Acked-by: Vlastimil Babka <vbabka@suse.cz>

> ---
>  mm/vmstat.c |    5 -----
>  1 file changed, 5 deletions(-)
> 
> diff --git a/mm/vmstat.c b/mm/vmstat.c
> index 36b56f858f0f..a7d493366a65 100644
> --- a/mm/vmstat.c
> +++ b/mm/vmstat.c
> @@ -1274,13 +1274,8 @@ const char * const vmstat_text[] = {
>  #endif
>  #endif /* CONFIG_MEMORY_BALLOON */
>  #ifdef CONFIG_DEBUG_TLBFLUSH
> -#ifdef CONFIG_SMP
>  	"nr_tlb_remote_flush",
>  	"nr_tlb_remote_flush_received",
> -#else
> -	"", /* nr_tlb_remote_flush */
> -	"", /* nr_tlb_remote_flush_received */
> -#endif /* CONFIG_SMP */
>  	"nr_tlb_local_flush_all",
>  	"nr_tlb_local_flush_one",
>  #endif /* CONFIG_DEBUG_TLBFLUSH */
>
Konstantin Khlebnikov April 9, 2019, 1:28 p.m. UTC | #2
On 09.04.2019 16:16, Vlastimil Babka wrote:
> On 4/9/19 3:01 PM, Konstantin Khlebnikov wrote:
>> Commit 58bc4c34d249 ("mm/vmstat.c: skip NR_TLB_REMOTE_FLUSH* properly")
>> depends on skipping vmstat entries with empty name introduced in commit
>> 7aaf77272358 ("mm: don't show nr_indirectly_reclaimable in /proc/vmstat")
>> but reverted in commit b29940c1abd7 ("mm: rename and change semantics of
>> nr_indirectly_reclaimable_bytes").
> 
> Oops, good catch.

Also 4.19.y has broken format in /sys/devices/system/node/node*/vmstat and /proc/zoneinfo.
Do you have any plans on pushing related slab changes into that stable branch?

> 
>> So, skipping no longer works and /proc/vmstat has misformatted lines " 0".
>> This patch simply shows debug counters "nr_tlb_remote_*" for UP.
> 
> Right, that's the the best solution IMHO.
> 
>> Fixes: 58bc4c34d249 ("mm/vmstat.c: skip NR_TLB_REMOTE_FLUSH* properly")
>> Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
> 
> Acked-by: Vlastimil Babka <vbabka@suse.cz>
> 
>> ---
>>   mm/vmstat.c |    5 -----
>>   1 file changed, 5 deletions(-)
>>
>> diff --git a/mm/vmstat.c b/mm/vmstat.c
>> index 36b56f858f0f..a7d493366a65 100644
>> --- a/mm/vmstat.c
>> +++ b/mm/vmstat.c
>> @@ -1274,13 +1274,8 @@ const char * const vmstat_text[] = {
>>   #endif
>>   #endif /* CONFIG_MEMORY_BALLOON */
>>   #ifdef CONFIG_DEBUG_TLBFLUSH
>> -#ifdef CONFIG_SMP
>>   	"nr_tlb_remote_flush",
>>   	"nr_tlb_remote_flush_received",
>> -#else
>> -	"", /* nr_tlb_remote_flush */
>> -	"", /* nr_tlb_remote_flush_received */
>> -#endif /* CONFIG_SMP */
>>   	"nr_tlb_local_flush_all",
>>   	"nr_tlb_local_flush_one",
>>   #endif /* CONFIG_DEBUG_TLBFLUSH */
>>
>
Vlastimil Babka April 9, 2019, 2:43 p.m. UTC | #3
On 4/9/19 3:28 PM, Konstantin Khlebnikov wrote:
> On 09.04.2019 16:16, Vlastimil Babka wrote:
>> On 4/9/19 3:01 PM, Konstantin Khlebnikov wrote:
>>> Commit 58bc4c34d249 ("mm/vmstat.c: skip NR_TLB_REMOTE_FLUSH* properly")
>>> depends on skipping vmstat entries with empty name introduced in commit
>>> 7aaf77272358 ("mm: don't show nr_indirectly_reclaimable in /proc/vmstat")
>>> but reverted in commit b29940c1abd7 ("mm: rename and change semantics of
>>> nr_indirectly_reclaimable_bytes").
>> 
>> Oops, good catch.
> 
> Also 4.19.y has broken format in /sys/devices/system/node/node*/vmstat and /proc/zoneinfo.
> Do you have any plans on pushing related slab changes into that stable branch?

Hmm do you mean this?
https://lore.kernel.org/linux-mm/20181030174649.16778-1-guro@fb.com/

Looks like Roman marked it wrongly for # 4.14.x-4.18.x and I didn't notice, my
slab changes are indeed 4.20, so we should resend for 4.19.

>> 
>>> So, skipping no longer works and /proc/vmstat has misformatted lines " 0".
>>> This patch simply shows debug counters "nr_tlb_remote_*" for UP.
>> 
>> Right, that's the the best solution IMHO.
>> 
>>> Fixes: 58bc4c34d249 ("mm/vmstat.c: skip NR_TLB_REMOTE_FLUSH* properly")
>>> Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
>> 
>> Acked-by: Vlastimil Babka <vbabka@suse.cz>
>> 
>>> ---
>>>   mm/vmstat.c |    5 -----
>>>   1 file changed, 5 deletions(-)
>>>
>>> diff --git a/mm/vmstat.c b/mm/vmstat.c
>>> index 36b56f858f0f..a7d493366a65 100644
>>> --- a/mm/vmstat.c
>>> +++ b/mm/vmstat.c
>>> @@ -1274,13 +1274,8 @@ const char * const vmstat_text[] = {
>>>   #endif
>>>   #endif /* CONFIG_MEMORY_BALLOON */
>>>   #ifdef CONFIG_DEBUG_TLBFLUSH
>>> -#ifdef CONFIG_SMP
>>>   	"nr_tlb_remote_flush",
>>>   	"nr_tlb_remote_flush_received",
>>> -#else
>>> -	"", /* nr_tlb_remote_flush */
>>> -	"", /* nr_tlb_remote_flush_received */
>>> -#endif /* CONFIG_SMP */
>>>   	"nr_tlb_local_flush_all",
>>>   	"nr_tlb_local_flush_one",
>>>   #endif /* CONFIG_DEBUG_TLBFLUSH */
>>>
>> 
>
Konstantin Khlebnikov April 9, 2019, 3:14 p.m. UTC | #4
On 09.04.2019 17:43, Vlastimil Babka wrote:
> On 4/9/19 3:28 PM, Konstantin Khlebnikov wrote:
>> On 09.04.2019 16:16, Vlastimil Babka wrote:
>>> On 4/9/19 3:01 PM, Konstantin Khlebnikov wrote:
>>>> Commit 58bc4c34d249 ("mm/vmstat.c: skip NR_TLB_REMOTE_FLUSH* properly")
>>>> depends on skipping vmstat entries with empty name introduced in commit
>>>> 7aaf77272358 ("mm: don't show nr_indirectly_reclaimable in /proc/vmstat")
>>>> but reverted in commit b29940c1abd7 ("mm: rename and change semantics of
>>>> nr_indirectly_reclaimable_bytes").
>>>
>>> Oops, good catch.
>>
>> Also 4.19.y has broken format in /sys/devices/system/node/node*/vmstat and /proc/zoneinfo.
>> Do you have any plans on pushing related slab changes into that stable branch?
> 
> Hmm do you mean this?
> https://lore.kernel.org/linux-mm/20181030174649.16778-1-guro@fb.com/
> 
> Looks like Roman marked it wrongly for # 4.14.x-4.18.x and I didn't notice, my
> slab changes are indeed 4.20, so we should resend for 4.19.

Yep, this should fix zoneinfo
but /sys/devices/system/node/node*/vmstat needs yet another fix.

> 
>>>
>>>> So, skipping no longer works and /proc/vmstat has misformatted lines " 0".
>>>> This patch simply shows debug counters "nr_tlb_remote_*" for UP.
>>>
>>> Right, that's the the best solution IMHO.
>>>
>>>> Fixes: 58bc4c34d249 ("mm/vmstat.c: skip NR_TLB_REMOTE_FLUSH* properly")
>>>> Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
>>>
>>> Acked-by: Vlastimil Babka <vbabka@suse.cz>
>>>
>>>> ---
>>>>    mm/vmstat.c |    5 -----
>>>>    1 file changed, 5 deletions(-)
>>>>
>>>> diff --git a/mm/vmstat.c b/mm/vmstat.c
>>>> index 36b56f858f0f..a7d493366a65 100644
>>>> --- a/mm/vmstat.c
>>>> +++ b/mm/vmstat.c
>>>> @@ -1274,13 +1274,8 @@ const char * const vmstat_text[] = {
>>>>    #endif
>>>>    #endif /* CONFIG_MEMORY_BALLOON */
>>>>    #ifdef CONFIG_DEBUG_TLBFLUSH
>>>> -#ifdef CONFIG_SMP
>>>>    	"nr_tlb_remote_flush",
>>>>    	"nr_tlb_remote_flush_received",
>>>> -#else
>>>> -	"", /* nr_tlb_remote_flush */
>>>> -	"", /* nr_tlb_remote_flush_received */
>>>> -#endif /* CONFIG_SMP */
>>>>    	"nr_tlb_local_flush_all",
>>>>    	"nr_tlb_local_flush_one",
>>>>    #endif /* CONFIG_DEBUG_TLBFLUSH */
>>>>
>>>
>>
>
Roman Gushchin April 9, 2019, 7:25 p.m. UTC | #5
On Tue, Apr 09, 2019 at 04:43:24PM +0200, Vlastimil Babka wrote:
> On 4/9/19 3:28 PM, Konstantin Khlebnikov wrote:
> > On 09.04.2019 16:16, Vlastimil Babka wrote:
> >> On 4/9/19 3:01 PM, Konstantin Khlebnikov wrote:
> >>> Commit 58bc4c34d249 ("mm/vmstat.c: skip NR_TLB_REMOTE_FLUSH* properly")
> >>> depends on skipping vmstat entries with empty name introduced in commit
> >>> 7aaf77272358 ("mm: don't show nr_indirectly_reclaimable in /proc/vmstat")
> >>> but reverted in commit b29940c1abd7 ("mm: rename and change semantics of
> >>> nr_indirectly_reclaimable_bytes").
> >> 
> >> Oops, good catch.
> > 
> > Also 4.19.y has broken format in /sys/devices/system/node/node*/vmstat and /proc/zoneinfo.
> > Do you have any plans on pushing related slab changes into that stable branch?
> 
> Hmm do you mean this?
> https://lore.kernel.org/linux-mm/20181030174649.16778-1-guro@fb.com/
> 
> Looks like Roman marked it wrongly for # 4.14.x-4.18.x and I didn't notice, my
> slab changes are indeed 4.20, so we should resend for 4.19.

Oops, my bad. I believe 4.19 hasn't been released at that time, so I missed it.
Thanks for noticing!
diff mbox series

Patch

diff --git a/mm/vmstat.c b/mm/vmstat.c
index 36b56f858f0f..a7d493366a65 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -1274,13 +1274,8 @@  const char * const vmstat_text[] = {
 #endif
 #endif /* CONFIG_MEMORY_BALLOON */
 #ifdef CONFIG_DEBUG_TLBFLUSH
-#ifdef CONFIG_SMP
 	"nr_tlb_remote_flush",
 	"nr_tlb_remote_flush_received",
-#else
-	"", /* nr_tlb_remote_flush */
-	"", /* nr_tlb_remote_flush_received */
-#endif /* CONFIG_SMP */
 	"nr_tlb_local_flush_all",
 	"nr_tlb_local_flush_one",
 #endif /* CONFIG_DEBUG_TLBFLUSH */