> Date: Thu, 19 Aug 2010 14:20:08 +0800
> From: LionSky <[email protected]>
> Subject: High TLB Shootdowns interrupt
> To: [email protected]
> Message-ID:
>        <[email protected]>
> Content-Type: text/plain; charset=ISO-8859-1
>
> Hi all,
> Recently, I used PowerTop to tune an workload power behavior, but
> found a new interrupt(TLB shootdowns) from its wakeups list as
> follows:
>
> Top causes for wakeups:
>  66.2% (1806.2)   [     0] [kernel scheduler] Load balancing tick
>  16.5% (451.1)   [      ] [TLB shootdowns] <kernel IPI>
>   9.8% (267.7)D  [      ] chrome
>   4.5% (121.5)   [      ] [Rescheduling interrupts] <kernel IPI>
>   1.7% ( 46.9)   [      ] [hda_intel] <interrupt>
>   0.8% ( 23.2)   [      ] [i915] <interrupt>
>   0.0% (  0.1)D  [    78] btrfs-transacti
>   0.2% (  4.9)   [   737] syndaemon
>   0.1% (  1.9)   [      ] [ahci] <interrupt>
>
> There is about 450 TLB shootdowns interrupt per second, so high. ..
> I searched google  for help, but only found what is TLB shootdowns:
> "A TLB Shootdown occurs when a process restricts access to a page in
> shared memory and must interrupt processes using that memory space on
> other processors so they flush their TLB tables"
>
> I have no idea whether "TLB shootdowns" interrupt has any impact on
> power, or even workload's performance.
> Do anyone have some idea about that?
>
>
> Thanks a lot~~
>
>
>
> ------------------------------
>
> Message: 2
> Date: Thu, 19 Aug 2010 09:38:21 -0700
> From: Auke Kok <[email protected]>
> Subject: Re: High TLB Shootdowns interrupt
> To: LionSky <[email protected]>
> Cc: "[email protected]" <[email protected]>
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> On 08/18/2010 11:20 PM, LionSky wrote:
>> Hi all,
>> Recently, I used PowerTop to tune an workload power behavior, but
>> found a new interrupt(TLB shootdowns) from its wakeups list as
>> follows:
>>
>> Top causes for wakeups:
>>    66.2% (1806.2)   [     0] [kernel scheduler] Load balancing tick
>>    16.5% (451.1)   [      ] [TLB shootdowns]<kernel IPI>
>>     9.8% (267.7)D  [      ] chrome
>>     4.5% (121.5)   [      ] [Rescheduling interrupts]<kernel IPI>
>>     1.7% ( 46.9)   [      ] [hda_intel]<interrupt>
>>     0.8% ( 23.2)   [      ] [i915]<interrupt>
>>     0.0% (  0.1)D  [    78] btrfs-transacti
>>     0.2% (  4.9)   [   737] syndaemon
>>     0.1% (  1.9)   [      ] [ahci]<interrupt>
>>
>> There is about 450 TLB shootdowns interrupt per second, so high. ..
>> I searched google  for help, but only found what is TLB shootdowns:
>> "A TLB Shootdown occurs when a process restricts access to a page in
>> shared memory and must interrupt processes using that memory space on
>> other processors so they flush their TLB tables"
>>
>> I have no idea whether "TLB shootdowns" interrupt has any impact on
>> power, or even workload's performance.
>> Do anyone have some idea about that?
>
> TLB shootdowns are caused by an application in essence, and will indeed
> cause an impact on power. The most likely culprit is some memory-hungry
> application(chrome?) forcing pages to be swapped out (or something
> similar) that were shared between cores, and so each core now needs to
> update, keeping them out of a deeper C-state.
>
> Auke
>
Thanks~
I checked memory footprint and found that memory is not bottleneck and
there is not any swap operation during workload running.
But I found some things thru workload profiling.  A library
implemented memory management itself and identified two api:
MemoryAllocate() and MemoryFree().
The following is some call graphs which have something to do with TLB.

                     --- flush_tlb_others_ipi
                         flush_tlb_mm
                        |
                        |--88.89%-- unmap_vmas
                        |          unmap_region
                        |          do_munmap
                        |          sys_munmap
                        |          sysenter_do_call
                        |          0xb77c4424
                        |          MemoryServices::MemoryFree(void*)


                        |          |           --50.00%-- flush_tlb_mm
                        |          |                     zap_page_range
                        |          |                     sys_madvise
                        |          |                     sysenter_do_call
                        |          |                     0xb77c4424
                        |          |
MemoryServices::MemoryFree(void*)


                    --20.00%-- flush_tlb_mm
                                   mprotect_fixup
                                   sys_mprotect
                                   sysenter_do_call
                                   0xb77c4424
                                   0xb762910a
                                   __libc_malloc
                                   malloc
                                  MemoryServices::MemoryAllocate(unsigned int)


Do these operations lead to high "TLB shootdowns" interrupt?

_______________________________________________
Power mailing list
[email protected]
http://www.bughost.org/mailman/listinfo/power

Reply via email to