Re: [PATCH] Fix preemptible lazy mode bug

From: Rusty Russell
Date: Wed Sep 05 2007 - 16:38:22 EST


On Thu, 2007-08-23 at 22:46 -0700, Zachary Amsden wrote:
> I recently sent off a fix for lazy vmalloc faults which can happen under
> paravirt when lazy mode is enabled. Unfortunately, I jumped the gun a
> bit on fixing this. I neglected to notice that since the new call to
> flush the MMU update queue is called from the page fault handler, it can
> be pre-empted. Both VMI and Xen use per-cpu variables to track lazy
> mode state, as all previous calls to set, disable, or flush lazy mode
> happened from a non-preemptable state.

Hi Zach,

I don't think this patch does anything. The flush is because we want
the just-completed "set_pte" to have immediate effect, so if preempt is
enabled we're already screwed because we can be moved between set_pte
and the arch_flush_lazy_mmu_mode() call.

Now, where's the problem caller? By my reading or rc4, vmalloc faults
are fixed up before enabling interrupts.

Confused,
Rusty.


-
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/