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

Re: [Xen-devel] xen 4.3 test report



2013/6/3 Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>:
> The non-debug version tells me it is:
>
> 289     if ( (port = get_free_port(d)) < 0 )
> 290         ERROR_EXIT(port);
>
> Which gets -EEXIST from get_free_port. But get_free_port only returns
> -EINVAL, -ENOMEM, and -ENOSPC in failure modes.
>
> But we get -EEXIST? Could you re-run git diff and attach output to
> this email? I think you tweaked the debug code a bit so I am looking
> at something different?


Oh sorry. Yes i modify you patch to this version:
--- a/xen/common/event_channel.c        2013-05-16 15:05:25.000000000 +0400
+++ b/xen/common/event_channel.c        2013-05-27 10:53:05.000000000 +0400
@@ -271,23 +271,38 @@ static long evtchn_bind_virq(evtchn_bind
     int            port, virq = bind->virq, vcpu = bind->vcpu;
     long           rc = 0;

-    if ( (virq < 0) || (virq >= ARRAY_SIZE(v->virq_to_evtchn)) )
+    if ( (virq < 0) || (virq >= ARRAY_SIZE(v->virq_to_evtchn)) ) {
+       gdprintk(XENLOG_WARNING, "d%dv%d [%s:%d], virq:%d, rc:%ld\n",
d->domain_id,
+               vcpu, __func__,__LINE__, virq, (long)-EINVAL);
         return -EINVAL;
+    }

-    if ( virq_is_global(virq) && (vcpu != 0) )
+    if ( virq_is_global(virq) && (vcpu != 0) ) {
+       gdprintk(XENLOG_WARNING, "d%dv%d [%s:%d], virq_is_global:%d,
rc:%ld\n", d->domain_id,
+               vcpu, __func__,__LINE__, virq_is_global(virq), (long)-EINVAL);
         return -EINVAL;
+    }

     if ( (vcpu < 0) || (vcpu >= d->max_vcpus) ||
-         ((v = d->vcpu[vcpu]) == NULL) )
+         ((v = d->vcpu[vcpu]) == NULL) ) {
+       gdprintk(XENLOG_WARNING, "d%dv%d [%s:%d], v:%p, max_vcpus:%d,
rc:%ld\n", d->domain_id,
+               vcpu, __func__,__LINE__, d->vcpu[vcpu], d->max_vcpus,
(long)-ENOENT);
         return -ENOENT;
+    }

     spin_lock(&d->event_lock);

-    if ( v->virq_to_evtchn[virq] != 0 )
+    if ( v->virq_to_evtchn[virq] != 0 ) {
+       gdprintk(XENLOG_WARNING, "d%dv%d [%s:%d], port:%d, rc:%ld\n",
d->domain_id,
+               vcpu, __func__,__LINE__, v->virq_to_evtchn[virq],
(long)-EEXIST);
         ERROR_EXIT(-EEXIST);
+    }

-    if ( (port = get_free_port(d)) < 0 )
+    if ( (port = get_free_port(d)) < 0 ) {
+       gdprintk(XENLOG_WARNING, "d%dv%d [%s:%d], port:%d, rc:%ld\n",
d->domain_id,
+               vcpu, __func__,__LINE__, port, (long)-EEXIST);
         ERROR_EXIT(port);
+    }

     chn = evtchn_from_port(d, port);
     chn->state          = ECS_VIRQ;


--
Vasiliy Tolstov,
e-mail: v.tolstov@xxxxxxxxx
jabber: vase@xxxxxxxxx

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