Re: ide/scsi cd-rom differences, ide ok, errors copying with scsi cd-rom

Gerard Roudier (groudier@club-internet.fr)
Sun, 29 Jun 1997 17:56:55 +0200 (MET DST)


The patch against pre-2.0.30-2 I've sent that tries to fix the memory
problem, allows 1 recursion involving get_more_buffer_headers() in order
not to use GFP_ATOMIC allocation. That is a bit dangerous for the kernel
stacks and obviously I did'nt test it in all cases. The right approach is
probably to use GFP_ATOMIC allocation for buffer headers at least for
page IO but being given that:
- min_free_pages = memory size / 128 = 0.78 % of the whole memory,
- sizeof(buffer_head) is about 76 bytes for x86 -> 80/1024 = 7.8 % of the
same memory,
starting asynchronously page IOs for 10% of the whole memory can eat all
the reserved pages for buffer headers. The fact that buffers can be
allocated at ATOMIC priority also did'nt help.
In my opinion, some changes are to be done in the kernel, in order not to
do too much asynchronous IO for pages when free memory becomes too low.
Such changes in the kernel are beyond my skills.

Gerard.

On Sun, 29 Jun 1997, Richard Waltham wrote:

> Tried sending this a while ago but guess it got eaten by vger or some other
> system on the way. Apologies if you've already seen this.
>
> Looks to be several problems here.
>
> While copying a CD-Rom with SCSI CD-Rom to SCSI disk got the following
> errors and oops.
>
> Copying the same cd with an ide cd-rom drive has no such problems. Appears
> to be where file sizes are large. There is a note in the isofs file inode.c
> about files greater than 16MBytes where the error messages are generated
> and there are files on the cd up to 36MBytes.
>
> Is this a problem with the scsi sd-rom driver incorrectly initialising
> certain structures? There is obviously a difference between the structures
> initialised by the atapi/ide driver and scsi driver otherwise these messages
> wouldn't appear.
>
> Similar errors are apparent with some other cd's I have again with large
> files.
>
> kernel 2.0.30, pre-patch 2.0.31-2 + Gerard Roudier's buffer patch. System has
> 64Mbytes dram which seems relevent to the kmalloc if it is trying to
> allocate physical memory. SCSI CD drive is an old Toshiba 3301.
>
>
> Warning: defective cdrom (volume sequence number). Enabling "cruft" mount option.
> File unit size != 0 for ISO file (954846).
> Interleaved files not (yet) supported.
> File unit size != 0 for ISO file (934328).
> File unit size != 0 for ISO file (934438).
> File unit size != 0 for ISO file (1014204).
> File unit size != 0 for ISO file (862672).
> Interleaved files not (yet) supported.
> File unit size != 0 for ISO file (870830).
> File unit size != 0 for ISO file (860580).
> File unit size != 0 for ISO file (813508).
> kmalloc of too large a block (67702033 bytes).
> Interleaved files not (yet) supported.
>
>
> general protection: 0000
> CPU: 0
> EIP: 0010:[get_hash_table+52/172]
> EFLAGS: 00010286
> eax: aa93820c ebx: 03720b00 ecx: 037232f4 edx: 00000c83
> esi: 00000b00 edi: 00034783 ebp: 00000400 esp: 0368fe3c
> ds: 0018 es: 0018 fs: 002b gs: 002b ss: 0018
> Process cp (pid: 155, process nr: 21, stackpage=0368f000)
> Stack: 037232f4 00000b00 00034783 00000400 0368fe60 00000c83 00124893 00000b00
> 00034783 00000400 037232f4 00000400 00034783 03939dfc 00000001 00125058
> 00000b00 00034783 00000400 0191c000 001670f7 00000b00 00034783 00000400
> Call Trace: [getblk+47/936] [bread+24/124] [isofs_find_entry+611/1276] [isofs_lookup+148/412] [dir_namei+193/308] [lookup+222/248] [_namei+91/196]
> [namei+48/72] [sys_newstat+41/88] [system_call+82/128]
> Code: 39 38 75 24 66 39 58 04 75 1e 39 68 20 74 22 56 e8 1f fa ff
> Problem: block on freelist at 00087ed4 isn't free.
> last message repeated 55 times
> Problem: block on freelist at 02dd4190 isn't free.
> Problem: block on freelist at 02dd4190 isn't free.
> Problem: block on freelist at 02dd4190 isn't free.
> Problem: block on freelist at 00087ed4 isn't free.
> Problem: block on freelist at 02dd4190 isn't free.
> Problem: block on freelist at 00087ed4 isn't free.
>
> followed by at least a hundred more similar lines. Sytem is still running
> but unusable as any further commands generated a block on freelist isn't
> free message. Had to hard reset and reboot.
>
>
> --
> Richard Waltham | Work: richard@digtalinterface.demon.co.uk
> At home in | Home: dormouse@farsrobt.demon.co.uk
> Southampton UK | Compuserve 100421.1276
>
>