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=-12.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham 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 268A1C433B4 for ; Tue, 20 Apr 2021 15:39:10 +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 B08C1613AE for ; Tue, 20 Apr 2021 15:39:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B08C1613AE Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=suse.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.113873.216957 (Exim 4.92) (envelope-from ) id 1lYsSj-0002BY-S9; Tue, 20 Apr 2021 15:38:53 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 113873.216957; Tue, 20 Apr 2021 15:38:53 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lYsSj-0002BR-PE; Tue, 20 Apr 2021 15:38:53 +0000 Received: by outflank-mailman (input) for mailman id 113873; Tue, 20 Apr 2021 15:38:53 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lYsSj-0002BK-78 for xen-devel@lists.xenproject.org; Tue, 20 Apr 2021 15:38:53 +0000 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id c199bc92-0343-449d-8e32-d5ffdbe2c021; Tue, 20 Apr 2021 15:38:52 +0000 (UTC) Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 548BEB4B1; Tue, 20 Apr 2021 15:38:51 +0000 (UTC) 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: c199bc92-0343-449d-8e32-d5ffdbe2c021 X-Virus-Scanned: by amavisd-new at test-mx.suse.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1618933131; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mfLjm2j9FW4so4YGfWs4EIYY+t4828KXFSH+UBDo71g=; b=KWzq66zdocOCIMlMS1TbbFWndVyetzgri6EeWJjUrBWB9g1sbHmS12lYwcQ9vG5eBU/uwd fwuGH6FCtQ6xc4Yym2NYFhlcpihlzSmdx6I/fAg30aVl+C3YHlrym/vtw374/kjf65wahJ Fntb8U+EdmDR8fVpwbYbyBDmlrVk4fY= Subject: Re: [PATCH v2] VT-d: Don't assume register-based invalidation is always supported To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= Cc: xen-devel@lists.xenproject.org, Andrew Cooper , George Dunlap , Ian Jackson , Julien Grall , Stefano Stabellini , Wei Liu , Kevin Tian , Chao Gao References: <20200401200606.48752-1-chao.gao@intel.com> From: Jan Beulich Message-ID: <3afbdba8-b25c-985c-6c5f-20077cb37d3f@suse.com> Date: Tue, 20 Apr 2021 17:38:51 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit On 20.04.2021 17:08, Roger Pau Monné wrote: > On Thu, Apr 02, 2020 at 04:06:06AM +0800, Chao Gao wrote: >> --- a/xen/drivers/passthrough/vtd/qinval.c >> +++ b/xen/drivers/passthrough/vtd/qinval.c >> @@ -442,6 +442,23 @@ int enable_qinval(struct vtd_iommu *iommu) >> return 0; >> } >> >> +static int vtd_flush_context_noop(struct vtd_iommu *iommu, uint16_t did, >> + uint16_t source_id, uint8_t function_mask, >> + uint64_t type, bool flush_non_present_entry) >> +{ >> + dprintk(XENLOG_ERR VTDPREFIX, "IOMMU: Cannot flush CONTEXT.\n"); >> + return -EIO; >> +} >> + >> +static int vtd_flush_iotlb_noop(struct vtd_iommu *iommu, uint16_t did, >> + uint64_t addr, unsigned int size_order, >> + uint64_t type, bool flush_non_present_entry, >> + bool flush_dev_iotlb) >> +{ >> + dprintk(XENLOG_ERR VTDPREFIX, "IOMMU: Cannot flush IOTLB.\n"); >> + return -EIO; >> +} > > I think I would add an ASSERT_UNREACHABLE() to both noop handlers > above, as I would expect trying to use them without the proper mode > being configured would point to an error elsewhere? If such an assertion triggered e.g. during S3 suspend/resume, it may lead to the box simply not doing anything useful, without there being any way to know what went wrong. If instead the system at least managed to resume, the log message could be observed. Jan