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

Re: [Xen-devel] [PATCH V13 4/7] xen/arm: Data abort exception (R/W) mem_events.



On 12/03/15 15:26, Tamas K Lengyel wrote:
> 
> 
> On Thu, Mar 12, 2015 at 4:13 PM, Julien Grall <julien.grall@xxxxxxxxxx
> <mailto:julien.grall@xxxxxxxxxx>> wrote:
> 
>     Hi Tamas,
> 
>     On 06/03/15 21:24, Tamas K Lengyel wrote:
>     > +        /*
>     > +         * Preempt setting mem_access permissions as required by 
> XSA-89,
>     > +         * if it's not the last iteration.
>     > +         */
>     > +        if ( op == MEMACCESS && count )
>     > +        {
>     > +            uint32_t progress = paddr_to_pfn(addr) - sgfn + 1;
>     > +
>     > +            if ( (egfn - sgfn) > progress && !(progress & mask)
>     > +                 && hypercall_preempt_check() )
>     > +            {
>     > +                rc = progress;
>     > +                goto out;
>     > +            }
>     > +        }
>     > +
> 
>     Would it be possible to merge the memaccess prempt check with the
>     relinquish one?
> 
>     That may require some change in the relinquish version but I think it
>     would be cleaner.
> 
> 
> Well, I don't really see an obvious way how the two could be combined.

The preemption for relinquish has been chosen arbitrarily so it would be
possible to change it.

> 
>     [..]
> 
>     > +bool_t p2m_mem_access_check(paddr_t gpa, vaddr_t gla, const struct 
> npfec npfec)
>     > +{
>     > +    int rc;
>     > +    bool_t violation;
>     > +    xenmem_access_t xma;
>     > +    mem_event_request_t *req;
>     > +    struct vcpu *v = current;
>     > +    struct p2m_domain *p2m = p2m_get_hostp2m(v->domain);
>     > +
>     > +    /* Mem_access is not in use. */
>     > +    if ( !p2m->mem_access_enabled )
>     > +        return true;
> 
>     true should be used with bool not boot_t.
> 
>     > +
>     > +    rc = p2m_get_mem_access(v->domain, paddr_to_pfn(gpa), &xma);
>     > +    if ( rc )
>     > +        return true;
> 
>     Ditto (I won't repeat for the few other place below)
> 
> 
> There was just a discussion how there is no difference between 0/1 and
> false/true other than maybe style. If one is preferred over the other,
> I'm fine with either. Is this really an issue?

You are mixing 2 different types. bool/false/true are part of stdbool.h
rather than bool_t is part of asm/types.h


By mistake we mix both type in an handful of places in ARM. We should
avoid to introduce more.

FWIW, the headers stdbool.h has been introduced in order to share libelf
with the tools.

Regards,

-- 
Julien Grall

_______________________________________________
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®.