Messages in this thread | | | Subject | Re: [PATCH] x86: Align TLB invalidation info | From | Nadav Amit <> | Date | Wed, 31 Jan 2018 12:52:29 -0800 |
| |
Dave Hansen <dave.hansen@linux.intel.com> wrote:
> On 01/31/2018 12:48 PM, Nadav Amit wrote: >>>> On Jan 31, 2018, at 12:11 PM, Nadav Amit <namit@vmware.com> wrote: >>>> >>>> The TLB invalidation info is allocated on the stack, which might cause >>>> it to be unaligned. Since this information may be transferred to >>>> different cores for TLB shootdown, this might result in an additional >>>> cache-line bouncing between the cores. >>>> >>>> GCC provides a way to deal with it by using >>>> __builtin_alloca_with_align(). Use it to avoid the bouncing cache lines. >>> Eww. How about __aligned? >> Err.. Stupid me. For some reason I remembered I tried it and it didn’t have >> the desired effect, which caused me to assume it does not work for variables >> on the stack. Anyhow, it does the work. I’ll submit v2. > > Also, just curious, but did you find this situation by inspection or did > it show up in a profile somewhere?
Actually, not. I considered adding data to info for a different reason (which eventually I deserted); I was assuming you will all kill me for increasing the size, so this was a preemption step.
| |