Hi, Please find attached the source code of Round Robin scheduler which I am trying to add to Xen 3.3.1. I am facing the following error messages while compiling the same. sched_rrobin.c:31: error: two or more data types in declaration specifiers sched_rrobin.c: In function ‘rrobin_vcpu_init’: sched_rrobin.c:34: error: incompatible types in return sched_rrobin.c:51: error: incompatible types in return sched_rrobin.c:94: error: initialization from incompatible pointer type I believe the error in line 94 is causing the rest of the error messages. I have checked with the structure definition in sched-if.h as well as the implementation of the same in other schedulers such as SEDF and Credit. Request you to kindly provide your feedback regarding the same. Thanks & Regards Ananth _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hi, I figured out that the error was because of a missing '' ; '' . This has been fixed now. I have attached the modified code. While compiling I am getting the below error message. cc1: warnings being treated as errors sched_rrobin.c: In function ‘rrobin_schedule’: sched_rrobin.c:74: error: ‘ret.task’ may be used uninitialized in this function Please guide. Thanks & Regards Ananth ---------- Forwarded message ---------- From: Ananth <cbananth@gmail.com> Date: Fri, Apr 24, 2009 at 7:25 PM Subject: Error while compiling with new RR scheduler To: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com> Hi, Please find attached the source code of Round Robin scheduler which I am trying to add to Xen 3.3.1. I am facing the following error messages while compiling the same. sched_rrobin.c:31: error: two or more data types in declaration specifiers sched_rrobin.c: In function ‘rrobin_vcpu_init’: sched_rrobin.c:34: error: incompatible types in return sched_rrobin.c:51: error: incompatible types in return sched_rrobin.c:94: error: initialization from incompatible pointer type I believe the error in line 94 is causing the rest of the error messages. I have checked with the structure definition in sched-if.h as well as the implementation of the same in other schedulers such as SEDF and Credit. Request you to kindly provide your feedback regarding the same. Thanks & Regards Ananth _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
George Dunlap
2009-Apr-27 12:59 UTC
Re: [Xen-devel] Fwd: Error while compiling with new RR scheduler
The message says it pretty clearly: you return the value of ret, but there are control paths in the function for which ret.task is not set. Namely, if list_empty(runq) is true, then you will return an uninitialized value, which may be anything (garbage on the stack, NULL, &c). This will most likely cause Xen to crash, as xen/common/schedule.c assumes that ret.task will be a valid, non-NULL pointer. If you happen to know that runq is never empty, then you don''t need the if statement. If it may be empty, then you need an else clause to return the idle vcpu for that processor. -George 2009/4/24 Ananth <cbananth@gmail.com>:> Hi, > I figured out that the error was because of a missing '' ; '' . This has been fixed now. I have attached the modified code. > While compiling I am getting the below error message. > > cc1: warnings being treated as errors > sched_rrobin.c: In function ‘rrobin_schedule’: > sched_rrobin.c:74: error: ‘ret.task’ may be used uninitialized in this function > > Please guide. > > Thanks & Regards > Ananth > > > ---------- Forwarded message ---------- > From: Ananth <cbananth@gmail.com> > Date: Fri, Apr 24, 2009 at 7:25 PM > Subject: Error while compiling with new RR scheduler > To: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com> > > > Hi, > Please find attached the source code of Round Robin scheduler which I am trying to add to Xen 3.3.1. > I am facing the following error messages while compiling the same. > > sched_rrobin.c:31: error: two or more data types in declaration specifiers > > sched_rrobin.c: In function ‘rrobin_vcpu_init’: > > sched_rrobin.c:34: error: incompatible types in return > > sched_rrobin.c:51: error: incompatible types in return > > sched_rrobin.c:94: error: initialization from incompatible pointer type > > I believe the error in line 94 is causing the rest of the error messages. I have checked with the structure definition in sched-if.h as well as the implementation of the same in other schedulers such as SEDF and Credit. > > Request you to kindly provide your feedback regarding the same. > > Thanks & Regards > Ananth > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ananth
2009-Apr-27 13:15 UTC
Re: [Xen-devel] Fwd: Error while compiling with new RR scheduler
Hello, Thank you so much for pointing it out. How could I miss something so obvious. I am able to compile it now. I will get back to you in case I get into any issues during run time. Thank you. Regards Ananth On Mon, Apr 27, 2009 at 6:29 PM, George Dunlap <dunlapg@umich.edu> wrote:> The message says it pretty clearly: you return the value of ret, but > there are control paths in the function for which ret.task is not set. > Namely, if list_empty(runq) is true, then you will return an > uninitialized value, which may be anything (garbage on the stack, > NULL, &c). This will most likely cause Xen to crash, as > xen/common/schedule.c assumes that ret.task will be a valid, non-NULL > pointer. > > If you happen to know that runq is never empty, then you don''t need > the if statement. If it may be empty, then you need an else clause to > return the idle vcpu for that processor. > > -George > > 2009/4/24 Ananth <cbananth@gmail.com>: > > Hi, > > I figured out that the error was because of a missing '' ; '' . This has > been fixed now. I have attached the modified code. > > While compiling I am getting the below error message. > > > > cc1: warnings being treated as errors > > sched_rrobin.c: In function ‘rrobin_schedule’: > > sched_rrobin.c:74: error: ‘ret.task’ may be used uninitialized in this > function > > > > Please guide. > > > > Thanks & Regards > > Ananth > > > > > > ---------- Forwarded message ---------- > > From: Ananth <cbananth@gmail.com> > > Date: Fri, Apr 24, 2009 at 7:25 PM > > Subject: Error while compiling with new RR scheduler > > To: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com> > > > > > > Hi, > > Please find attached the source code of Round Robin scheduler which I am > trying to add to Xen 3.3.1. > > I am facing the following error messages while compiling the same. > > > > sched_rrobin.c:31: error: two or more data types in declaration > specifiers > > > > sched_rrobin.c: In function ‘rrobin_vcpu_init’: > > > > sched_rrobin.c:34: error: incompatible types in return > > > > sched_rrobin.c:51: error: incompatible types in return > > > > sched_rrobin.c:94: error: initialization from incompatible pointer type > > > > I believe the error in line 94 is causing the rest of the error messages. > I have checked with the structure definition in sched-if.h as well as the > implementation of the same in other schedulers such as SEDF and Credit. > > > > Request you to kindly provide your feedback regarding the same. > > > > Thanks & Regards > > Ananth > > > > > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@lists.xensource.com > > http://lists.xensource.com/xen-devel > > > > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel