lkml.org 
[lkml]   [2003]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Updated MSI Patches
On Mon, 11 Aug 2003, Greg KH wrote:

> > 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

> > I hope there may be a way to determine the number of vectors supported
> > by CPU during the run-time. I look at the file ../include/asm-i386/mach-
> > default/irq_vectors.h, the maximum of vectors (256) is already well
> > commented.
>
> Yeah, but that's in reference to APIC interrupt sources, right? Does
> that correspond to these "vectors" too? If so, why not just use the
> existing NR_IRQS value instead of creating your own?

There isn't a 1:1 relationship between NR_IRQS and NR_VECTORS we really
shouldn't mix them together. NR_IRQS can be much higher than 256 whilst
on i386 we're fixed to 256 vectors due to that being the Interrupt
Descriptor Table capacity. It is still possible to service more interrupt
lines than 256 on SMP however by making IDTs per 'interrupt servicing
node'

Zwane

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:47    [W:0.038 / U:0.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site