Re: [2.6 patch] remove four superfluous BUG's in ReiserFS

2003-07-23 Thread rwhron

The patch is a cleanup.  It saves 85 bytes on x86.

size hashes.o*
textdata bss dec hex filename
1333  16   01349 545 hashes.o
1248  16   01264 4f0 hashes.o.new

I tested the patch on uniprocessor x86 on filesystems
created with:

yes  y | mkreiserfs --format 3.6 -h tea /dev/hdc1
mount -t reiserfs -o defaults,noatime,notail /dev/hdc1 /fs1

The keyed_hash function has 20 less instructions on x86,
but performance improvement is very small.

The default hash is r5, so in the common case, the patch
doesn't do anything except save a few bytes.

Time to run dbench-2.0 32 4x and dbench-2.0 64 5x.
2.6.0-test1-ac2-r   8560 seconds  (patched)
2.6.0-test1-ac2-t   8615 seconds

The patched version is about .5% faster.

Oddly, the 3rd dbench 32 run on the unpatched version had 2
dbench processes that stayed Sleeping.  Killing the
dbench processes let everything continue.  Because of that
one skewed run,  I deleted the 3rd dbench time from the
seconds above for both kernels.

bonnie++-1.03a didn't have much different between
patched and unpatched except for sequential block i/o.

 Sequential Output
 --Block--
Kernel Size  MB/sec  %CPU   Eff
reiserfs-2.6.0-test1-ac2-r  1024  19.22  75.0 25.63  (patched)
reiserfs-2.6.0-test1-ac2-t  1024  18.18  70.0 25.97

tiobench-0.3.3 improvement with the patch was also small.

-- 
Randy Hron
http://home.earthlink.net/~rwhron/kernel/bigbox.html



redundant tests in hashes.c

2003-02-25 Thread rwhron
There are some BUG tests in hashes.c that will never be true.

--- linux-2.5.63/fs/reiserfs/hashes.c.orig  2003-02-14 22:07:21.0 -0500
+++ linux-2.5.63/fs/reiserfs/hashes.c   2003-02-25 21:47:46.0 -0500
@@ -90,10 +90,6 @@
 
if (len = 12)
{
-   //assert(len  16);
-   if (len = 16)
-   BUG();
-
a = (u32)msg[ 0]  |
(u32)msg[ 1]  8 |
(u32)msg[ 2]  16|
@@ -116,9 +112,6 @@
}
else if (len = 8)
{
-   //assert(len  12);
-   if (len = 12)
-   BUG();
a = (u32)msg[ 0]  |
(u32)msg[ 1]  8 |
(u32)msg[ 2]  16|
@@ -137,9 +130,6 @@
}
else if (len = 4)
{
-   //assert(len  8);
-   if (len = 8)
-   BUG();
a = (u32)msg[ 0]  |
(u32)msg[ 1]  8 |
(u32)msg[ 2]  16|
@@ -154,9 +144,6 @@
}
else
{
-   //assert(len  4);
-   if (len = 4)
-   BUG();
a = b = c = d = pad;
for(i = 0; i  len; i++)
{

-- 
Randy Hron
http://home.earthlink.net/~rwhron/kernel/bigbox.html



[reiserfs-list] oops from 2.5.42-mm3 running lilo on reiserfs

2002-10-15 Thread rwhron

AMD Athlon 1333
1GB (highmem enabled)
IDE disk
reiserfs filesystems

While running lilo I got this oops:

 kernel BUG at mm/highmem.c:177!
 invalid operand: 

 CPU:0
 EIP:0060:[c01325cf]Not tainted
 EFLAGS: 00010246
 EIP is at kunmap_high+0xf/0x80
 eax:    ebx: c195fe70   ecx: c037bb1c   edx: c037bb14
 esi: 0a00   edi: f6b31df4   ebp: 1000   esp: f6b63f3c
 ds: 0068   es: 0068   ss: 0068
 Process lilo (pid: 810, threadinfo=f6b62000 task=f7435940)
 Stack: c195fe70 0a00 c0111f5b c017c633 c195fe70 0001 f6b31df4 f737d3c0
0001 f6b31e50  c017c560 f6b31df4 f737d3c0 c01448e8 f6b31df4
f737d3c0 4004cd01 0001 4004cd01 ffe7 f737d3c0 0001 c0144aeb
 Call Trace:
  [c0111f5b] kunmap+0x2b/0x30
  [c017c633] reiserfs_unpack+0xc3/0x108
  [c017c560] reiserfs_ioctl+0x20/0x30
  [c01448e8] file_ioctl+0x148/0x160
  [c0144aeb] sys_ioctl+0x1eb/0x220
  [c0106e0b] syscall_call+0x7/0xb


-- 
Randy Hron
http://home.earthlink.net/~rwhron/kernel/bigbox.html




[reiserfs-list] Re: oops from 2.5.42-mm3 running lilo on reiserfs

2002-10-15 Thread rwhron

 While running lilo I got this oops:

  kernel BUG at mm/highmem.c:177!
  invalid operand: 

 Just delete it I think:

Yep, that fixes it.  By the way, system responsiveness
with all this stuff running is impressive:

Linux Test Project's runalltests.sh (lots of I/O).
configure/make/make test Python-2.2.2 (all tests okay)
setiathome  (cpu bound)
mp3blaster
lilo in a loop every 30 seconds.

mp3blaster was only quiet about 5 seconds during
a point when runalltests.sh was executing 100
CPU bound threads.  (float_bessel is the test)
There was no skipping during the test that writes
to all free memory + 600 megs swap. :)

2 python audio tests block on /dev/audio, but
that's expected.

You once had a 2.4 patch so lilo wouldn't wait too
long when there is a lot of I/O going on.  A couple
of the LTP tests would make lilo pause ~ 60 seconds:
growfiles -b -e 1 -i 0 -L 120 -u -g 4090 -T 100 -t 408990 -l -C 10 -c 1000 -S 10 -f 
Lgf02_
growfiles -b -e 1 -i 0 -L 120 -u -g 5000 -T 100 -t 40 -l -C 10 -c 1000 -S 10 -f 
Lgf03_

Those run for 120 seconds each in sync mode.  

I can enter and exit X with no problem.
2.5.42-mm3 is comfortable on my main box.
Thanks for making it so good.

-- 
Randy Hron
http://home.earthlink.net/~rwhron/kernel/bigbox.html




Re: [reiserfs-list] big reiserfs regression in 2.4.20-pre2

2002-08-20 Thread rwhron

   Is regression going away if you pass this mount option to reiserfs:
  -o alloc=preallocmin=4:preallocsize=9

 Yes.

 Great, I just found that we forgot to enable preallocation with new block
 allocator by default. This is easily fixable of course.

Is that in the 2.5.patch:
http://marc.theaimsgroup.com/?l=linux-kernelm=102984193227185w=2

Or will it be different for 2.4?

-- 
Randy Hron
http://home.earthlink.net/~rwhron/kernel/bigbox.html




[reiserfs-list] big reiserfs regression in 2.4.20-pre2

2002-08-15 Thread rwhron
128   31.52 111.6%36.264   104743.20  0.40728  0.11428   28
2.4.20-pre2128   22.31 87.18%36.25178916.66  0.46791  0.10154   26

2.4.20-pre1256   28.95 132.7%75.959   163159.61  0.79301  0.24067   22
2.4.20-pre2256   20.08 93.50%74.113   114883.50  0.83399  0.23864   21

Random Writes reiserfs - slightly improved.
   NumAvg   Maximum Lat% Lat%  CPU
Kernel Thr   Rate  (CPU%)   Latency Latency  2s 10s  Eff
-  ---  --
2.4.20-pre1  13.57  3.80% 0.0910.57  0.0  0.0   94
2.4.20-pre2  13.63  3.79% 0.0890.68  0.0  0.0   96

2.4.20-pre1 323.52  9.15% 0.654  268.43  0.0  0.0   38
2.4.20-pre2 323.57  8.15% 0.377  258.42  0.0  0.0   44

2.4.20-pre1 643.68  9.50% 0.567  196.77  0.0  0.0   39
2.4.20-pre2 643.78  9.76% 0.450  319.24  0.0  0.0   39

2.4.20-pre11283.48  8.38% 2.923  626.60  0.0  0.0   42
2.4.20-pre21283.54  8.98% 0.669  735.87  0.0  0.0   39

2.4.20-pre12563.45  9.11% 3.416  572.87  0.0  0.0   38
2.4.20-pre22563.59 10.12% 1.350  824.15  0.0  0.0   35

Bonnie++ did not have these regressions, but I run that as a single thread.

More on the tests at:
http://home.earthlink.net/~rwhron/kernel/bigbox.html
-- 
Randy Hron




[reiserfs-list] 2.5.9 kreiserfsd and sync hung in D state

2002-04-23 Thread rwhron

I didn't notice any of the 2.5.8.pending fixes in 
ChangeLog-2.5.9, and I haven't tried them with 2.5.9 yet.

Linux 2.5.9 without any patches.

Uninteruptable sleep created by:
mkreiserfs /dev/sdc2
mount -t reiserfs -o defaults,noatime /dev/sdc2 /fs2
cpio -pdm filenames |  /fs2
sync# this is what has hung

ps aux
USER   PID %CPU %MEM   VSZ  RSS TTY  STAT START   TIME COMMAND
root  1113  0.0  0.0 00 ?DW   03:49   0:00 [kreiserfsd]
root  1265  0.0  0.0  1636  488 ttyp0D03:52   0:00 sync

A similar mke2fs;mount;cpio;sync on ext2 did not hang.

The SCSI drivers for this machine were recently fixed in 2.5.9.  
They may not be bulletproof yet.

lspci
00:00.0 Host bridge: ServerWorks CNB20HE Host Bridge (rev 21)
00:00.1 Host bridge: ServerWorks CNB20HE Host Bridge (rev 01)
00:00.2 Host bridge: ServerWorks: Unknown device 0006
00:00.3 Host bridge: ServerWorks: Unknown device 0006
00:01.0 SCSI storage controller: Adaptec AIC-7880U (rev 02)
00:04.0 Ethernet controller: Intel Corp. 82557 [Ethernet Pro 100] (rev 08)
00:0c.0 VGA compatible controller: ATI Technologies Inc 3D Rage IIC 215IIC [Mach64 GT 
IIC] (rev 7a)
00:0f.0 ISA bridge: ServerWorks OSB4 South Bridge (rev 50)
00:0f.1 IDE interface: ServerWorks OSB4 IDE Controller
00:0f.2 USB Controller: ServerWorks OSB4/CSB5 OHCI USB Controller (rev 04)
01:05.0 PCI Hot-plug controller: Compaq Computer Corporation PCI Hotplug Controller 
(rev 11)
01:06.0 SCSI storage controller: Adaptec 7899P (rev 01)
01:06.1 SCSI storage controller: Adaptec 7899P (rev 01)
01:08.0 Ethernet controller: Intel Corp. 82557 [Ethernet Pro 100] (rev 08)
01:09.0 Ethernet controller: Intel Corp. 82557 [Ethernet Pro 100] (rev 08)
01:0a.0 Ethernet controller: Netgear GA620 (rev 01)
01:0b.0 Ethernet controller: Netgear GA620 (rev 01)
07:07.0 PCI Hot-plug controller: Compaq Computer Corporation PCI Hotplug Controller 
(rev 11)
07:0e.0 PCI bridge: Digital Equipment Corporation DECchip 21154 (rev 05)
09:04.0 SCSI storage controller: QLogic Corp. QLA2200 (rev 05)
09:05.0 SCSI storage controller: QLogic Corp. QLA2200 (rev 05)

I would like to get reiserfs on 2.5.9 working on this machine.
Any suggestions appreciated.


-- 
Randy Hron




Re: [reiserfs-list] 2.5.9 kreiserfsd and sync hung in D state

2002-04-23 Thread rwhron

 Ok. This one is working fine for me right now:
 angband:~ # mount /testfs0 -o defaults,noatime
 angband:~ # find * | cpio -pdm /testfs0
 4859 blocks
 angband:~ # sync
 angband:~ #

That basically is the test.

   Can you see where it hung? (alt-sysrq-T, if you have sysrq enabled).
  It has a serial console.  I'm checking on how to sysrq-T on it.
  (it's an OSDL machine).
 
 Waiting for your data.

Will post sysrq-T when I find out how.

  One other thing I noticed is that the load average was 3.99 on
  this 4 way x86 box.  The load average seems high, since it was
 
 Ah, so it is four way box. Mine is two way.
 
 Any other special things? HAve you enabled kernel preemption?
 Any other unusual config stuff?

No preempt.  It has highmem.  It also has tagged queueing
on AIC7 adapter. 

Here is the whole config:
CONFIG_X86=y
CONFIG_ISA=y
CONFIG_UID16=y
CONFIG_EXPERIMENTAL=y
CONFIG_NET=y
CONFIG_SYSVIPC=y
CONFIG_SYSCTL=y
CONFIG_MPENTIUMIII=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_HIGHMEM4G=y
CONFIG_HIGHMEM=y
CONFIG_MTRR=y
CONFIG_SMP=y
CONFIG_HAVE_DEC_LOCK=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_PCI=y
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_KCORE_ELF=y
CONFIG_BINFMT_ELF=y
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_SD_EXTRA_DEVS=40
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_SR_EXTRA_DEVS=2
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_AIC7XXX_OLD=y
CONFIG_AIC7XXX_OLD_TCQ_ON_BY_DEFAULT=y
CONFIG_AIC7XXX_OLD_CMDS_PER_DEVICE=8
CONFIG_SCSI_IPS=y
CONFIG_SCSI_QLOGIC_ISP=y
CONFIG_SCSI_QLOGIC_FC=y
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_LANCE=y
CONFIG_NET_PCI=y
CONFIG_EEPRO100=y
CONFIG_ACENIC=y
CONFIG_SOUND_GAMEPORT=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_SERIAL=y
CONFIG_SERIAL_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256
CONFIG_MOUSE=y
CONFIG_PSMOUSE=y
CONFIG_RTC=y
CONFIG_REISERFS_FS=y
CONFIG_EXT3_FS=y
CONFIG_JBD=y
CONFIG_RAMFS=y
CONFIG_ISO9660_FS=y
CONFIG_PROC_FS=y
CONFIG_DEVPTS_FS=y
CONFIG_EXT2_FS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
CONFIG_SUNRPC=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
CONFIG_MSDOS_PARTITION=y
CONFIG_VGA_CONSOLE=y
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y

-- 
Randy Hron




[reiserfs-list] reiserfsprogs-3.x.0k-pre13 mkreiserfs compatibility with linux-2.5.x

2001-12-09 Thread rwhron

mkreiserfs-3.x.0j works fine with 2.5.1-pre8.

mkreiserfs-3.x.0k-pre13 on linux-2.5.x prints this message:
mkreiserfs: You should run either 2.4 or 2. to be able to create reiserfs filesystem 
or specify desired format with -v

Is it safe to use this on 2.5.x?: mkreiserfs --format 3.6 /dev/hdX

It worked for me like this:

root@rushmore:/sbin# uname -a
Linux rushmore 2.5.1-pre8 #1 Sun Dec 9 01:59:26 EST 2001 i686 unknown

root@rushmore:/var/tmp# dd if=/dev/zero of=reiser bs=1M seek=100 count=1
1+0 records in
1+0 records out

root@rushmore:/var/tmp# losetup /dev/loop0 reiser

root@rushmore:/var/tmp# 
/usr/src/sources/r/reiserfsprogs-3.x.0k-pre13/mkreiserfs/mkreiserfs /dev/loop0

-mkreiserfs, 2001-
reiserfsprogs 3.x.0k-pre13

mkreiserfs: Guessing about desired format..
mkreiserfs: Kernel 2.5.1-pre8 is running.
mkreiserfs: You should run either 2.4 or 2. to be able to create reiserfs filesystem 
or specify desired format with -v

root@rushmore:/var/tmp# 
/usr/src/sources/r/reiserfsprogs-3.x.0k-pre13/mkreiserfs/mkreiserfs --format 3.6 
/dev/loop0
# filesystem builds ...
-- 
Randy Hron