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

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


  • To: Ananth <cbananth@xxxxxxxxx>
  • 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
  • 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=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

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


 


Rackspace

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