Query about UCD allocation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Form a certain time, UFS drivers set the value of 'max_sectors' like below, meaning 1MB.
And the size of PRDT part of UCD per one slot is decided with SG_ALL(128) multiplied by PRDT entry size, 16 bytes if 4DW of PRDT is used.

If there is another knob to make it smaller to split a request, it seems UFS driver can receive 1MB of chunk.
And when 4KB page is used, 256 PRDT entries are necessary to describe data area.
Thus, it seems that the driver has been allocating less than it needs.

If my understanding is wrong, please correct me.

--
static const struct scsi_host_template ufshcd_driver_template = {
..
.max_sectors            = SZ_1M / SECTOR_SIZE,

static int ufshcd_memory_alloc(struct ufs_hba *hba)
..
        ucdl_size = ufshcd_get_ucd_size(hba) * hba->nutrs;

static inline size_t ufshcd_get_ucd_size(const struct ufs_hba *hba)
{
        return sizeof(struct utp_transfer_cmd_desc) + SG_ALL * ufshcd_sg_entry_size(hba);

Thanks.
Kiwoong Kim







[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux