lkml.org 
[lkml]   [2021]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [RFC PATCH v4 01/13] iommu: Introduce dirty log tracking framework
    From
    Date
    Hi Keqian,

    On 5/10/21 7:07 PM, Keqian Zhu wrote:
    >>>> I suppose this interface is to ask the vendor IOMMU driver to check
    >>>> whether each device/iommu in the domain supports dirty bit tracking.
    >>>> But what will happen if new devices with different tracking capability
    >>>> are added afterward?
    >>> Yep, this is considered in the vfio part. We will query again after attaching or
    >>> detaching devices from the domain. When the domain becomes capable, we enable
    >>> dirty log for it. When it becomes not capable, we disable dirty log for it.
    >> If that's the case, why not putting this logic in the iommu subsystem so
    >> that it doesn't need to be duplicate in different upper layers?
    >>
    >> For example, add something like dirty_page_trackable in the struct of
    >> iommu_domain and ask the vendor iommu driver to update it once any
    >> device is added/removed to/from the domain. It's also better to disallow
    > If we do it, the upper layer still needs to query the capability from domain and switch
    > dirty log tracking for it. Or do you mean the domain can switch dirty log tracking automatically
    > when its capability change? If so, I think we're lack of some flexibility. The upper layer
    > may have it's own policy, such as only enable dirty log tracking when all domains are capable,
    > and disable dirty log tracking when just one domain is not capable.

    I may not get you.

    Assume that dirty_page_trackable is an attribution of an iommu_domain.
    This attribution might be changed once a new device (with different
    capability) added or removed. So it should be updated every time a new
    device is attached or detached. This work could be done by the vendor
    iommu driver on the path of dev_attach/dev_detach callback.

    For upper layers, before starting page tracking, they check the
    dirty_page_trackable attribution of the domain and start it only it's
    capable. Once the page tracking is switched on the vendor iommu driver
    (or iommu core) should block further device attach/detach operations
    until page tracking is stopped.

    >
    >> any domain attach/detach once the dirty page tracking is on.
    > Yep, this can greatly simplify our code logic, but I don't know whether our maintainers
    > agree that, as they may think that IOMMU dirty logging should not change original domain
    > behaviors.

    The maintainer owns the last word, but we need to work out a generic and
    self-contained API set.

    Best regards,
    baolu

    \
     
     \ /
      Last update: 2021-05-11 05:13    [W:4.951 / U:0.180 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site