Skip to content

[Question] Interrupt IN Endpoint On the MCTP USB Interface? #6

@santoshpuranik

Description

@santoshpuranik

Hi Jeremy,

There is a proposal on the DMTF PMCI WG to add an additional interrupt IN endpoint to the two BULK endpoints that exist on the MCTP USB interface. The idea there is that since interrupt transfers get guaranteed bus bandwidth, it would improve latency by reducing the need for host side implementations to always issue bulk INs.

The proposed flow would then be something like:

  1. Host sends a req over the bulk OUT
  2. Host queues an interrupt IN transfer (The HCD will handle the repeated polling per the bInterval)
  3. When the endpoint has data to send on the bulk IN, it will first send the number of bytes it has to send over the interrupt IN endpoint.
  4. The host reads the number of bytes available and submits a bulk IN. (Along with resubmitting the interrupt IN).

In my view, since bulk INs are guaranteed bandwidth on the bus, we will avoid the repeated NAKs for bulk INs, but I see little benefits of implementing the proposed changes:

  1. For a bus with many endpoints, the repeated interrupt INs can hog the bus bandwidth.
  2. There is added latency now between the driver receiving the number of bytes and it submitting the bulk IN (as opposed to before where it could just submit one or more bulk INs for each endpoint)
  3. They add complexity to the host side driver by forcing state into the IN transfers.

What are your thoughts on this proposal from a Linux driver implementation perspective? (Can add you to the DMTF PMCI WG stream if that helps)

Thanks,
Santosh

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions