User: Password:
Subscribe / Log in / New account

Reworking vmap()

Reworking vmap()

Posted Oct 27, 2008 9:02 UTC (Mon) by kleptog (subscriber, #1183)
Parent article: Reworking vmap()

I've often wondered why processer designers didn't include an instruction to invalidate TLB entires directly. Tagged TLB entries are nice but for stuff like this a simple "throw out any TLB entires relating to address X" would solve most of the problems, no?

(Log in to post comments)

Reworking vmap()

Posted Dec 31, 2008 19:03 UTC (Wed) by terminus (guest, #49129) [Link]

I believe there are instructions to flush particular TLB entries -- invlpg for one.

AFAICS the trouble in this case stems from the inefficiency of a global TLB flush. Post a vfree() you have changed some global state on your *local* CPU. However, the other remote TLBs don't know about this change in state and will happily resolve references to the vfree'd range unless told otherwise. Thus, the IPIs to inform them to flush TLB.

Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds