Re: stgt: backing store NULL sets uaddr to 0
|[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
On 8/5/10 5:25 PM, FUJITA Tomonori wrote:
On Thu, 05 Aug 2010 17:20:46 -0700 Joe Eykholt<jeykholt@xxxxxxxxx> wrote:Hi all, When I add a LUN using btype NULL: tgtadm --lld ftgt --op new --mode logicalunit --tid 1 --lun 2 -b null2 --bstype null I get this failure in the kernel on every read: [ 711.424119] scsi_map_user_pages(378) Could not handle request of size 4096. [ 711.431907] scsi_tgt_kspace_exec(514) cmd ffff88045b628eb8 ret -22 uaddr 0 len 4096 rw 2 scsi_map_user_pages() doesn't like uaddr == 0.Yeah, uaddr is supposed to be an user-space address.Should this be fixed in the kernel or in tgtd?Needs to fix tgtd.
Good. > "NULL" bstype means that we don't any real I/Os so
the kernel module has nothing to do with it.
The HBA still needs a buffer to transfer to or from. The kernel module could special-case uaddr 0 as being from the null bstype and just send out zeros and drop write data, but it would have to allocate a zero buffer, possibly large, for that. It'd be easier if the daemon would do the allocation and we didn't need to special-case it.
I'm using tgt-1.0.5 (very lightly modified to add ftgt).
Cheers, 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