[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20080211181254.5029b8b4.zaitcev@redhat.com>
Date: Mon, 11 Feb 2008 18:12:54 -0800
From: Pete Zaitcev <zaitcev@...hat.com>
To: FUJITA Tomonori <fujita.tomonori@....ntt.co.jp>
Cc: akpm@...ux-foundation.org, oliver.pntr@...il.com,
linux-kernel@...r.kernel.org, linux-mm@...ck.org,
linux-fsdevel@...r.kernel.org, jmorris@...ei.org,
linux-usb@...r.kernel.org, zaitcev@...hat.com
Subject: Re: [2.6.24 REGRESSION] BUG: Soft lockup - with VFS
On Tue, 12 Feb 2008 10:46:12 +0900, FUJITA Tomonori <fujita.tomonori@....ntt.co.jp> wrote:
> On a serious note, it seems that two scatter lists per request leaded
> to this bug. Can the scatter list in struct ub_request be removed?
Good question. It's an eyesore to be sure. The duplication exists
for the sake of retries combined with the separation of requests
from commands.
Please bear with me, if you're curious: commands can be launched
without requests (at probe time, for instance, or when sense is
requested). So, they need an s/g table. But then, the lifetime of
a request is greater than than of a command, in case of a retry
especially. Therefore a request needs the s/g table too.
So, one way to kill this duplication is to mandate that a
request existed for every command. It seemed like way more code
than just one memcpy() when I wrote it.
Another way would be to make commands flexible, e.g. sometimes with
just a virtual address and size, sometimes with an s/g table.
If you guys make struct scatterlist illegal to copy with memcpy
one day, this is probably what I'll do.
-- Pete
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists