From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: Re: [PATCH 4/6] kvm tools: Add rwlock wrapper Date: Thu, 26 May 2011 19:19:03 +0300 Message-ID: <1306426743.3065.34.camel@lappy> References: <1306419950-19064-1-git-send-email-levinsasha928@gmail.com> <1306419950-19064-4-git-send-email-levinsasha928@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: john@jfloren.net, kvm@vger.kernel.org, mingo@elte.hu, asias.hejun@gmail.com, gorcunov@gmail.com, prasadjoshi124@gmail.com To: Pekka Enberg Return-path: Received: from mail-wy0-f174.google.com ([74.125.82.174]:32850 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932480Ab1EZQUy (ORCPT ); Thu, 26 May 2011 12:20:54 -0400 Received: by wya21 with SMTP id 21so636879wya.19 for ; Thu, 26 May 2011 09:20:53 -0700 (PDT) In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: On Thu, 2011-05-26 at 19:02 +0300, Pekka Enberg wrote: > On Thu, 26 May 2011, Sasha Levin wrote: > > Adds a rwlock wrapper which like the mutex wrapper makes rwlock calls > > similar to their kernel counterparts. > > > > Signed-off-by: Sasha Levin > > There's no explanation why a mutex isn't sufficient. The pthread locking > primitives aren't all that great in practice so unless you have some > correctness issue that requires a rwlock or some numbers, I'd prefer you > go for a mutex. I've added some rwlocks because of what Ingo said yesterday about adding/removing devices after the first initialization phase. Take MMIO lock for example: Since we can now run SMP guests, we may have multiple MMIO exits (one from each VCPU thread). Each of those exits leads to searching the MMIO rbtree. We can use a mutex to lock it, but it just means that those threads will be blocked there instead of concurrently searching the MMIO tree which makes the search linear instead of parallel. It's hard to bring 'real' numbers at this stage because the only 'real' device we have which uses MMIO is the VESA driver, and we can't really simulate many VCPUs writing to it :) -- Sasha.