Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3694042pxj; Mon, 7 Jun 2021 18:10:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxwXjLOE0cHUt4j/dxZanCkBT4mJ3CTOaRxda53gPAfC0ViecUXmQ3GVhR/h186T67Csz/b X-Received: by 2002:a17:906:660c:: with SMTP id b12mr20999463ejp.86.1623114652774; Mon, 07 Jun 2021 18:10:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623114652; cv=none; d=google.com; s=arc-20160816; b=FdeEZguLtkbrhxkrdGbHpqfBbKGJQosQ5rcU4ZcsvbF1l/it2Dz18J6Tc6UBBaRbxC C54CXnTZDlEokj6jvtGbh9QZZCOefUPW8J5DNnFhvYZsjqGS6M2GbDIEzfERZ49Mnv30 38hVjeiF/UheHHKFM3FumhmPe1LfahFff2j3HiEWODG1V5e7uL9JRRtgdp4ONU4xIHy0 ujC/gjwH1ebkcMyWw5r7o/p7yT7Cinc4kgQhDcVidE1JcrIKhN226/7S0EmeXR9I71qc duBjS0SEagnijwYjeFicqxXMWywVbAx1xWFM3ONrBXtuDuhMyOyroEjh8iS+UGocnqSA IxQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=XyzJ3uHzMZbf1o+WxWDE9Y5AzaaavN3GSVDLosK9WD8=; b=BZfSRctGYlx+30XLLQBntP7538BBtn0vAUnpA9MvX5q2xBaDPV3+crpXSw+Br6+KwN UezFHyudxm6zIWXF9aoFLP3kvc1vCLAEJrvDZl6vu92J9fmHhuRFe/geHuO/zuGr9FIj 7ZNB1AgwL/sOpbhdn0FuGTkYmr+VpnJMw/7YIeme7UMif0AO6DTQSqEhtyW0lTBicRes Wl+KT359UIk+1dnoIki5GPofvGvOLMvl9n6XybfFvxnNawBgPjBtG/+oZtQzeBE+8Jx1 v3I4rbf2SlZGWW9uEzvKQ8ebuYmLiDYKcEG+m2Yx6lZzIxWpgXVeSLG1sgyt1x6nBT1X vjAA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s24si5292448ejs.124.2021.06.07.18.10.29; Mon, 07 Jun 2021 18:10:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231173AbhFHBLZ (ORCPT + 99 others); Mon, 7 Jun 2021 21:11:25 -0400 Received: from szxga01-in.huawei.com ([45.249.212.187]:8064 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230209AbhFHBLX (ORCPT ); Mon, 7 Jun 2021 21:11:23 -0400 Received: from dggemv704-chm.china.huawei.com (unknown [172.30.72.55]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4FzXBQ5JNHzYrPB; Tue, 8 Jun 2021 09:06:38 +0800 (CST) Received: from dggpemm500022.china.huawei.com (7.185.36.162) by dggemv704-chm.china.huawei.com (10.3.19.47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Tue, 8 Jun 2021 09:09:22 +0800 Received: from [10.174.185.220] (10.174.185.220) by dggpemm500022.china.huawei.com (7.185.36.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Tue, 8 Jun 2021 09:09:21 +0800 Subject: Re: [RFC] /dev/ioasid uAPI proposal To: "Liu, Yi L" , Jacob Pan CC: Jason Gunthorpe , Lu Baolu , "Tian, Kevin" , LKML , Joerg Roedel , David Woodhouse , "iommu@lists.linux-foundation.org" , "kvm@vger.kernel.org" , "Alex Williamson (alex.williamson@redhat.com)" , Jason Wang , Eric Auger , Jonathan Corbet , "Raj, Ashok" , "Wu, Hao" , "Jiang, Dave" , "Jean-Philippe Brucker" , David Gibson , Kirti Wankhede , "Robin Murphy" , Zenghui Yu , "wanghaibin.wang@huawei.com" References: <01fe5034-42c8-6923-32f1-e287cc36bccc@linux.intel.com> <20210601173323.GN1002214@nvidia.com> <23a482f9-b88a-da98-3800-f3fd9ea85fbd@huawei.com> <20210603111914.653c4f61@jacob-builder> From: Shenming Lu Message-ID: <9653f2a9-b6a0-86e8-19d4-53ab9079c49c@huawei.com> Date: Tue, 8 Jun 2021 09:09:01 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.2.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.174.185.220] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To dggpemm500022.china.huawei.com (7.185.36.162) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2021/6/7 20:19, Liu, Yi L wrote: >> From: Shenming Lu >> Sent: Friday, June 4, 2021 10:03 AM >> >> On 2021/6/4 2:19, Jacob Pan wrote: >>> Hi Shenming, >>> >>> On Wed, 2 Jun 2021 12:50:26 +0800, Shenming Lu >> >>> wrote: >>> >>>> On 2021/6/2 1:33, Jason Gunthorpe wrote: >>>>> On Tue, Jun 01, 2021 at 08:30:35PM +0800, Lu Baolu wrote: >>>>> >>>>>> The drivers register per page table fault handlers to /dev/ioasid which >>>>>> will then register itself to iommu core to listen and route the per- >>>>>> device I/O page faults. >>>>> >>>>> I'm still confused why drivers need fault handlers at all? >>>> >>>> Essentially it is the userspace that needs the fault handlers, >>>> one case is to deliver the faults to the vIOMMU, and another >>>> case is to enable IOPF on the GPA address space for on-demand >>>> paging, it seems that both could be specified in/through the >>>> IOASID_ALLOC ioctl? >>>> >>> I would think IOASID_BIND_PGTABLE is where fault handler should be >>> registered. There wouldn't be any IO page fault without the binding >> anyway. >> >> Yeah, I also proposed this before, registering the handler in the >> BIND_PGTABLE >> ioctl does make sense for the guest page faults. :-) >> >> But how about the page faults from the GPA address space (it's page table is >> mapped through the MAP_DMA ioctl)? From your point of view, it seems >> that we should register the handler for the GPA address space in the (first) >> MAP_DMA ioctl. > > under new proposal, I think the page fault handler is also registered > per ioasid object. The difference compared with guest page table case > is there is no need to inject the fault to VM. Yeah. And there are some issues specific to the GPA address space case which have been discussed with Alex.. Thanks, Shenming