Re: [PATCH 1/2] DLL backing store

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Richard Sharpe wrote:
On Sun, Aug 17, 2008 at 10:48 PM, Mark Harvey <markh794@xxxxxxxxx> wrote:
From ea4d57fca07516c03980970cf90b937c45e3811e Mon Sep 17 00:00:00 2001
From: Mark Harvey <markh794@xxxxxxxxx>
Date: Mon, 18 Aug 2008 15:03:21 +1000
Subject: New backing store for ssc type devices.

Uses a double-linked list header with each block of data.

Implement basic fixed block READ_6 & WRITE_6 OP codes.

Still along way to go.
- Race condition on blk header between threads.

Hmmm, why do you say there is a race here? Surely only one initiator
can access a tape at one time, and unless you have multiple threads
for the one tape, there should not be a problem here, unless I am
missing something?


It may be me that's missing something. I still have not got my head around the multi-threaded code.

However I assume that 'multi-threaded' allows a worker thread to accept one SCSI op code.

If the 2nd (or subsequent command) arrives during the update of the blk_header by the earlier thread, then there is a possibility of one thread using the blk_header belonging to the first thread and over writing each others data & header.

e.g.
writeA -> read blk_headerX (and start to copy/build new blk_headerY)
writeB arrives before writeA has completed building blk_headerY

Results is A & B writes will use the same blk_header (blk_headerX) information and over-write each others data.

I am more then happy to be told I'm wrong.

But I see some simple locking process during the period of 'read header -> update new header & save in SSC header'. Then allow actual write/read of any data process to complete outside the mutex/spinlock


Cheers
Mark
--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux SCSI]     [Linux RAID]     [Linux Clusters]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]

  Powered by Linux