Re: Add prefetch switch stack hook in scheduler function

Russell King
2005-07-29T09:02:57Z

On Fri, Jul 29, 2005 at 10:28:26AM +0200, Ingo Molnar wrote:
> @@ -2872,10 +2878,10 @@ go_idle:
> /*
> * Prefetch (at least) a cacheline below the current
> * kernel stack (in expectation of any new task touching
> - * the stack at least minimally), and a cacheline above
> - * the stack:
> + * the stack at least minimally), and at least a cacheline
> + * above the stack:
> */
> - prefetch_range(kernel_stack(next) - MIN_KERNEL_STACK_FOOTPRINT,
> + prefetch_range(kernel_stack(next) - L1_CACHE_BYTES,
> MIN_KERNEL_STACK_FOOTPRINT + L1_CACHE_BYTES);

This needs to ensure that we don't prefetch outside the page of the
kernel stack - otherwise we risk weird problems on architectures
which support prefetching but not DMA cache coherency.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core