[Stgt-devel] iscsi target works, minor fixes

FUJITA Tomonori fujita.tomonori
Sun Nov 5 16:45:55 CET 2006


From: Pete Wyckoff <pw at osc.edu>
Subject: Re: [Stgt-devel] iscsi target works, minor fixes
Date: Sat, 4 Nov 2006 16:43:19 -0500

> fujita.tomonori at lab.ntt.co.jp wrote on Sat, 04 Nov 2006 01:04 +0900:
> > From: Pete Wyckoff <pw at osc.edu>
> > Subject: [Stgt-devel] iscsi target works, minor fixes
> > Date: Thu, 2 Nov 2006 19:45:48 -0500
> > 
> > > --- trunk/usr/bd_aio.c	(revision 609)
> > > +++ trunk/usr/bd_aio.c	(working copy)
> > > @@ -74,8 +74,8 @@ static void aio_event_handler(int fd, in
> > >  
> > >  	for (i = 0; i < nr; i++) {
> > >  		iocb = bai->events[i].obj;
> > > -		dprintf("%p\n", iocb->data);
> > > -		target_cmd_io_done(iocb->data, 0);
> > > +		dprintf("%p\n", bai->events[i].data);
> > > +		target_cmd_io_done(bai->events[i].data, 0);
> > >  	}
> > >  }
> > 
> > Is iocb->data bogus? It means that io_event->obj does not refer to
> > the appropriate iocb. I have no idea why.
> 
> Here's some logging from the latest stgt, with the extra %p in the debug
> message:
> 
> tgtd: iscsi_scsi_cmd_rx_start(1189) 1 28 4096 1 c
> tgtd: iscsi_scsi_cmd_rx_start(1198) 0x538010
> tgtd: iscsi_task_queue(1122) c c 1
> tgtd: target_cmd_queue(287) 28 0
> tgtd: scsi_cmd_perform(477) 28 4096
> tgtd: bd_aio_cmd_submit(159) 8 0 4096 538010 0 0x7fffe26e8510 0x534940
> tgtd: target_cmd_queue(307) c 28 538010 0 4096 0 1
> tgtd: aio_event_handler(83) 0x7fffe26e8510 0x7fffe26e8520
> 
> It's pretty clear to me that bai->events[i].data is what you should
> be using.  See the kernel's io_submit_one, where req->ki_user_data
> is set, then how it is returned to the user via event->data in
> aio_complete.  True, bai->events[i].obj gets set to the address of
> the iocb passed in, but as you used an iocb on the stack in
> bd_aio_cmd_submit, that cannot be trusted.

Oh, terribly sorry. I planed to use the iocb in bd_aio_info structure
then wrote the current makeshift code because of my laziness.

I applied your patch for now. Thanks.



More information about the stgt mailing list