WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Re: Issues while running Xen with new RR scheduler

To: Ananth <cbananth@xxxxxxxxx>
Subject: Re: [Xen-devel] Re: Issues while running Xen with new RR scheduler
From: George Dunlap <George.Dunlap@xxxxxxxxxxxxx>
Date: Fri, 1 May 2009 11:27:01 +0100
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Fri, 01 May 2009 03:27:30 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:message-id:subject:from:to:cc :content-type:content-transfer-encoding; bh=9zlKcgIWl1kRyDV2C4wSjWZAHbRh2ccJjho7zzQvQGk=; b=GW1rBAtHP0sTL1FawCbylFqZ72hK7aWN1vGKPBpicTpaTEZG4dCFZ5oVQyg42BSYGM kyFYY2cMYVMmU+cU1iBgoYHtY5ZJ2bppDsL5q1Xeo5OwdP93ZuzgizB8ywWdmhouqlqM Rv8Y6SLk000wZyQpN+GrUrRm9q3nGFDTyZngU=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=R0Cwp7KTm7MF5XSW1+iT5l36l8bQTMvZ+JkhUKqk+tiqUi2wLP0GsCdeK0/jUjN3+z WhPJxhYNaHWeFNbl3kVROBQNLfvvDUkOC1L8xzoXfGTCkSrE2OgxMEbJcBTylevZCeUx oztSvZZo+zXIXh6yo2+jnZynokWqYpezrMYw8=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <de76405a0905010325i445f92e7l2f0b4318d6401bd9@xxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <bdf293de0904271139q7e1b9f61u546226ff8e62b70@xxxxxxxxxxxxxx> <de76405a0904271341m2114d923ge0fc645d3ac97854@xxxxxxxxxxxxxx> <bdf293de0904271539r3eb9800fl83ad3ca22ffcd62c@xxxxxxxxxxxxxx> <de76405a0904280719m394e19adx51cf6892fa6dc58f@xxxxxxxxxxxxxx> <bdf293de0904301500x71429241j649b217c74f6c3e5@xxxxxxxxxxxxxx> <de76405a0905010325i445f92e7l2f0b4318d6401bd9@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Also, comb through your code and make sure you understand what is
*supposed* to be returned and what *is* returned by all of your
functions.  Comparing your code with other scheduler code may be
helpful.

 -George

On Fri, May 1, 2009 at 11:25 AM, George Dunlap
<George.Dunlap@xxxxxxxxxxxxx> wrote:
> What's your Linux setup?  If it has any kind of splash screen on boot
> (like say, Ubuntu), you probably want to turn that off.  How that's
> done depends on the particular distribution.
>
> Can you see a cursor at all?  You might try, from your keyboard,
> pressing "Ctrl-A" three times.  If Xen isn't totally trashed, this
> will cause Xen to take control of the keyboard, and you can pass it
> several debug-key commands.  Pressing 'h' will give you a list; 'd'
> (IIRC) will give you a dump of the state of the cpus.  Using that you
> can figure out what Xen is doing.
>
> As for the serial port: I googled for "serial console", and found this
> page that has a lot of useful information:
>  http://tldp.org/HOWTO/Remote-Serial-Console-HOWTO/
>
> The problem with that page is that it give a little *too much* useful
> information.  The key things you want are:
> * Use a NULL modem cable to connect two computers.  You can get this
> (or an adapter) at most computer stores.
> * Probably use 115200 for the speed.
> * I use minicom on the "monitoring" computer.  (Any other suggestions?)
>  + You'll need to redefine the "command" key from Ctrl-A to Ctrl-B, so
> that you can use the Ctrl-A to talk to Xen.
>  + Turn on logging in minicom so you can go back and look at things
> that scrolled off the screen
> * Your distro is probably already set up to allow Linux to use the
> serial port; you just need to add the proper command line args to your
> bootloader.
> * Allowing root to log in from the serial console is handy, but not
> necessary to begin with.
>
> This is a bit of a hassle to start out with, but if you're serious
> about doing Xen development, it's definitely worth the investment.
>
>  -George
>
> On Thu, Apr 30, 2009 at 11:00 PM, Ananth <cbananth@xxxxxxxxx> wrote:
>> :) Thank you...
>> The system hangs with a blank screen. It does not reboot.
>> When I checked the /var/log/messages file,
>>
>> Apr 30 01:02:01 cbananth exiting on signal 15
>>
>> This was the message that was logged when I booted into the system.
>> Could you please guide me on how to set up a serial console? Should I
>> connect another system only through a serial port? Can I connect through LAN
>> cable also? I have never done this before.
>>
>> Thank you
>>
>> Warm Regards
>> Ananth
>>
>> On Tue, Apr 28, 2009 at 7:49 PM, George Dunlap <George.Dunlap@xxxxxxxxxxxxx>
>> wrote:
>>>
>>> Welcome to OS programming. :-)  When you say, "everything goes blank",
>>> you mean that the machine reboots, or do you mean it just hangs?
>>>
>>> The main thing to do is add printks to your code to figure out where
>>> things start to go bad.
>>>
>>> If your machine is rebooting / crashing, then you're probably
>>> dereferencing a null pointer or something like that.  The best thing
>>> for this is to set up a serial console, enable the sync_console
>>> feature on the xen command line, and log the serial console output.
>>> Then you'll have the printks as close as possible to the actual crash,
>>> which should help you narrow things down.
>>>
>>> Good luck,
>>>  -George
>>>
>>> On Mon, Apr 27, 2009 at 11:39 PM, Ananth <cbananth@xxxxxxxxx> wrote:
>>> > Hi,
>>> > Thanks for your suggestion. I was able to change scheduler from credit
>>> > to
>>> > sedf. "sched" is the correct parameter.
>>> > However when I try to select sched=rrobin, the system gets ready to boot
>>> > and
>>> > then everything goes blank. I have attached the round robin scheduler
>>> > code
>>> > along with this mail. Could you give me your feedback on whether I have
>>> > missed out something.
>>> >
>>> > Thank you very much once again.
>>> >
>>> > Warm Regards
>>> > Ananth
>>> >
>>> > On Tue, Apr 28, 2009 at 2:11 AM, George Dunlap <dunlapg@xxxxxxxxx>
>>> > wrote:
>>> >>
>>> >> You need to pass the arguments to xen on the xen command line, not the
>>> >> dom0 kernel command line.  So the following line should be:
>>> >>
>>> >> kernel /boot/xen.gz sched=rrobin
>>> >>
>>> >> (I haven't checked to make sure that "sched" is the right parameter.)
>>> >>
>>> >>  -George
>>> >>
>>> >> On Mon, Apr 27, 2009 at 7:39 PM, Ananth <cbananth@xxxxxxxxx> wrote:
>>> >> > Hi,
>>> >> > In continuation with my previous post, I am able to login to the
>>> >> > compiled
>>> >> > Xen. But it is continuing to run on credit scheduler even if i modify
>>> >> > the
>>> >> > kernel parameters to run using round robin scheduler.
>>> >> > I have pasted the contents of the /boot/grub/menu.lst file.
>>> >> >
>>> >> > title Xen -- openSUSE 11.0 - 2.6.18.8 manually compiled AGAIN
>>> >> > root (hd0,4)
>>> >> > kernel /boot/xen.gz
>>> >> > module /boot/vmlinuz-2.6.18.8-xen0
>>> >> > root=/dev/disk/by-id/scsi-SATA_Hitachi_HTS5416_SB2D04E4CE7YEE-part5
>>> >> > showopts
>>> >> > sched=rrobin vga=0x314
>>> >> > module /boot/initrd-2.6.18-xen0
>>> >> >
>>> >> > Incidentally, even if i give sched=sedf, it still runs only on credit
>>> >> > scheduler. Please let me know your feedback on this issue. My aim is
>>> >> > to
>>> >> > study the performance statistics of credit, sedf and new RR
>>> >> > scheduler.
>>> >> > It
>>> >> > would be great if you could give me any pointers to measure scheduler
>>> >> > performance or get statistics from the system.
>>> >> >
>>> >> > Thanks & Regards
>>> >> > Ananth
>>> >> >
>>> >> > ---------- Forwarded message ----------
>>> >> > From: Ananth <cbananth@xxxxxxxxx>
>>> >> > Date: Mon, Apr 27, 2009 at 6:45 PM
>>> >> > Subject: Re: [Xen-devel] Fwd: Error while compiling with new RR
>>> >> > scheduler
>>> >> > To: George Dunlap <dunlapg@xxxxxxxxx>
>>> >> > Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
>>> >> >
>>> >> >
>>> >> > 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@xxxxxxxxx>
>>> >> > 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@xxxxxxxxx>:
>>> >> >> > 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@xxxxxxxxx>
>>> >> >> > Date: Fri, Apr 24, 2009 at 7:25 PM
>>> >> >> > Subject: Error while compiling with new RR scheduler
>>> >> >> > To: "xen-devel@xxxxxxxxxxxxxxxxxxx"
>>> >> >> > <xen-devel@xxxxxxxxxxxxxxxxxxx>
>>> >> >> >
>>> >> >> >
>>> >> >> > 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@xxxxxxxxxxxxxxxxxxx
>>> >> >> > http://lists.xensource.com/xen-devel
>>> >> >> >
>>> >> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >
>>> >
>>> > _______________________________________________
>>> > Xen-devel mailing list
>>> > Xen-devel@xxxxxxxxxxxxxxxxxxx
>>> > http://lists.xensource.com/xen-devel
>>> >
>>> >
>>
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>> http://lists.xensource.com/xen-devel
>>
>>
>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel