From: "Michael S. Tsirkin" <mst@redhat.com>
To: Asias He <asias@redhat.com>
Cc: kvm@vger.kernel.org, virtualization@lists.linux-foundation.org,
target-devel@vger.kernel.org,
Stefan Hajnoczi <stefanha@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [PATCH v7 1/3] tcm_vhost: Introduce tcm_vhost_check_feature()
Date: Thu, 18 Apr 2013 10:44:00 +0300 [thread overview]
Message-ID: <20130418074400.GH13787@redhat.com> (raw)
In-Reply-To: <20130418082521.GB13554@hj.localdomain>
On Thu, Apr 18, 2013 at 04:25:21PM +0800, Asias He wrote:
> On Thu, Apr 18, 2013 at 10:06:06AM +0300, Michael S. Tsirkin wrote:
> > On Thu, Apr 18, 2013 at 09:05:52AM +0800, Asias He wrote:
> > > This helper is useful to check if a feature is supported.
> > >
> > > Signed-off-by: Asias He <asias@redhat.com>
> > > Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> >
> > Why do we need the locking here by the way?
> > It seems features don't change while vhost
> > is running.
>
> See:
>
> static inline int vhost_has_feature(struct vhost_dev *dev, int bit)
> {
> unsigned acked_features;
>
> /* TODO: check that we are running from vhost_worker or dev mutex is
> * held? */
> acked_features = rcu_dereference_index_check(dev->acked_features, 1);
> return acked_features & (1 << bit);
> }
>
> We are accessing it outside the vhost_worker thread.
Hmm I see, we allow changing features on the fly, and the
reason is the LOG_ALL feature.
Okay ... do we ever call this from worker
thread? Because if we do, this will deadlock.
Maybe add a comment about this.
> > > ---
> > > drivers/vhost/tcm_vhost.c | 12 ++++++++++++
> > > 1 file changed, 12 insertions(+)
> > >
> > > diff --git a/drivers/vhost/tcm_vhost.c b/drivers/vhost/tcm_vhost.c
> > > index 957a0b9..88ebb79 100644
> > > --- a/drivers/vhost/tcm_vhost.c
> > > +++ b/drivers/vhost/tcm_vhost.c
> > > @@ -99,6 +99,18 @@ static int iov_num_pages(struct iovec *iov)
> > > ((unsigned long)iov->iov_base & PAGE_MASK)) >> PAGE_SHIFT;
> > > }
> > >
> > > +static bool tcm_vhost_check_feature(struct vhost_scsi *vs, int feature)
> > > +{
> > > + bool ret = false;
> > > +
> > > + mutex_lock(&vs->dev.mutex);
> > > + if (vhost_has_feature(&vs->dev, feature))
> > > + ret = true;
> > > + mutex_unlock(&vs->dev.mutex);
> > > +
> > > + return ret;
> > > +}
> > > +
> > > static int tcm_vhost_check_true(struct se_portal_group *se_tpg)
> > > {
> > > return 1;
> > > --
> > > 1.8.1.4
>
> --
> Asias
next prev parent reply other threads:[~2013-04-18 7:44 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-09 8:51 [PATCH v5 0/3] tcm_vhost hotplug Asias He
2013-04-09 8:51 ` [PATCH v5 1/3] tcm_vhost: Introduce tcm_vhost_check_feature() Asias He
2013-04-09 8:51 ` [PATCH v5 2/3] tcm_vhost: Add helper to check if endpoint is setup Asias He
2013-04-09 8:51 ` [PATCH v5 3/3] tcm_vhost: Add hotplug/hotunplug support Asias He
2013-04-12 23:10 ` [PATCH v5 0/3] tcm_vhost hotplug Nicholas A. Bellinger
2013-04-13 3:20 ` [PATCH v6 " Asias He
2013-04-13 3:20 ` [PATCH v6 1/3] tcm_vhost: Introduce tcm_vhost_check_feature() Asias He
2013-04-13 3:20 ` [PATCH v6 2/3] tcm_vhost: Add helper to check if endpoint is setup Asias He
2013-04-13 3:20 ` [PATCH v6 3/3] tcm_vhost: Add hotplug/hotunplug support Asias He
2013-04-13 3:20 ` Asias He
2013-04-14 8:53 ` [PATCH v5 0/3] tcm_vhost hotplug Michael S. Tsirkin
2013-04-17 13:17 ` Michael S. Tsirkin
2013-04-18 1:05 ` [PATCH v7 " Asias He
2013-04-18 7:36 ` Michael S. Tsirkin
2013-04-18 1:05 ` Asias He
2013-04-18 1:05 ` [PATCH v7 1/3] tcm_vhost: Introduce tcm_vhost_check_feature() Asias He
2013-04-18 7:06 ` Michael S. Tsirkin
2013-04-18 8:25 ` Asias He
2013-04-18 7:44 ` Michael S. Tsirkin [this message]
2013-04-18 7:06 ` Michael S. Tsirkin
2013-04-18 1:05 ` [PATCH v7 2/3] tcm_vhost: Add helper to check if endpoint is setup Asias He
2013-04-18 7:09 ` Michael S. Tsirkin
2013-04-18 8:32 ` Asias He
2013-04-18 7:38 ` Michael S. Tsirkin
2013-04-22 8:53 ` Asias He
2013-04-22 8:53 ` Asias He
2013-04-22 13:28 ` Michael S. Tsirkin
2013-04-22 15:00 ` Asias He
2013-04-22 16:21 ` Michael S. Tsirkin
2013-04-22 16:21 ` Michael S. Tsirkin
2013-04-18 1:05 ` Asias He
2013-04-18 1:05 ` [PATCH v7 3/3] tcm_vhost: Add hotplug/hotunplug support Asias He
2013-04-18 1:05 ` Asias He
2013-04-18 7:34 ` Michael S. Tsirkin
2013-04-18 8:59 ` Asias He
2013-04-18 8:21 ` Michael S. Tsirkin
2013-04-19 2:34 ` Asias He
2013-04-20 19:01 ` Michael S. Tsirkin
2013-04-22 9:20 ` Asias He
2013-04-22 13:17 ` Michael S. Tsirkin
2013-04-22 15:22 ` Asias He
2013-04-23 4:18 ` Rusty Russell
2013-04-23 4:45 ` Asias He
2013-04-18 1:09 ` [PATCH v5 0/3] tcm_vhost hotplug Asias He
2013-04-12 23:10 ` Nicholas A. Bellinger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130418074400.GH13787@redhat.com \
--to=mst@redhat.com \
--cc=asias@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=stefanha@redhat.com \
--cc=target-devel@vger.kernel.org \
--cc=virtualization@lists.linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.