Re: [PATCH 6/6] kvm tools: Protect IOPORT tree by rwsem

Sasha Levin
2011-05-26T16:26:18Z

On Thu, 2011-05-26 at 19:01 +0300, Pekka Enberg wrote:
> On Thu, 26 May 2011, Sasha Levin wrote:
> > Makes ioport thread-safe.
> >
> > Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
> > ---
> > tools/kvm/ioport.c | 7 +++++++
> > 1 files changed, 7 insertions(+), 0 deletions(-)
> >
> > diff --git a/tools/kvm/ioport.c b/tools/kvm/ioport.c
> > index 1f13960..db9ff0f 100644
> > --- a/tools/kvm/ioport.c
> > +++ b/tools/kvm/ioport.c
> > @@ -3,6 +3,7 @@
> > #include "kvm/kvm.h"
> > #include "kvm/util.h"
> > #include "kvm/rbtree-interval.h"
> > +#include "kvm/rwsem.h"
> >
> > #include <linux/kvm.h> /* for KVM_EXIT_* */
> > #include <linux/types.h>
> > @@ -22,6 +23,7 @@ struct ioport_entry {
> >
> > static struct rb_root ioport_tree = RB_ROOT;
> > bool ioport_debug;
> > +static DECLARE_RWSEM(ioport_tree_sem);
>
> Why do we need a new lock here? Can't we reuse the new ioport_mutex?

ioport_mutex is used for allocations of ioports to devices, this lock is
intended to protect the ioport tree from being read while new devices
are added.

--

Sasha.