Date: Thu, 15 Aug 2013 16:41:27 +0000 (UTC) From: "Kenneth D. Merry" <ken@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254372 - head/sys/dev/isp Message-ID: <201308151641.r7FGfRSc012816@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ken Date: Thu Aug 15 16:41:27 2013 New Revision: 254372 URL: http://svnweb.freebsd.org/changeset/base/254372 Log: Export the maxio field in the CAM XPT_PATH_INQ CCB in the isp(4) driver. This tells consumers up the stack the maximum I/O size that the controller can handle. The I/O size is bounded by the number of scatter/gather segments the controller can handle and the page size. For an amd64 system, it works out to around 5MB. Reviewed by: mjacob MFC after: 3 days Sponsored by: Spectra Logic Modified: head/sys/dev/isp/isp_freebsd.c Modified: head/sys/dev/isp/isp_freebsd.c ============================================================================== --- head/sys/dev/isp/isp_freebsd.c Thu Aug 15 16:03:09 2013 (r254371) +++ head/sys/dev/isp/isp_freebsd.c Thu Aug 15 16:41:27 2013 (r254372) @@ -5445,6 +5445,11 @@ isp_action(struct cam_sim *sim, union cc cpi->max_target = ISP_MAX_TARGETS(isp) - 1; cpi->max_lun = ISP_MAX_LUNS(isp) - 1; cpi->bus_id = cam_sim_bus(sim); + if (isp->isp_osinfo.sixtyfourbit) + cpi->maxio = (ISP_NSEG64_MAX - 1) * PAGE_SIZE; + else + cpi->maxio = (ISP_NSEG_MAX - 1) * PAGE_SIZE; + bus = cam_sim_bus(xpt_path_sim(cpi->ccb_h.path)); if (IS_FC(isp)) { fcparam *fcp = FCPARAM(isp, bus);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308151641.r7FGfRSc012816>