Re: Add prefetch switch stack hook in scheduler function

From: Russell King
Date: Fri Jul 29 2005 - 04:05:19 EST


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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/