On Thu 11-04-13 10:10:44, Mel Gorman wrote: > On Wed, Apr 10, 2013 at 03:28:32PM -0700, dormando wrote: > > > On Tue, Apr 09, 2013 at 05:27:18PM +0000, Christoph Lameter wrote: > > > > One additional measure that may be useful is to make kswapd prefer one > > > > specific processor on a socket. Two benefits arise from that: > > > > > > > > 1. Better use of cpu caches and therefore higher speed, less > > > > serialization. > > > > > > > > > > Considering the volume of pages that kswapd can scan when it's active > > > I would expect that it trashes its cache anyway. The L1 cache would be > > > flushed after scanning struct pages for just a few MB of memory. > > > > > > > 2. Reduction of the disturbances to one processor. > > > > > > > > > > I've never checked it but I would have expected kswapd to stay on the > > > same processor for significant periods of time. Have you experienced > > > problems where kswapd bounces around on CPUs within a node causing > > > workload disruption? > > > > When kswapd shares the same CPU as our main process it causes a measurable > > drop in response time (graphs show tiny spikes at the same time memory is > > freed). Would be nice to be able to ensure it runs on a different core > > than our latency sensitive processes at least. We can pin processes to > > subsets of cores but I don't think there's a way to keep kswapd from > > waking up on any of them? > > I've never tried it myself but does the following work? > > taskset -p MASK `pidof kswapd` I would use pgrep rather than pidof which seem to need the whole process name but yes this should work as kswapdN is not PF_THREAD_BOUND kernel thread. -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>