Hi Javen, Thanks for the reply.
I am not seeing any one calling the getcap SCSI_CAP_DMA_MAX routine.(I had prints in that case both in setcap and getcap functions but it never came up) Do we have to do some thing to tell midlayer to call this capability ? Please , let me know if you have any ideas. Thanks, Ram --- On Fri, 9/26/08, Javen Wu <[EMAIL PROTECTED]> wrote: From: Javen Wu <[EMAIL PROTECTED]> Subject: Re: [driver-discuss] maximum I/O size To: [EMAIL PROTECTED] Cc: "solaris driver" <driver-discuss@opensolaris.org> Date: Friday, September 26, 2008, 9:02 AM You need implement tran_getcap() routine, and set SCSI_CAP_DMA_MAX capability. sample code is as below: ------%<------ xxx_attach() { .... hba_tran->tran_getcap =xxx_scsi_getcap; ... } static int xxx_tran_getcap(struct scsi_address *ap, char *cap, int tgtonly) { switch (ckey) { case SCSI_CAP_DMA_MAX: rval = (int)xxx->dma_attr.dma_attr_maxxfer; break; default: rval = UNDEFINED; break; } ------%<------ Javen ram vegesna wrote: > > Hi, > > How can we tell the OS (scsi midlayer) to limit of I/O size > that the device can handle? > So, that OS will split any bigger size IO request into chunks of the > specified size. > > Please, let me know if I have to change some parameter in > ddi_dma_attr_t structure. > > Note : I am using Solaris 10 x86 > > Thanks, > Ram > > > ------------------------------------------------------------------------ > > _______________________________________________ > driver-discuss mailing list > driver-discuss@opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/driver-discuss >
_______________________________________________ driver-discuss mailing list driver-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/driver-discuss