From patchwork Thu Dec 20 15:20:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Remy Noel X-Patchwork-Id: 1016829 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=blade-group.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=blade-group.com header.i=@blade-group.com header.b="DYLuTl4T"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43LFnv2mPTz9s7W for ; Fri, 21 Dec 2018 02:20:51 +1100 (AEDT) Received: from localhost ([::1]:38167 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ga081-0006eg-1p for incoming@patchwork.ozlabs.org; Thu, 20 Dec 2018 10:20:49 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53350) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ga07Y-0006dB-IV for qemu-devel@nongnu.org; Thu, 20 Dec 2018 10:20:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ga07V-0005mL-BA for qemu-devel@nongnu.org; Thu, 20 Dec 2018 10:20:20 -0500 Received: from mail-ed1-x543.google.com ([2a00:1450:4864:20::543]:33067) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ga07U-0005j5-Vh for qemu-devel@nongnu.org; Thu, 20 Dec 2018 10:20:17 -0500 Received: by mail-ed1-x543.google.com with SMTP id p6so2083740eds.0 for ; Thu, 20 Dec 2018 07:20:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=blade-group.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=asrpOVR7FdIAjNGiO4f84xXmuj/Z+CYVLacNhF7Do1Q=; b=DYLuTl4TqGT/dWHA826GOqjdMeLCQc4O+7oIHGm9qpdxM1xPSzJxbiEGY2qfglmGex RJ7GlXkRPr/awtuyGBOLyXKbldkgyfWAVuVLr7tiGeEpso67Uf76nUvl+/7nEHPLoCXs 1yBoOxFevHlSp4+SIqiSlO2jaI3uvnibX1dH3T4YAgZX84YeWrzEFUXqmCGrYoyY3wNK K0zQ1T7IOkR+t+mZ+2fb+9av7DSu+ohima/eHIi4QcCbUX7tgIEsS2sO2lW09i8NQv1X /QBVAPoTsaN3XZfdxRl/9N0/Y7QEZn3JkXhrMN1Nz8QestfNh4AzV8Z5emp45diG5THD bf9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=asrpOVR7FdIAjNGiO4f84xXmuj/Z+CYVLacNhF7Do1Q=; b=Ru44zVAhJYCZex+BZPkGmU6SaI40uISZfuy5Kjd3sC6jLon3sxSDiS6au+n0rYYWRE 1VzTW9SfDaPMfjtG6lqf97InlHc067Yf6SQXfzDmKPrjwjkSTtv+0YnM2t3zWesz5pJj yQ8G3pTOY8XxylYluaj48o9OaEmA/i8srMgeyAIFwGOlEwnpS6BKhqR5fJ7vpau7DkPi af3QcEiAjJTjL5bnPhlY/nmZ6maNLJXWtG5MLun0cDd5194M6MYZ9jeQCJZ5edIlHmG5 clZD5x68vKQgFGcLp5oA82/G5/jQ4gkGmP4rNCZDf9xpFQmL7Z61dz0zMo3BmNCjKEZl TfDg== X-Gm-Message-State: AA+aEWaYL9WD1Zso//KtasbKNFuj8YygITmOQv/r0yGPLcsnR0gPvNau 3qEBL1YXfCmMioEsh+qBmqEMGKuhFP/ULQ== X-Google-Smtp-Source: AFSGD/Vh2CJueBbHqZY36kcj89d0BhH8QieuSLbdNFm6gWHKToAWbJgU239Vg8LRQLfxqmB/61y5dw== X-Received: by 2002:a50:8e16:: with SMTP id 22mr17303122edw.269.1545319215527; Thu, 20 Dec 2018 07:20:15 -0800 (PST) Received: from mocramis-ultrabook.localdomain ([178.208.16.32]) by smtp.gmail.com with ESMTPSA id f35sm6606853edd.80.2018.12.20.07.20.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 20 Dec 2018 07:20:14 -0800 (PST) From: remy.noel@blade-group.com To: qemu-devel@nongnu.org Date: Thu, 20 Dec 2018 16:20:28 +0100 Message-Id: <20181220152030.28035-1-remy.noel@blade-group.com> X-Mailer: git-send-email 2.19.2 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::543 Subject: [Qemu-devel] [QEMU-devel][PATCH v4 0/2] Fix concurrent aio_poll/set_fd_handler. X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , Remy Noel , Fam Zheng , Stefan Hajnoczi , Stefan Weil Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Remy Noel It is possible for an io_poll/read/write callback to be concurrently executed along with an aio_set_fd_handlers. This can cause all sorts of problems, like a NULL callback or a bad opaque pointer. V2: * Do not use RCU anymore as it inccurs a performance loss V3: * Don't drop revents when a handler is modified [Stefan] V4: * Unregister fd from ctx epoll when removing fd_handler [Paolo] Remy Noel (2): aio-posix: Unregister fd from ctx epoll when removing fd_handler. aio-posix: Fix concurrent aio_poll/set_fd_handler. util/aio-posix.c | 90 +++++++++++++++++++++++++++++------------------- util/aio-win32.c | 67 ++++++++++++++++------------------- 2 files changed, 84 insertions(+), 73 deletions(-) Reviewed-by: Stefan Hajnoczi Reviewed-by: Paolo Bonzini