On Tue, 2007-07-10 at 08:53 +0300, Avi Kivity wrote: > Rusty Russell wrote: > > No; this is a "I'm doing something magic and need to know before someone > > else takes the CPU". Almost by definition, you cannot have two of them > > at the same time. Let someone else try that if and when... > > Why can't you have two of them? Say I'm writing a module to utilize > branch recording to be able to debug a process in reverse (of course > that doesn't really need sched hooks; let's pretend it does). Why can't > I debug a process that uses kvm? > > More importantly, now the two subsystems have to know about each other > so they don't step on each other's toes.
Exactly, if we have two at the same time, they need to know about each other. Providing infrastructure which lets them avoid thinking about it is the wrong direction. > > But KVM-specific code in the scheduler is just wrong, and I think we all > > know that. > > Even if I eradicate all mention of kvm from the patch, it's still kvm > specific. kvm at least is sensitive to the exact point where we switch > in (it wants interrupts enabled) and it expects certain parameters to > the callbacks. If $new_abuser needs other conditions or parameters, > which is quite likely IMO as it will most likely have to do with > hardware, then we will need to update the hooks anyway. If it's not general, then this whole approach is wrong: put it in arch/*/kernel/process.c:__switch_to and finish_arch_switch. The congruent case which comes to mind is lazy FPU handling. Which brings us to the question: why do you want interrupts enabled? Cheers, Rusty. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/