From: Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
To: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Cgroups <cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Davide Libenzi <davidel-AhlLAIvw+VEjIGhXcJzhZg@public.gmane.org>,
Aaron Durbin <adurbin-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
Greg Thelen <gthelen-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
"Kirill A. Shutemov"
<kirill.shutemov-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Subject: Re: [PATCH 0/4] cgroup: bug fixes for eventfd
Date: Sat, 2 Feb 2013 14:59:47 +0800 [thread overview]
Message-ID: <510CB963.1020405@huawei.com> (raw)
In-Reply-To: <510CB733.2080904-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
(forgot to cc Kirill A. Shutemov <kirill.shutemov-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>, added)
On 2013/2/2 14:50, Li Zefan wrote:
> There're three bugs.
>
> - If thread A is removing a cgroup, while thread B is closing an eventfd, the
> two threads might free the same cgroup event and thus crash the kernel.
>
> This is fixed by patch #1 and patch #2.
>
> - If there're multiple threads are blocking in read() on the same eventfd,
> and someone removes the cgroup, only one thread will be notified and unblocked,
> and others won't be unblocked until those threads are killed.
>
> - If thread A is removing a cgroup, while thread B is registering a cgroup event
> and then read the eventfd, it might block until the thread is killed.
>
> These two are fixed by patch #3.
>
> 0001-eventfd-Introduce-eventfd_signal_hangup.patch
> 0002-cgroup-fix-cgroup_rmdir-vs-close-eventfd-race.patch
> 0003-eventfd-make-operations-on-eventfd-return-EIDRM-if-i.patch
> 0004-cgroup-adapt-to-the-new-way-of-detecting-cgroup-remo.patch
>
> --
> fs/eventfd.c | 30 ++++++++++++++++++++++++++++++
> include/linux/eventfd.h | 5 +++++
> kernel/cgroup.c | 30 ++++++++++++++++++------------
> tools/cgroup/cgroup_event_listener.c | 12 +++++-------
> 4 files changed, 58 insertions(+), 19 deletions(-)
>
WARNING: multiple messages have this Message-ID (diff)
From: Li Zefan <lizefan@huawei.com>
To: Tejun Heo <tj@kernel.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Cgroups <cgroups@vger.kernel.org>,
Davide Libenzi <davidel@xmailserver.org>,
Aaron Durbin <adurbin@google.com>,
Greg Thelen <gthelen@google.com>,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Subject: Re: [PATCH 0/4] cgroup: bug fixes for eventfd
Date: Sat, 2 Feb 2013 14:59:47 +0800 [thread overview]
Message-ID: <510CB963.1020405@huawei.com> (raw)
In-Reply-To: <510CB733.2080904@huawei.com>
(forgot to cc Kirill A. Shutemov <kirill.shutemov@linux.intel.com>, added)
On 2013/2/2 14:50, Li Zefan wrote:
> There're three bugs.
>
> - If thread A is removing a cgroup, while thread B is closing an eventfd, the
> two threads might free the same cgroup event and thus crash the kernel.
>
> This is fixed by patch #1 and patch #2.
>
> - If there're multiple threads are blocking in read() on the same eventfd,
> and someone removes the cgroup, only one thread will be notified and unblocked,
> and others won't be unblocked until those threads are killed.
>
> - If thread A is removing a cgroup, while thread B is registering a cgroup event
> and then read the eventfd, it might block until the thread is killed.
>
> These two are fixed by patch #3.
>
> 0001-eventfd-Introduce-eventfd_signal_hangup.patch
> 0002-cgroup-fix-cgroup_rmdir-vs-close-eventfd-race.patch
> 0003-eventfd-make-operations-on-eventfd-return-EIDRM-if-i.patch
> 0004-cgroup-adapt-to-the-new-way-of-detecting-cgroup-remo.patch
>
> --
> fs/eventfd.c | 30 ++++++++++++++++++++++++++++++
> include/linux/eventfd.h | 5 +++++
> kernel/cgroup.c | 30 ++++++++++++++++++------------
> tools/cgroup/cgroup_event_listener.c | 12 +++++-------
> 4 files changed, 58 insertions(+), 19 deletions(-)
>
next prev parent reply other threads:[~2013-02-02 6:59 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-02 6:50 [PATCH 0/4] cgroup: bug fixes for eventfd Li Zefan
2013-02-02 6:50 ` Li Zefan
2013-02-02 6:51 ` [PATCH 2/4] cgroup: fix cgroup_rmdir() vs close(eventfd) race Li Zefan
[not found] ` <510CB763.3020700-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-02-02 15:59 ` Kirill A. Shutemov
2013-02-02 15:59 ` Kirill A. Shutemov
2013-02-02 6:51 ` [PATCH 3/4] eventfd: make operations on eventfd return -EIDRM if it's hung up Li Zefan
2013-02-02 16:12 ` Kirill A. Shutemov
[not found] ` <20130202161229.GB12939-oKw7cIdHH8eLwutG50LtGA@public.gmane.org>
2013-02-04 3:15 ` Li Zefan
2013-02-04 3:15 ` Li Zefan
2013-02-02 6:51 ` [PATCH 4/4] cgroup: adapt to the new way of detecting cgroup removal Li Zefan
[not found] ` <510CB733.2080904-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-02-02 6:50 ` [PATCH 1/4] eventfd: introduce eventfd_signal_hangup() Li Zefan
2013-02-02 6:50 ` Li Zefan
[not found] ` <510CB744.7000300-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-02-02 15:58 ` Kirill A. Shutemov
2013-02-02 15:58 ` Kirill A. Shutemov
[not found] ` <20130202155858.GA13022-oKw7cIdHH8eLwutG50LtGA@public.gmane.org>
2013-02-04 10:15 ` Kirill A. Shutemov
2013-02-04 10:15 ` Kirill A. Shutemov
[not found] ` <20130204101521.GA18322-oKw7cIdHH8eLwutG50LtGA@public.gmane.org>
2013-02-05 3:40 ` Li Zefan
2013-02-05 3:40 ` Li Zefan
[not found] ` <51107F42.1090401-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-02-05 8:28 ` Kirill A. Shutemov
2013-02-05 8:28 ` Kirill A. Shutemov
2013-02-06 1:48 ` Li Zefan
[not found] ` <5111B664.5050606-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
2013-02-06 14:53 ` Kirill A. Shutemov
2013-02-06 14:53 ` Kirill A. Shutemov
2013-02-02 6:59 ` Li Zefan [this message]
2013-02-02 6:59 ` [PATCH 0/4] cgroup: bug fixes for eventfd Li Zefan
2013-02-04 19:27 ` Tejun Heo
2013-02-04 19:27 ` Tejun Heo
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=510CB963.1020405@huawei.com \
--to=lizefan-hv44wf8li93qt0dzr+alfa@public.gmane.org \
--cc=adurbin-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=davidel-AhlLAIvw+VEjIGhXcJzhZg@public.gmane.org \
--cc=gthelen-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=kirill.shutemov-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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.