> On 8/2/22 16:40, yohan.joung@xxxxxx 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.