Re: Linux and the L1/L2 caches

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 22-10-08 11:25, Ray Kinsella wrote:

I have a process that fork's itself into 10 sub-processes, all of which are very active, CPU usage is about 85%. The system I am using has a very small L1/L2 cache that is being trashed by the processes's working set moving in and out of cache. I am worried about cache line conflicts. Is there anyway to instruct the Linux virtual memory manager to spread these processes out
over physical memory so as to reduce cache line conflicts ?

Well, do please allow for a possibly more directly informed reply but the definition of process here would seem to make the answer a simple "no" regardless.

What you are referring to in general is cache colouring; something which the older Linux SLAB allocator supports and the newer SLUB and SLOB allocators do not. An inquiry as to why a while ago got answered as:

http://kerneltrap.org/mailarchive/linux-kernel/2008/8/4/2815224

which makes sense. So what's your cache organization? On something very associative in the first place cache colouring ofcourse doesn't bring you much.

But, regardless, with the definition here of process as "working set" colouring seems rather unmanageable anyway.

From a narrow kernel viewpoint a process could be sort of defined as its task_struct and colouring that one was in fact one of the original uses of the colouring feature (the task_struct used to be 8K aligned at stack bottom which makes for certainly non-optimized cache behaviour; 2.5 moving them of the stack then allowed for colouring) but as a kernel, you don't allocate "a working set" as an identifiable unit; it just sits around at whatever offset the compiler decided to put it at. Same thing holds for dynamic allocations sort of; malloc(n) is a library interface that doesn't (for small n) translate directly into a syscall.

So, well, just "no" it seems. And, perhaps other than in the context of micro-optimizing a long-running calculations on a clumsy direct mapped cache, I do believe you shouldn't really worry about it.

Rene.

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux