Re: [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm1-V0.7.28-1
From: Ingo Molnar
Date: Mon Nov 22 2004 - 07:08:48 EST
* Christian Meder <chris@xxxxxxxxxxxxxxx> wrote:
> * the other important factor is running the jvm in profiling mode,
> running without jvm or with the jvm in non-profiling mode leaves the
> box stable
ah ... CPU profiling i suspect needs SIGPROF, and that is one of the
things that i had to disable in -RT. But it seems this disabling wasnt
fully correct - could you try the patch i attached, does it change the
symptoms?
> So the simplest setup I found til now is the following:
>
> chris@blue:~$ java -version
> java version "1.4.1"
> Java(TM) 2 Runtime Environment, Standard Edition (build Blackdown-1.4.1-01)
> Java HotSpot(TM) Client VM (build Blackdown-1.4.1-01, mixed mode)
> chris@blue:~$ JAVA_OPTIONS=-Xrunhprof:cpu=samples,file=crap.log,depth=3 jython
> Jython 2.1 on java1.4.1 (JIT: null)
> Type "copyright", "credits" or "license" for more information.
> >>>
>
> Now moving the mouse around in X will make the box lockup in less than
> 10 seconds.
>
> I'm not sure if JAVA_OPTIONS is a standard jython feature but at least
> it's part of the jython-wrapper script of Debian.
on a FC3 box this gives me:
saturn:~> JAVA_OPTIONS=-Xrunhprof:cpu=samples,file=crap.log,depth=3 jython
Exception in thread "main" java.lang.NoClassDefFoundError: error:
(i'm getting the same message when purely running 'jython')
i've got:
saturn:~> java -version
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)
is my java setup botched perhaps?
Ingo
--- linux/kernel/sched.c.orig
+++ linux/kernel/sched.c
@@ -2354,12 +2354,12 @@ static inline void account_it_virt(struc
if (cputime_gt(it_virt, cputime_zero) &&
cputime_gt(cputime, cputime_zero)) {
-#if 0
if (cputime_ge(cputime, it_virt)) {
it_virt = cputime_add(it_virt, p->it_virt_incr);
+#if 0
send_sig(SIGVTALRM, p, 1);
- }
#endif
+ }
it_virt = cputime_sub(it_virt, cputime);
p->it_virt_value = it_virt;
}
@@ -2376,12 +2376,12 @@ static void account_it_prof(struct task_
if (cputime_gt(it_prof, cputime_zero) &&
cputime_gt(cputime, cputime_zero)) {
-#if 0
if (cputime_ge(cputime, it_prof)) {
it_prof = cputime_add(it_prof, p->it_prof_incr);
+#if 0
send_sig(SIGPROF, p, 1);
- }
#endif
+ }
it_prof = cputime_sub(it_prof, cputime);
p->it_prof_value = it_prof;
}
@@ -2395,7 +2395,6 @@ static void account_it_prof(struct task_
*/
static void check_rlimit(struct task_struct *p, cputime_t cputime)
{
-#if 0
cputime_t total, tmp;
total = cputime_add(p->utime, p->stime);
@@ -2403,14 +2402,19 @@ static void check_rlimit(struct task_str
if (unlikely(cputime_gt(total, tmp))) {
/* Send SIGXCPU every second. */
tmp = cputime_sub(total, cputime);
- if (cputime_to_secs(tmp) < cputime_to_secs(total))
+ if (cputime_to_secs(tmp) < cputime_to_secs(total)) {
+#if 0
send_sig(SIGXCPU, p, 1);
+#endif
+ }
/* and SIGKILL when we go over max.. */
tmp = jiffies_to_cputime(p->signal->rlim[RLIMIT_CPU].rlim_max);
- if (cputime_gt(total, tmp))
+ if (cputime_gt(total, tmp)) {
+#if 0
send_sig(SIGKILL, p, 1);
- }
#endif
+ }
+ }
}
/*
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/