Re: [PATCH v2 0/2] MTE support for KVM guest

From: Andrew Jones
Date: Thu Sep 10 2020 - 17:36:34 EST


On Thu, Sep 10, 2020 at 02:27:48PM +0100, Dr. David Alan Gilbert wrote:
> * Andrew Jones (drjones@xxxxxxxxxx) wrote:
> > On Wed, Sep 09, 2020 at 06:45:33PM -0700, Richard Henderson wrote:
> > > On 9/9/20 8:25 AM, Andrew Jones wrote:
> > > >> * Provide a KVM-specific method to extract the tags from guest memory.
> > > >> This might also have benefits in terms of providing an easy way to
> > > >> read bulk tag data from guest memory (since the LDGM instruction
> > > >> isn't available at EL0).
> > > >
> > > > Maybe we need a new version of KVM_GET_DIRTY_LOG that also provides
> > > > the tags for all addresses of each dirty page.
> > >
> > > KVM_GET_DIRTY_LOG just provides one bit per dirty page, no? Then VMM copies
> > > the data out from its local address to guest memory.
> > >
> > > There'd be no difference with or without tags, afaik. It's just about how VMM
> > > copies the data, with or without tags.
> >
> > Right, as long as it's fast enough to do
> >
> > for_each_dirty_page(page, dirty_log)
> > for (i = 0; i < host-page-size/16; i += 16)
> > append_tag(LDG(page + i))
> >
> > to get all the tags for each dirty page. I understood it would be faster
> > to use LDGM, but we'd need a new ioctl for that. So I was proposing we
> > just piggyback on a new dirty-log ioctl instead.
>
> That feels a bad idea to me; there's a couple of different ways dirty
> page checking work; lets keep extracting the tags separate.
>

It's sounding like it was a premature optimization anyway. We don't yet
know if an ioctl for LDGM is worth it. Looping over LDG may work fine.

Thanks,
drew