RE: Updated MSI Patches

Nguyen, Tom L
2003-08-12T17:32:43Z

> > There are two types of MSI capable devices: one supports the MSI
> > capability structure and other supports the MSI-X capability structure.
> > The patches provide two APIs msix_alloc_vectors/msix_free_vectors for
> > only devices, which support the MSI-X capability structure, to request
> > for additional messages. By default, each MSI/MSI-X capable device
> > function is allocated with one vector for below reasons:
> > - To achieve a backward compatibility with existing drivers if possible.
> > - Due to the current implementation of vector assignment, all devices
> > that support the MSI-capability structure work with no more than one
> > allocated vector.
> > - The hardware devices, which support the MSI-X capability structure,
> > may indicate the maximum capable number of vectors supported (32
> > vectors as example). However, the device drivers may require only
> > four. With provided APIs, the optimization of MSI vector allocation
> > is achievable.

> IMO Multiplexing would be preferred, we can't be allocating that many
> vectors for one device/device driver
All pre-assigned vectors to all enabled IOxAPIC(s) are reserved.
Allocating additional vectors to MSI-X driver is determined based on the
available vectors, which must be greater than the number of vectors requested
by MSI-X driver.

Thanks,
Long