On 7/8/10 10:58 PM, FUJITA Tomonori wrote:
On Thu, 08 Jul 2010 22:48:13 -0700
Joe Eykholt<jeykholt@xxxxxxxxx> wrote:
When scsi_tgt_cmd_done calls scsi_unmap_user_pages (via queue_work),
we start to commit dirty pages to disk; __bio_unmap_user set pages
dirty. When the dirty bit of all the pages is cleared, the data is
committed safely. LLDs could check it, I think. If the write cache of
backing store is enabled, we more tricks though.
Would that work for all backing store alternatives or just the
default of writing to a file via mmap?
Tgt kernel drivers can support only I/O via mmap. Otherwise, we need
to copy data between user and kernel space.
Oh, that's good. I didn't understand that, obviously. Maybe the LLD just
needs to do a page flush or something (I would guess that's an available
API) before sending the response. I'll look into this, but if anyone knows
how to do it, I'd be grateful for the pointer.
Does this mean the mapping must be directly to the device (such as a mapped
block driver or a file) and not to some intermediate file? I suppose so.
We could add an explicit message but we should try hard to avoid it. I
really want to investigate this before adding another message.
That makes complete sense.
Thanks,
Joe
--
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