Re: [PATCH v3 2/2] cxl: Calculate region bandwidth of targets with shared upstream link

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

 




On 6/7/24 7:30 AM, Jonathan Cameron wrote:
> 
>>>> +		if (is_cxl_root(parent_port)) {
>>>> +			ctx->port = parent_port;
>>>> +			cxl_coordinates_combine(ctx->coord, ctx->coord,
>>>> +						dport->coord);  
>>>
>>> I'm a bit lost in all the levels of iteration so may have missed it.
>>>
>>> Do we assume that GP BW (which is the root bridge) is shared across multiple root
>>> ports on that host bridge if they are both part of the interleave set?  
>>
>> Do we need to count the number of RPs under a HB and do min(aggregated_RPs_BW, (GP_BW / no of RPs) * affiliated_RPs_in_region)?
> 
> I'm not 100% sure I understand the question.
> 
> Taking this again and expanding it another level.
> 
> 
> 
>       Host CPU
> ______________________________________
>         |                           |
>         |                           |
>         | 3 from GP/HMAT            | 3 from GP/HMAT
>    _____|_____               _______|______
>   RP         RP             RP            RP
>   2|          |2           2|             |2
>  __|__     ___|__         __|___        __|____
> |1    |1  1|     |1      |1     |1     |1      |1
> EP   EP    EP    EP     EP     EP      EP     EP
> 
> Then your maths
> 
> aggregated RPs BW is 8
> (GP_BW/no of RPS) * affliated RPS in region.
> = (3/2 * 4)
> = 6

While the result is the same, the math would be this below right?
min((3/2 * 2), 4) + min((3/2 * 2), 4)

> Which is correct. So yes, I think that works if we assume everything is balanced.
> I'm fine with that assumption as that should be the common case.
> 
> 
> Jonathan
> 
> 




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux