Re: [BUG,2.6.27] "fixpoint divide exception" while creating initramfs on Hercules

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

 



On Sat, 7 Mar 2009 20:54:28 +0100
Frans Pop <elendil@xxxxxxxxx> wrote:
> On Saturday 07 March 2009, Heiko Carstens wrote:
> > On Thu, 5 Mar 2009 23:20:51 +0100 Frans Pop <elendil@xxxxxxxxx> wrote:
> > > During installation of a new Debian kernel package while running
> > > 2.6.27.19 in the Hercules emulator, I got the following errors while
> > > the initamfs initrd was being created for the new kernel. After the
> > > error I had to break of the process. The second error is from a
> > > separate second try.
> > >
> > > With the current unstable Debian kernel (2.6.26) this error does not
> > > occur.
> > >
> > >  17180168.889947! Kernel BUG at 000738b4  verbose debug info unavailable!
> > >  17180168.890213! fixpoint divide exception: 0009  #1! SMP
> >
> > Looks like this was caused by an overflow in cpu time accounting.
> > Unfortunately I wasn't able to reproduce that here. We don't have any
> > arch specific patches wrt to cpu time accouting between 2.6.26 and
> > 2.6.27. However there was one patch in common code touching
> > acct_update_integrals which claims to fix an overflow.
> >
> > Could you try to revert commit 49b5cf34727a6c1be1568ab28e89a2d9a6bf51e0
> > "accounting: account for user time when updating memory integrals" and
> > see if the exception still occurs?
> 
> With .27.19 + that commit reverted I don't see the problem. I did two
> successfull kernel installs (incl. initrd creation).
> 
> To verify I then went back to the unpatched kernel and the problem was
> back during the first attempt to install a kernel, so reproduces reliably.
> 
> What do you suggest to do next? Take it to lkml and the patch author or
> do you want to look at it yourself a bit more first? If I provide any
> additional info, please ask.

hmm.. (added Jonathan to cc list). So in theory this can only happen if
acct_timexp is greater than stime + utime of the task.
Just by looking at the code I would say that can't happen. ;)

Could you try the patch below? Hopefully it gives us some more
hints about how much the values are screwed up.

---
 kernel/tsacct.c |    3 +++
 1 file changed, 3 insertions(+)

Index: linux-2.6.27.19/kernel/tsacct.c
===================================================================
--- linux-2.6.27.19.orig/kernel/tsacct.c
+++ linux-2.6.27.19/kernel/tsacct.c
@@ -124,6 +124,9 @@ void acct_update_integrals(struct task_s
 
 		time = tsk->stime + tsk->utime;
 		dtime = cputime_sub(time, tsk->acct_timexpd);
+		if ((long long)dtime < 0)
+			printk("stime: %llx utime: %llx acct_timexpd: %llx\n",
+			       tsk->stime, tsk->utime, tsk->acct_timexpd);
 		jiffies_to_timeval(cputime_to_jiffies(dtime), &value);
 		delta = value.tv_sec;
 		delta = delta * USEC_PER_SEC + value.tv_usec;
--
To unsubscribe from this list: send the line "unsubscribe linux-s390" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Kernel Development]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Info]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Linux Media]     [Device Mapper]

  Powered by Linux