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

Re: [Xen-devel] [PATCH for-4.12 v3 4/5] xen/arm: Implement Set/Way operations



On Mon, 17 Dec 2018, Julien Grall wrote:
> Hi,
> 
> On 14/12/2018 21:22, Stefano Stabellini wrote:
> > On Fri, 14 Dec 2018, Julien Grall wrote:
> > > +
> > > +    /*
> > > +     * The full P2M may require some cleaning (e.g when emulation
> > > +     * set/way). As the action can take a long time, it requires
> > > +     * preemption. So this is deferred until we return to the guest.
> > 
> > Please replace the last sentence of this comment with:
> > 
> > "It is deferred until we return to guest, where we can more easily check
> > for softirqs and preempt the vcpu safely."
> 
> Ok.
> 
> > 
> > > +     */
> > > +    bool need_flush_to_ram;
> > > +
> > >   }  __cacheline_aligned;
> > >     void vcpu_show_execution_state(struct vcpu *);
> > > diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
> > > index a633e27cc9..79abcb5a63 100644
> > > --- a/xen/include/asm-arm/p2m.h
> > > +++ b/xen/include/asm-arm/p2m.h
> > > @@ -6,6 +6,8 @@
> > >   #include <xen/rwlock.h>
> > >   #include <xen/mem_access.h>
> > >   +#include <asm/current.h>
> > > +
> > >   #define paddr_bits PADDR_BITS
> > >     /* Holds the bit size of IPAs in p2m tables.  */
> > > @@ -237,6 +239,12 @@ bool p2m_resolve_translation_fault(struct domain *d,
> > > gfn_t gfn);
> > >    */
> > >   int p2m_cache_flush_range(struct domain *d, gfn_t *pstart, gfn_t end);
> > >   +void p2m_set_way_flush(struct vcpu *v);
> > > +
> > > +void p2m_toggle_cache(struct vcpu *v, bool was_enabled);
> > > +
> > > +void p2m_flush_vm(struct vcpu *v);
> > > +
> > >   /*
> > >    * Map a region in the guest p2m with a specific p2m type.
> > >    * The memory attributes will be derived from the p2m type.
> > > @@ -364,6 +372,18 @@ static inline int set_foreign_p2m_entry(struct domain
> > > *d, unsigned long gfn,
> > >       return -EOPNOTSUPP;
> > >   }
> > >   +/*
> > > + * A vCPU has cache enabled only when the MMU is enabled and data cache
> > > + * is enabled.
> > > + */
> > > +static inline bool vcpu_has_cache_enabled(struct vcpu *v)
> > > +{
> > > +    /* Only works with the current vCPU */
> > > +    ASSERT(current == v);
> > > +
> > > +    return (READ_SYSREG32(SCTLR_EL1) & (SCTLR_C|SCTLR_M)) ==
> > > (SCTLR_C|SCTLR_M);
> > 
> > Line > 80
> 
> No, it is 79 characters (not counting \n). Why do you think it is more than 80
> characters?

Weird. I must have miscounted in my reply email, where '>', '+' and tabs
increase the line count.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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