[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v4 09/17] x86/hvm: unify stdvga mmio intercept with standard mmio intercept



> -----Original Message-----
> From: Jan Beulich [mailto:JBeulich@xxxxxxxx]
> Sent: 24 June 2015 15:30
> To: Paul Durrant
> Cc: Andrew Cooper; xen-devel@xxxxxxxxxxxxxxxxxxxx; Keir (Xen.org)
> Subject: RE: [PATCH v4 09/17] x86/hvm: unify stdvga mmio intercept with
> standard mmio intercept
> 
> >>> On 24.06.15 at 16:12, <Paul.Durrant@xxxxxxxxxx> wrote:
> >> From: Jan Beulich [mailto:JBeulich@xxxxxxxx]
> >> Sent: 24 June 2015 14:59
> >> >>> On 24.06.15 at 13:24, <paul.durrant@xxxxxxxxxx> wrote:
> >> > -    if ( s->stdvga && s->cache )
> >> > -    {
> >> > -        switch ( p->type )
> >> > -        {
> >> > -        case IOREQ_TYPE_COPY:
> >> > -            buf = mmio_move(s, p);
> >> > -            if ( !buf )
> >> > -                s->cache = 0;
> >> > -            break;
> >> > -        default:
> >> > -            gdprintk(XENLOG_WARNING, "unsupported mmio request
> type:%d
> >> "
> >> > -                     "addr:0x%04x data:0x%04x size:%d count:%d state:%d 
> >> > "
> >> > -                     "isptr:%d dir:%d df:%d\n",
> >> > -                     p->type, (int)p->addr, (int)p->data, (int)p->size,
> >> > -                     (int)p->count, p->state,
> >> > -                     p->data_is_ptr, p->dir, p->df);
> >> > -            s->cache = 0;
> >> > -        }
> >>
> >> I can't see where these cases of clearing s->cache move to.
> >>
> >
> > There's only one case AFAICT, which is if the domain goes through a
> > save/restore then s->cache is cleared.
> 
> There are two cases visible in the context above, which afaict
> have nothing to do with save/restore.
> 

Caching was also disabled on an MMIO <-> MMIO move that was not within VRAM, or 
an MMIO <-> RAM move. As we know, MMIO <-> MMIO can't happen anyway and I don't 
see why a rep mov necessarily should disable cache. Before this change I guess 
it had to since the code did not have the component writes to forward to QEMU 
as buffered requests. Now it does.

I'd missed the fact that it still forwarded writes as buffered even if it was 
not caching though.

  Paul

> Jan
> 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.