All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] cgroup: bug fixes for eventfd
@ 2013-02-02  6:50 ` Li Zefan
  0 siblings, 0 replies; 27+ messages in thread
From: Li Zefan @ 2013-02-02  6:50 UTC (permalink / raw)
  To: Tejun Heo; +Cc: LKML, Cgroups, Davide Libenzi, Aaron Durbin, Greg Thelen

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(-)

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2013-02-06 14:53 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-02  6:50 [PATCH 0/4] cgroup: bug fixes for eventfd Li Zefan
2013-02-02  6:50 ` 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   ` [PATCH 0/4] cgroup: bug fixes for eventfd Li Zefan
2013-02-02  6:59     ` Li Zefan
2013-02-04 19:27   ` Tejun Heo
2013-02-04 19:27     ` Tejun Heo
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

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.