From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: simple scheduler Date: Thu, 18 Feb 2010 16:55:57 +0000 Message-ID: <4B7D711D.6010909@eu.citrix.com> References: <14f366f91002150519y1a27774h6f5d6628734f8849@mail.gmail.com> <20100215185412.GX2861@reaktio.net> <14f366f91002161018h60504c10g9224480e24872c1c@mail.gmail.com> <20100216182909.GG2861@reaktio.net> <14f366f91002180851i2dbb2a57v1e4f0c7e005d05fd@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <14f366f91002180851i2dbb2a57v1e4f0c7e005d05fd@mail.gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "michele.paolino" Cc: "Xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org You want to raise it every time a vcpu wakes up.=20 vcpus often sleep when there is nothing to do, waiting for an interrupt=20 / event to be delivered. When an event is delivered, Xen will run=20 vcpu_wake(), and consider the matter done. Which means your simple scheduler needs to handle the wake() callback,=20 and at some point raise the schedule softirq for the appropriate=20 processor so that the vcpu in question can run. -George michele.paolino wrote: > Thanks George, now it works! In my code SCHEDULE_SOFTIRQ is never getti= ng > raised. Now I raise it in add_vcpu function. Is this the best place to = raise > SCHEDULE_SOFTIRQ? > Michele > > On Wed, Feb 17, 2010 at 12:43 PM, George Dunlap =20 >> wrote: >> =20 > > =20 >> Did you add a printk to your schedule() function to see if it's gettin= g >> called? >> >> schedule() is called from within the SCHEDULE_SOFTIRQ. Look at >> xen/common/sched_credit.c. When is SCHEDULE_SOFTIRQ getting raised? >> Are you doing that in your scheduler? >> >> -George >> >> On Tue, Feb 16, 2010 at 6:29 PM, Pasi K=E4rkk=E4inen wr= ote: >> =20 >>> On Tue, Feb 16, 2010 at 07:18:00PM +0100, michele.paolino wrote: >>> =20 >>>> Thanks for the istructions, >>>> I have read that thread but is not useful for me. I have compiled= and >>>> installed the round robin scheduler of that thread. Both schedule= rs >>>> =20 >> have >> =20 >>>> the same behavior. Following your advice I have set up a serial >>>> =20 >> console. I >> =20 >>>> have attached serial console's log along with this mail. As I >>>> =20 >> supposed, >> =20 >>>> dom0 doesn't start. >>>> >>>> =20 >>> Please paste your grub.conf. >>> >>> It could be that your dom0 kernel is not configured to use the serial >>> =20 >> console. >> =20 >>> -- Pasi >>> >>> =20 >>>> Michele >>>> >>>> On Mon, Feb 15, 2010 at 7:54 PM, Pasi K=E4rkk=E4inen <[1]pasik@ik= i.fi> >>>> =20 >> wrote: >> =20 >>>> On Mon, Feb 15, 2010 at 01:59:06PM +0000, George Dunlap wrote: >>>> > Do you have a serial console set up? >>>> > >>>> >>>> If not, instructions here: >>>> [2]http://wiki.xensource.com/xenwiki/XenSerialConsole >>>> -- Pasi >>>> > You may want to skim this thread: >>>> > >>>> [3] >>>> =20 >> http://lists.xensource.com/archives/html/xen-devel/2009-04/msg01086.ht= ml >> =20 >>>> > to see if any of the advice given there is useful. >>>> > >>>> > -George >>>> > >>>> > On Mon, Feb 15, 2010 at 1:19 PM, michele.paolino >>>> > <[4]michele.paolino@studio.unibo.it> wrote: >>>> > > Hi! I'm writing a simple scheduler to study the xen schedul= er >>>> interfaces. >>>> > > I am able to compile and install it. After reboot when I tr= y to >>>> select >>>> > > sched=3Dsimple, the system gets ready to boot and then ever= ything >>>> =20 >> goes >> =20 >>>> blank. >>>> > > I think that dom0 don't start. I can't be able to solve thi= s >>>> problem, can >>>> > > anybody help me? >>>> > > I have attached my simple scheduler code along with this ma= il. >>>> > > >>>> > > Thanks, >>>> > > Michele >>>> > > >>>> > > _______________________________________________ >>>> > > Xen-devel mailing list >>>> > > [5]Xen-devel@lists.xensource.com >>>> > > [6]http://lists.xensource.com/xen-devel >>>> > > >>>> > > >>>> > >>>> > _______________________________________________ >>>> > Xen-devel mailing list >>>> > [7]Xen-devel@lists.xensource.com >>>> > [8]http://lists.xensource.com/xen-devel >>>> >>>> References >>>> >>>> Visible links >>>> 1. mailto:pasik@iki.fi >>>> 2. http://wiki.xensource.com/xenwiki/XenSerialConsole >>>> 3. >>>> =20 >> http://lists.xensource.com/archives/html/xen-devel/2009-04/msg01086.ht= ml >> =20 >>>> 4. mailto:michele.paolino@studio.unibo.it >>>> 5. mailto:Xen-devel@lists.xensource.com >>>> 6. http://lists.xensource.com/xen-devel >>>> 7. mailto:Xen-devel@lists.xensource.com >>>> 8. http://lists.xensource.com/xen-devel >>>> =20 >>>> __ __ _____ _ _ ____ >>>> \ \/ /___ _ __ |___ /| || | |___ \ >>>> \ // _ \ '_ \ |_ \| || |_ __) | >>>> / \ __/ | | | ___) |__ _| / __/ >>>> /_/\_\___|_| |_| |____(_) |_|(_)_____| >>>> >>>> (XEN) Xen version 3.4.2 (root@) (gcc version 4.2.4 (Ubuntu >>>> =20 >> 4.2.4-1ubuntu4)) Mon Feb 15 15:12:25 CET 2010 >> =20 >>>> (XEN) Latest ChangeSet: unavailable >>>> (XEN) Command line: dom0_mem=3D262144 sched=3Dsimple loglvl=3Dall >>>> =20 >> guest_loglvl=3Dall com1=3D115200,8n1 console=3Dcom1 >> =20 >>>> (XEN) Video information: >>>> (XEN) VGA is text mode 80x25, font 8x16 >>>> (XEN) Disc information: >>>> (XEN) Found 1 MBR signatures >>>> (XEN) Found 1 EDD information structures >>>> (XEN) Xen-e820 RAM map: >>>> (XEN) 0000000000000000 - 000000000009f000 (usable) >>>> (XEN) 000000000009f000 - 00000000000a0000 (reserved) >>>> (XEN) 00000000000e8000 - 0000000000100000 (reserved) >>>> (XEN) 0000000000100000 - 000000003fff0000 (usable) >>>> (XEN) 000000003fff0000 - 0000000040000000 (ACPI data) >>>> (XEN) 00000000fffbc000 - 0000000100000000 (reserved) >>>> (XEN) System RAM: 1023MB (1048124kB) >>>> (XEN) ACPI: RSDP 000FBDB0, 0014 (r0 QEMU ) >>>> (XEN) ACPI: RSDT 3FFF0000, 0034 (r1 QEMU QEMURSDT 1 QEMU >>>> =20 >> 1) >> =20 >>>> (XEN) ACPI: FACP 3FFF01B4, 0074 (r1 QEMU QEMUFACP 1 QEMU >>>> =20 >> 1) >> =20 >>>> (XEN) ACPI: DSDT 3FFF0280, 1DD4 (r1 BXPC BXDSDT 1 INTL >>>> =20 >> 20090521) >> =20 >>>> (XEN) ACPI: FACS 3FFF0240, 0040 >>>> (XEN) ACPI: SSDT 3FFF2054, 09E3 (r1 BXPC BXSSDT 1 INTL >>>> =20 >> 20090521) >> =20 >>>> (XEN) ACPI: APIC 3FFF2A38, 00EA (r1 QEMU QEMUAPIC 1 QEMU >>>> =20 >> 1) >> =20 >>>> (XEN) ACPI: HPET 3FFF2B90, 0038 (r1 QEMU QEMUHPET 1 QEMU >>>> =20 >> 1) >> =20 >>>> (XEN) NUMA turned off >>>> (XEN) Faking a node at 0000000000000000-000000003fff0000 >>>> (XEN) Xen heap: 9MB (9808kB) >>>> (XEN) Domain heap initialised >>>> (XEN) found SMP MP-table at 000fbc90 >>>> (XEN) DMI 2.4 present. >>>> (XEN) Using APIC driver default >>>> (XEN) ACPI: PM-Timer IO Port: 0xb008 >>>> (XEN) ACPI: ACPI SLEEP INFO: pm1x_cnt[b004,0], pm1x_evt[b000,0] >>>> (XEN) ACPI: wakeup_vec[3fff024c], vec_size[20] >>>> (XEN) ACPI: Local APIC address 0xfee00000 >>>> (XEN) ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) >>>> (XEN) Processor #0 6:2 APIC version 20 >>>> (XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] disabled) >>>> (XEN) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] disabled) >>>> (XEN) ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] disabled) >>>> (XEN) ACPI: LAPIC (acpi_id[0x04] lapic_id[0x04] disabled) >>>> (XEN) ACPI: LAPIC (acpi_id[0x05] lapic_id[0x05] disabled) >>>> (XEN) ACPI: LAPIC (acpi_id[0x06] lapic_id[0x06] disabled) >>>> (XEN) ACPI: LAPIC (acpi_id[0x07] lapic_id[0x07] disabled) >>>> (XEN) ACPI: LAPIC (acpi_id[0x08] lapic_id[0x08] disabled) >>>> (XEN) ACPI: LAPIC (acpi_id[0x09] lapic_id[0x09] disabled) >>>> (XEN) ACPI: LAPIC (acpi_id[0x0a] lapic_id[0x0a] disabled) >>>> (XEN) ACPI: LAPIC (acpi_id[0x0b] lapic_id[0x0b] disabled) >>>> (XEN) ACPI: LAPIC (acpi_id[0x0c] lapic_id[0x0c] disabled) >>>> (XEN) ACPI: LAPIC (acpi_id[0x0d] lapic_id[0x0d] disabled) >>>> (XEN) ACPI: LAPIC (acpi_id[0x0e] lapic_id[0x0e] disabled) >>>> (XEN) ACPI: LAPIC (acpi_id[0x0f] lapic_id[0x0f] disabled) >>>> (XEN) ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0]) >>>> (XEN) IOAPIC[0]: apic_id 1, version 17, address 0xfec00000, GSI 0-23 >>>> (XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) >>>> (XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level) >>>> (XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) >>>> (XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level) >>>> (XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level) >>>> (XEN) ACPI: IRQ0 used by override. >>>> (XEN) ACPI: IRQ2 used by override. >>>> (XEN) ACPI: IRQ5 used by override. >>>> (XEN) ACPI: IRQ9 used by override. >>>> (XEN) ACPI: IRQ10 used by override. >>>> (XEN) ACPI: IRQ11 used by override. >>>> (XEN) Enabling APIC mode: Flat. Using 1 I/O APICs >>>> (XEN) ACPI: HPET id: 0x8086a201 base: 0xfed00000 >>>> (XEN) Using ACPI (MADT) for SMP configuration information >>>> (XEN) Using scheduler: Very simple Scheduler (simple) >>>> (XEN) >>>> (XEN) >>>> (XEN) add VCPU 0 >>>> (XEN) >>>> (XEN) Initializing CPU#0 >>>> (XEN) Detected 2533.353 MHz processor. >>>> (XEN) CPU: L1 I cache: 32K, L1 D cache: 32K >>>> (XEN) CPU: L2 cache: 2048K >>>> (XEN) Intel machine check reporting enabled on CPU#0. >>>> (XEN) CMCI: CPU0 has no CMCI support >>>> (XEN) CPU0: Intel QEMU Virtual CPU version 0.11.0 stepping 03 >>>> (XEN) Total of 1 processors activated. >>>> (XEN) ENABLING IO-APIC IRQs >>>> (XEN) -> Using new ACK method >>>> (XEN) ..TIMER: vector=3D0xF0 apic1=3D0 pin1=3D2 apic2=3D-1 pin2=3D-1 >>>> (XEN) BAD HPET revision id. >>>> (XEN) Platform timer is 3.579MHz ACPI PM Timer >>>> (XEN) Brought up 1 CPUs >>>> (XEN) I/O virtualisation disabled >>>> (XEN) CPUIDLE: disabled due to no HPET. Force enable with 'cpuidle'. >>>> (XEN) ACPI sleep modes: S3 >>>> (XEN) mcheck_poll: Machine check polling timer started. >>>> (XEN) *** LOADING DOMAIN 0 *** >>>> (XEN) Xen kernel: 32-bit, PAE, lsb >>>> (XEN) Dom0 kernel: 32-bit, PAE, lsb, paddr 0xc0100000 -> 0xc048d33c >>>> (XEN) PHYSICAL MEMORY ARRANGEMENT: >>>> (XEN) Dom0 alloc.: 000000003c000000->000000003e000000 (57344 page= s to >>>> =20 >> be allocated) >> =20 >>>> (XEN) VIRTUAL MEMORY ARRANGEMENT: >>>> (XEN) Loaded kernel: c0100000->c048d33c >>>> (XEN) Init. ramdisk: c048e000->c1380c00 >>>> (XEN) Phys-Mach map: c1381000->c13c1000 >>>> (XEN) Start info: c13c1000->c13c147c >>>> (XEN) Page tables: c13c2000->c13d3000 >>>> (XEN) Boot stack: c13d3000->c13d4000 >>>> (XEN) TOTAL: c0000000->c1800000 >>>> (XEN) ENTRY ADDRESS: c0100000 >>>> (XEN) Dom0 has maximum 1 VCPUs >>>> (XEN) Scrubbing Free RAM: .......done. >>>> (XEN) Xen trace buffers: disabled >>>> (XEN) Std. Loglevel: All >>>> (XEN) Guest Loglevel: All >>>> (XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch >>>> =20 >> input to Xen) >> =20 >>>> (XEN) Freed 116kB init memory. >>>> =20 >>> _______________________________________________ >>> Xen-devel mailing list >>> Xen-devel@lists.xensource.com >>> http://lists.xensource.com/xen-devel >>> >>> =20