Re: Does CONFIG_PARAVIRT imply usage of byte locks?

From: Jeremy Fitzhardinge
Date: Sat Jan 10 2009 - 18:54:19 EST


Jiri Kosina wrote:
Hi,

in [1] Linus states that CONFIG_PARAVIRT implies usage of inferior locks.

Yes, he's wrong about that. In the normal case, the CONFIG_PARAVIRT case will continue to use the ticket-lock algorithm.

Looking at the code, I wonder whether are we in fact really using byte locks in CONFIG_PARAVIRT situation? Where are we actually setting pv_lock_ops.spin_lock pointer to point to __byte_spin_lock?

Such initialization seems to happen only in paravirt_use_bytelocks()
function, but my blind eyes prevent me from finding a callsite from which
this function would eventually get called.

It seems to me that paravirt_use_bytelocks() is a dead code that gets never called, and the same applies to the implementations of write locks. What did I miss?

Probably nothing. Xen has its own optimised spinlock implementation, and so doesn't use the plain byte locks. But ticket locks are awesomely bad for any virtual environment which doesn't gang schedule VCPUs, so the kvm folks would do well to at least consider using them.

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