From: David Miller <davem@davemloft.net>
To: gregkh@linuxfoundation.org
Cc: mst@redhat.com, linux-kernel@vger.kernel.org,
jasowang@redhat.com, virtio-dev@lists.oasis-open.org,
virtualization@lists.linux-foundation.org,
netdev@vger.kernel.org, qinchuanyu@huawei.com, joern@logfs.org,
anatol.pomozov@gmail.com, nab@linux-iscsi.org
Subject: Re: [PATCH net 1/3] kref: add kref_sub_return
Date: Wed, 12 Feb 2014 23:09:53 -0500 (EST) [thread overview]
Message-ID: <20140212.230953.770721407102955395.davem@davemloft.net> (raw)
In-Reply-To: <20140212.230506.1305102368255894549.davem@davemloft.net>
From: David Miller <davem@davemloft.net>
Date: Wed, 12 Feb 2014 23:05:06 -0500 (EST)
> From: Greg KH <gregkh@linuxfoundation.org>
> Date: Wed, 12 Feb 2014 17:39:02 -0800
>
>> Yes, that's horrible as well, but as was already pointed out in this
>> thread, you can't rely on that value to really be "1" after reading it
>> due to the way krefs work, what happened if someone else just grabbed
>> it?
>>
>> If all they want is a "count" for when to start polling, then use a
>> separate atomic count, but don't abuse the kref interface for this, I
>> don't think that will work properly at all.
>
> They want to know which thread of control decrements the count to "1"
> as buffers are released.
>
> That seems entirely reasonable to me.
>
> They could add another atomic counter for this, but that's rather
> silly since the kref already has an atomic they can use for this
> purpose.
If you still can't understand what they are trying to do, they want to
do something precisely when the number of pending buffers is dropped
to 1 or less.
They are using krefs to track how many buffers are attached at a given
moment.
The counter can re-increment after the decrement to 1 or less occurs,
they don't care.
But they want precisely the entity that drops it down to 1 or less to
perform that action.
Just reading the atomic value directly, they cannot do this.
next prev parent reply other threads:[~2014-02-13 4:10 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-12 16:37 [PATCH net 0/3] vhost fixes for 3.14, -stable Michael S. Tsirkin
2014-02-12 16:36 ` [PATCH net 3/3] vhost: fix a theoretical race in device cleanup Michael S. Tsirkin
2014-02-12 16:38 ` [PATCH net 2/3] vhost: fix ref cnt checking deadlock Michael S. Tsirkin
2014-02-12 16:38 ` [PATCH net 1/3] kref: add kref_sub_return Michael S. Tsirkin
2014-02-12 16:56 ` Greg Kroah-Hartman
2014-02-12 17:35 ` Michael S. Tsirkin
2014-02-12 18:37 ` Greg Kroah-Hartman
2014-02-12 18:39 ` Anatol Pomozov
2014-02-13 0:06 ` David Miller
2014-02-13 1:25 ` Jörn Engel
2014-02-13 1:39 ` Greg KH
2014-02-13 4:05 ` David Miller
2014-02-13 4:09 ` David Miller [this message]
2014-02-14 0:03 ` Greg KH
2014-02-14 5:10 ` David Miller
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=20140212.230953.770721407102955395.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=anatol.pomozov@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=jasowang@redhat.com \
--cc=joern@logfs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
--cc=nab@linux-iscsi.org \
--cc=netdev@vger.kernel.org \
--cc=qinchuanyu@huawei.com \
--cc=virtio-dev@lists.oasis-open.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®