Thanks for catching.global_flush_tlb() is not very common in the big scheme of things. In a normal system it only happens single threaded during X server startup and when the system starts. So while it's nasty it's unlikely to really hit people in practice. BTW while looking I noticed this code in the vermilion driver is also surely not correct: /* * Change caching policy of the linear kernel map to avoid * mapping type conflicts with user-space mappings. * The first global_flush_tlb() is really only there to do a global * wbinvd(). */ global_flush_tlb(); That is not what gft is guaranteed to do. It would be probably best to just do away with g_f_t() and fold it directly into c_p_a(). I've seen little evidence the delayed flush optimization ever made much difference and it seems to be misused and a source of bugs. And near all legitimate users seem to always call it directly after c_p_a() anyways. Besides it is grossly misnamed -- it does much more than flushing TLBs. -Andi -
| Amit K. Arora | [RFC] Heads up on sys_fallocate() |
| Linus Torvalds | Linux 2.6.23-rc9 and a heads-up for the 2.6.24 series.. |
| Paul Jackson | Re: cpuset-remove-sched-domain-hooks-from-cpusets |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
git: | |
| Linus Torvalds | Re: [GIT]: Networking |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | Re: [klibc] [patch] import socket defines |
