Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Sep 2006 12:05:57 +0300
From:      Viktor Rosendahl <viktor.rosendahl@saunalahti.fi>
To:        stable@freebsd.org
Subject:   /usr/src/sys/i386/i386/local_apic.c and status of ULE
Message-ID:  <200609261205.57901.viktor.rosendahl@saunalahti.fi>

next in thread | raw e-mail | index | archive | help
--Boundary-00=_11OGF3JsTDmUTwn
Content-Type: text/plain;
  charset="us-ascii"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi all,

I wonder, what is the status of the ULE scheduler? Is it supposed to work at 
all?

I upgraded my -stable system some time ago and it started to hang at the end 
of the boot process, right before the mounting of the root device. I found 
out that the immediate cause was a change 
in  /usr/src/sys/i386/i386/local_apic.c.

I attach a patch that reverts the change, so that you can see what I am 
talking about. However, it only hangs if I use the ULE scheduler. That's why 
I wonder whether the ULE scheduler is supposed to work or not.

Now, I understand that it might very well depend on some additional local 
condition. Thus, I also attach my dmesg (of a successful boot) and my kernel 
configuration file.

best regards,

Viktor

--Boundary-00=_11OGF3JsTDmUTwn
Content-Type: text/x-diff;
  charset="us-ascii";
  name="apic.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="apic.diff"

diff -Naur src/sys/i386/i386/local_apic.c src.fixed/sys/i386/i386/local_apic.c
--- src/sys/i386/i386/local_apic.c	Sun Sep 24 02:56:22 2006
+++ src.fixed/sys/i386/i386/local_apic.c	Sun Mar 19 13:53:42 2006
@@ -610,18 +610,6 @@
 lapic_handle_timer(struct clockframe frame)
 {
 	struct lapic *la;
-
-#ifdef SMP
-	/*
-	 * Don't do any accounting for the disabled HTT cores, since it
-	 * will provide misleading numbers for the userland.
-	 *
-	 * No locking is necessary here, since even if we loose the race
-	 * when hlt_cpus_mask changes it is not a big deal, really.
-	 */
-	if ((hlt_cpus_mask & (1 << PCPU_GET(cpuid))) != 0)
-		return;
-#endif
 
 	la = &lapics[PCPU_GET(apic_id)];
 	(*la->la_timer_count)++;


--Boundary-00=_11OGF3JsTDmUTwn--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200609261205.57901.viktor.rosendahl>