Re: [SUGGESTION]: drop virtual merge accounting in I/O requests

From: Mikulas Patocka
Date: Thu Jul 10 2008 - 19:59:23 EST




On Fri, 11 Jul 2008, Julian Calaby wrote:

On Fri, Jul 11, 2008 at 07:56, Mikulas Patocka <mpatocka@xxxxxxxxxx> wrote:
Hi

I'm getting crashes with InitIO A100u2w controller on Sparc64 (I had to fix
the endianity issues in the driver, but that's unrelated).

When I examined the crashes, it turned out that SCSI layer passed requests
with too many segments. The controller has at most 32 SG entries per
request. It sets shost->sg_tablesize to 32, but despite this, larger
requests were submitted to it --- this resulted in overwriting random memory
and crashes.

[snip]

Should this have been CC'd to linux-scsi too? This sounds like it
could be a bug at their end.

Thanks,

--
Julian Calaby

This is not a bug in scsi layer, those "nr_hw_segments" miscalculations are hapenning in block/blk-merge.c and they can show up with any block device driver that has small number of SG entries.

But I can CC it there, just for their information.

Mikulas
--
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/