Re: [PATCH 2/2] x86: implement multiple queues for smp function call IPIs

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Ingo Molnar
Date: Thursday, July 31, 2008 - 3:42 pm

* Jeremy Fitzhardinge <jeremy@goop.org> wrote:


Yes on the 64-bit side we've had NUM_INVALIDATE_TLB_VECTORS (==8) for a 
long time, but note that 64-bit is obviously for more modern CPUs. What 
i'm mindful about (i'm not _that_ worried) are fragile APICs and unknown 
erratas.

The other issue is that the concurrency pattern changes somewhat and 
becomes more agressive. The existing 64-bit special-purpose TLB flush 
code uses in essence synchronous waiting for that specific IPI that 
belongs to that CPU, it sends the IPI then waits for the acknowledgement 
by polling the flush mask:

        send_IPI_mask(cpumask, INVALIDATE_TLB_VECTOR_START + sender);

        while (!cpus_empty(f->flush_cpumask))
                cpu_relax();

while with generic IPIs we could have asynchronous IPIs as well.

So with the TLB flush code there's never any true "multiple outstanding 
IPIs" scenario for the same IPI, for 8 CPUs and fewer. (which is the 
predominant majority of existing hardware)


i'd suggest we keep it at the current simple modulo rule.

	Ingo
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 2/2] x86: implement multiple queues for smp functio ..., Jeremy Fitzhardinge, (Tue Jul 29, 4:32 pm)
Re: [PATCH 2/2] x86: implement multiple queues for smp fun ..., Jeremy Fitzhardinge, (Tue Jul 29, 4:43 pm)
Re: [PATCH 2/2] x86: implement multiple queues for smp fun ..., Jeremy Fitzhardinge, (Tue Jul 29, 5:44 pm)
Re: [PATCH 2/2] x86: implement multiple queues for smp fun ..., Jeremy Fitzhardinge, (Thu Jul 31, 3:23 pm)
Re: [PATCH 2/2] x86: implement multiple queues for smp fun ..., Ingo Molnar, (Thu Jul 31, 3:42 pm)
Re: [PATCH 2/2] x86: implement multiple queues for smp fun ..., Jeremy Fitzhardinge, (Thu Jul 31, 9:58 pm)