RE: [PATCH v3] scsi: ufs: Increase the maximum data buffer size

정요한(JOUNG YOHAN) Mobile SE
2022-08-04T01:50:58Z

> On 8/2/22 16:40, yohan.joung@sk.com wrote:
> > Is it possible by adding only max_sector to increase the data buffer size?
>
> Yes.
>
> > I think the data buffer will split to 512 KiB, because the sg_table
> > size is SG_ALL
>
> I don't think so. With this patch applied, the limits supported by the UFS
> driver are as follows:
>
> .sg_tablesize = SG_ALL, /* 128 */
> .max_segment_size = PRDT_DATA_BYTE_COUNT_MAX, /* 256 KiB*/
> .max_sectors = (1 << 20) / SECTOR_SIZE, /* 1 MiB */
>
> So the maximum data buffer size is min(max_sectors * 512, sg_tablesize *
> max_segment_size) = min(1 MiB, 128 * 256 KiB) = 1 MiB. On a system with
> 4 KiB pages, the data buffer size will be 128 * 4 KiB = 512 MiB if none of
> the pages involved in the I/O are contiguous.
In block layer, max_segment_size is obtained from get_max_segment_size.
seg_boundary_mask is set to PAGE_SIZE - 1 in the ufs driver.
The segment size is the PAGE size, and the max buffer size is
segment size * max segment count ( PAGE SIZE * 128 ) = 512 KiB in block layer
Right?
>
> Bart.