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

Re: [Xen-devel] [PATCH v3 1/2] xen/arm: vgic: Keep track of vIRQ used by a domain

Hi Ian,

On 02/02/2015 15:09, Ian Campbell wrote:
On Thu, 2015-01-29 at 15:51 +0000, Julien Grall wrote:
         - Move the retry after looking for first/end. I keep the goto
         rather than a loop because it's more clear that we retry because
         we were unable to set the bit

Then I think a "do {} while (!successfully allocated)" is what is
wanted, maybe with a comment.

I though about it and I find the do {} while more difficult to read than the goto in this specific case.

I find more explicit with the goto that we will unlikely retry.
y. Adding a comment in the code doesn't really help.

the do {} while version would look like:

   do {
        virq = find_next_zero_bit(d->arch.vgic.allocated_irqs, end, first);
        if ( virq >= end )
            return -1;

        ret = test_and_set_bit(virq, d->arch.vgic.allocated_irqs);
        /* There is no spinlock to protect allocated_irqs, therefore
         * test_and_set_bit may unlikely fail. If so retry it.
    } while ( unlikely(ret) )


Julien Grall

Xen-devel mailing list



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