lkml.org 
[lkml]   [2019]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [RFC PATCH V2 5/5] vhost: access vq metadata through kernel virtual address
    From
    Date

    On 2019/3/7 下午11:34, Michael S. Tsirkin wrote:
    > On Thu, Mar 07, 2019 at 10:45:57AM +0800, Jason Wang wrote:
    >> On 2019/3/7 上午12:31, Michael S. Tsirkin wrote:
    >>>> +static void vhost_set_vmap_dirty(struct vhost_vmap *used)
    >>>> +{
    >>>> + int i;
    >>>> +
    >>>> + for (i = 0; i < used->npages; i++)
    >>>> + set_page_dirty_lock(used->pages[i]);
    >>> This seems to rely on page lock to mark page dirty.
    >>>
    >>> Could it happen that page writeback will check the
    >>> page, find it clean, and then you mark it dirty and then
    >>> invalidate callback is called?
    >>>
    >>>
    >> Yes. But does this break anything?
    >> The page is still there, we just remove a
    >> kernel mapping to it.
    >>
    >> Thanks
    > Yes it's the same problem as e.g. RDMA:
    > we've just marked the page as dirty without having buffers.
    > Eventually writeback will find it and filesystem will complain...
    > So if the pages are backed by a non-RAM-based filesystem, it’s all just broken.


    Yes, we can't depend on the pages that might have been invalidated. As
    suggested, the only suitable place is the MMU notifier callbacks.

    Thanks


    > one can hope that RDMA guys will fix it in some way eventually.
    > For now, maybe add a flag in e.g. VMA that says that there's no
    > writeback so it's safe to mark page dirty at any point?
    >
    >
    >
    >
    >

    \
     
     \ /
      Last update: 2019-03-08 09:32    [W:4.059 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site