smp invlpg interrupt

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re:smp invlpg interrupt

Post by Brendan »

Hi,
Rob wrote:Why don't you need an IPI for an application with a single thread? Could that thread not be scheduled to run on a different CPU when its next slice comes up? Or is a thread always bound to a specific cpu?
I'm assuming that a CPU won't modify the address space of an application or thread that it is not currently running. This would imply that if the CPU is running the application/thread then it is the only CPU that is using TLB entries that apply to it's address space.

There are situations where this isn't the case. The most obvious one is shared memory areas (i.e. shared between processes).

There are also some methods of handling swap space and memory mapped files that could require the IPI - specifically, swapping pages out and freeing pages from memory mapped files that haven't been modified (if the changes are made by CPU/s that aren't using the address space being modified).


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Post Reply