Re: [PATCH 4/6] kvm tools: Add rwlock wrapper

Ingo Molnar
2011-05-27T13:31:38Z

* Mathieu Desnoyers <mathieu.desnoyers@efficios.com> wrote:

> I'm worried about "self-recursion" behaviors that could be
> triggered though: if the userland callback code called from a page
> fault triggers a page fault all by itself, then it looks like a
> good way to bring the system to its knees. [...]

Not really, SIGIO isnt being reprocessed until the signal handler
returns.

> [...] The same apply to context switches. Do you have a way to
> handle this in mind ?

Shouldnt be a problem in theory: yes, in case of repeat migrations
repeat signals will be sent, but they should not nest in any nasty
fashion.

That's the theory, it needs checking! :-)

One furthr optimization would be possible: in case you think we can
write the signal handler in assembly or build it with gcc flags that
does not use SSE we might also add a 'lightweight signal handler'
kind of flag to the kernel, which does not save FPU/vector-CPU(SSE)
state. In this case signals become *really* fast on x86, almost as
fast as interrupts.

One detail: you'd not want to use a queueing signal, because the
siginfo queue might overflow. It's also unnecessary: RCU only needs
the last migration event, previous history is uninteresting.

Thanks,

Ingo