Skip to contentSkip to conversation

initialise cpu_vm_mask in init_mm

PATCH New Anton Blanchard 1 participant 1 message Jan 21, 2004

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 initialise cpu_vm_mask in init_mm

Hi,

Some architectures use cpu_vm_mask to optimise TLB flushes. On ppc64 we are now using a common flush infrastructure that handles both userspace and kernelspace (vmalloc) pages. In order to avoid triggering this optimisation we need to mark the init mm as having scheduled on all cpus.

Things currently work by luck (we check for the cpu only having run on the local cpu, and the field is initialised to 0), but it would be safer to initialise it CPU_MASK_ALL.

Anton

===== include/linux/init_task.h 1.27 vs edited =====

include/linux/init_task.h +1 -0
@@ -40,6 +40,7 @@
 	.mmap_sem	= __RWSEM_INITIALIZER(name.mmap_sem),	\
 	.page_table_lock =  SPIN_LOCK_UNLOCKED, 		\
 	.mmlist		= LIST_HEAD_INIT(name.mmlist),		\
+	.cpu_vm_mask	= CPU_MASK_ALL,				\
 	.default_kioctx = INIT_KIOCTX(name.default_kioctx, name),	\
 }