Re: [PATCH 0/4] cgroup: bug fixes for eventfd

From: Li Zefan
Date: Sat Feb 02 2013 - 02:00:40 EST


(forgot to cc Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>, 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(-)
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/