Re: 2.5.46: kernel BUG at kernel/timer.c:333!

Andrew Morton
2002-11-11T18:06:44Z

> According to Andrew Morton:
> > Miquel van Smoorenburg wrote:
> > >
> > > I've booted 2.5.46bk5 on the machine, and it has been running for over
> > > 2 hours with extra heavy diskio. That reliably crashed the machine
> > > in about 45 minutes with 2.4.45 and 2.5.46, machine is still up now.
> >
> > OK, thanks.
>
> It survived the night and is still up. Looks like it runs slightly
> faster than 2.4.20-X.

Good, thanks.

> ..
> > mmapping a blockdev is a pretty dopey thing to do, btw. It doesn't
> > allow the use of highmem, the IO uses tiny BIOs (in fact I think
> > it uses 512-byte or 1k blocksize too) and there are buffer_heads
> > all over the place. You'll get better results from mmapping a
> > regular file.
>
> It's just that the news server uses its own 'filesystem'. It does
> normal read/write i/o on it, but the allocation bitmap at the
> beginning of the 'file' is mmap()ed. Using a regular file means
> creating a 160 GB file, the triple indirect blocks will probably
> kill performance.

hm, OK. mmapping just a little bit in that manner isn't so bad I
guess. But the general read() and write() implementation for blockdevs
is not as efficient as that for, say, ext2 files.

Probably I could turn on the direct-to-bio stuff for blockdevs if there is
no filesystem mounted. But with the regular open of /dev/hda1 there's no
way to prevent that.

The really scary problem is if some smarty tries to modify a blockdev
with MAP_SHARED while there's a live filesystem mounted. Even if they
modify "safe" parts of the filesystem, this will wreck the fs if it has
blocksize < pagesize. I'm not aware of a robust way of preventing this.

> I guess that means I have to resurrect rawfs, then (a filesystem
> I wrote for 2.2 that shows partitions as fixed-size files). But
> that seems so .. unnecessary.
>

What you're doing now should be OK.