From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D95A1C433DB for ; Wed, 23 Dec 2020 15:16:28 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 71776224B1 for ; Wed, 23 Dec 2020 15:16:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 71776224B1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.58444.102775 (Exim 4.92) (envelope-from ) id 1ks5sB-0000Gz-ON; Wed, 23 Dec 2020 15:16:19 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 58444.102775; Wed, 23 Dec 2020 15:16:19 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ks5sB-0000Gs-L6; Wed, 23 Dec 2020 15:16:19 +0000 Received: by outflank-mailman (input) for mailman id 58444; Wed, 23 Dec 2020 15:16:18 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ks5sA-0000Gl-Ab for xen-devel@lists.xenproject.org; Wed, 23 Dec 2020 15:16:18 +0000 Received: from mail-wr1-x429.google.com (unknown [2a00:1450:4864:20::429]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 0c320921-ec4e-435e-9c11-a253089fee79; Wed, 23 Dec 2020 15:16:17 +0000 (UTC) Received: by mail-wr1-x429.google.com with SMTP id 91so18950471wrj.7 for ; Wed, 23 Dec 2020 07:16:17 -0800 (PST) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 0c320921-ec4e-435e-9c11-a253089fee79 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=6yuXk0UjfvyrDacLoijz4xrdR4nujCvawwyyWsbeONQ=; b=YTkPoJ6Ruste6+sV1cDa2MxDDAUzR28uvUVRwze75nCAV9l7nlEDo8OsozjmWRLKTY Hv/9CUUF3oe+K6OsoB874smceRCKoybDc9ZXrdPfBHr/qwIYHM1oPqajTaF8nLNCOm9L eEc60Li6eKTyocWRBPbu8sxl68axuzczmYRWbxRQCCPS/oqyl2vlR2Do06QN+d3Ke3Ww RHFo2JeQuB021sCxtUjimXtRBoTqSKrRTV0nz5nR3SW0CI3dZf2XItHIIfT5K6i+VJ4d XSx3KKz1qrucXeCOg8bDkCDYQfqT4QGZSa9rdNuAS/A1UFm7nVN3niunV58Pe78MdxdQ t/Ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=6yuXk0UjfvyrDacLoijz4xrdR4nujCvawwyyWsbeONQ=; b=lnh2ny7tS6++vfEM3mrAVSzESSJhkfl1LCTWhupGGBYaT/OGq8uUlaM6cNps58KnTN xKoqGXuJOYsI2U/00zNwRnuFl+mpH3h9IO91VMutlS8rgC8OtXOk/5gKHADohfZwN41J BM/dzdIPL28dLbBHeJSnc5cg1wsqOuZNDnLHgwUlBqYMuitEvU2PlYHi8Mzu8oRG3tnR Yttfci+dXvR5N4uP6ANfTPnODwEHRySlUmNzHwmuzCQDLOWyF0a6pTjzG7sOTqJXV3ht KeRSxM73PCleigUBhnvsP6/YyZDzyMNpJCDgUEG1zoSYAxtiKRaA4MGhyi8CraNIjyVJ GzOg== X-Gm-Message-State: AOAM531TqtICIZ/rNFVcHl+He9yNTy8lxrU6mkt/n8KrSjHyzaI5iOES dALPUPpt9mb8k+U4sJQW8SaRkW7lH6iLOvZBuGY= X-Google-Smtp-Source: ABdhPJwzZ1SON9OQ3yANlPnl9YUx32njXGwkngb8UFMl0Xp1sT56FfqonwOki49qI4Fbi6C7HVZ2rhvcwjmrnL/VmqU= X-Received: by 2002:a5d:68ce:: with SMTP id p14mr29733998wrw.386.1608736576412; Wed, 23 Dec 2020 07:16:16 -0800 (PST) MIME-Version: 1.0 References: <9d7a052a-6222-80ff-cbf1-612d4ca50c2a@suse.com> <17c90493-b438-fbc1-ca10-3bc4d89c4e5e@xen.org> <7a768bcd-80c1-d193-8796-7fb6720fa22a@suse.com> <1a8250f5-ea49-ac3a-e992-be7ec40deba9@xen.org> <5862eb24-d894-455a-13ac-61af54f949e7@xen.org> <9ee6016a-d3b3-c847-4775-0e05c8578110@xen.org> <3b339f30-57db-caf6-fd7e-84199f98546f@suse.com> <9c214bc1-61db-5b33-f610-40c2a59edb75@xen.org> In-Reply-To: <9c214bc1-61db-5b33-f610-40c2a59edb75@xen.org> From: Tamas K Lengyel Date: Wed, 23 Dec 2020 10:15:39 -0500 Message-ID: Subject: Re: [PATCH v3 5/5] evtchn: don't call Xen consumer callback with per-channel lock held To: Julien Grall Cc: Jan Beulich , Andrew Cooper , George Dunlap , Ian Jackson , Wei Liu , Stefano Stabellini , Tamas K Lengyel , Petre Ovidiu PIRCALABU , Alexandru Isaila , "xen-devel@lists.xenproject.org" Content-Type: text/plain; charset="UTF-8" On Wed, Dec 23, 2020 at 9:44 AM Julien Grall wrote: > > > > On 23/12/2020 13:41, Jan Beulich wrote: > > On 23.12.2020 14:33, Julien Grall wrote: > >> On 23/12/2020 13:12, Jan Beulich wrote: > >>> From the input by both of you I still can't > >>> conclude whether this patch should remain as is in v4, or revert > >>> back to its v2 version. Please can we get this settled so I can get > >>> v4 out? > >> > >> I haven't had time to investigate the rest of the VM event code to find > >> other cases where this may happen. I still think there is a bigger > >> problem in the VM event code, but the maintainer disagrees here. > >> > >> At which point, I see limited reason to try to paper over in the common > >> code. So I would rather ack/merge v2 rather than v3. > > > > Since I expect Tamas and/or the Bitdefender folks to be of the > > opposite opinion, there's still no way out, at least if "rather > > ack" implies a nak for v3. > > The only way out here is for someone to justify why this patch is > sufficient for the VM event race. I am not convinced it is (see more below). > > > Personally, if this expectation of > > mine is correct, I'd prefer to keep the accounting but make it > > optional (as suggested in a post-commit-message remark). > > That'll eliminate the overhead you appear to be concerned of, > > but of course it'll further complicate the logic (albeit just > > slightly). > > I am more concerned about adding over complex code that would just > papering over a bigger problem. I also can't see use of it outside of > the VM event discussion. > > I had another look at the code. As I mentioned in the past, > vm_put_event_request() is able to deal with d != current->domain (it > will set VM_EVENT_FLAG_FOREIGN). There are 4 callers for the function: > 1) p2m_mem_paging_drop_page() > 2) p2m_mem_paging_populate() > 3) mem_sharing_notify_enomem() > 4) monitor_traps() > > 1) and 2) belongs to the mem paging subsystem. Tamas suggested that it > was abandoned. > > 4) can only be called with the current domain. > > This leave us 3) in the mem sharing subsystem. As this is call the > memory hypercalls, it looks possible to me that d != current->domain. > The code also seems to be maintained (there were recent non-trivial > changes). > > Can one of the VM event developper come up with a justification why this > patch enough to make the VM event subsystem safe? 3) is an unused feature as well that likely should be dropped at some point. It can also only be called with current->domain, it effectively just signals an out-of-memory error to a vm_event listener in dom0 that populating an entry for the VM that EPT faulted failed. I guess the idea was that the dom0 agent would be able to make a decision on how to proceed (ie which VM to kill to free up memory).