On 06/15/09 20:38, Evan Yan wrote: > Hi Kais, > > Thanks for the comments. > > Pcitool and the interrupt affinity interfaces use the same under-layer > implementation to re-target interrupts to some cpu. Whatever read > operation will reflect the current binding status and whatever write > operation will override the former settings. >
so, back the example, let's say you you use pcitool to bind the interrupts from a physical NIC nxge0 to cpu1, the usecrossbow's dladm to set-linprop cpus=2 vnic1 and cpus=3 vnic2 (where vnic1 and vnic2 are built over nxge0) will pcitool show that nxge0's interrupts are bound to cpus 1, 2 and 3? Kais > Thanks, > -Evan > > Kais Belgaied wrote: > >>> This case also includes the contract for Crossbow framework to use these >>> interrupt affinity interfaces in place of existing PCITool ioctl >>> interfaces. >>> >>> >>> >> If I look at the this case in isolation from its expected consumers, and >> with pcitool as the >> only consumer of the CPU affinity APIs, I have no trouble sending a +1. >> However, when considering the overall architecture that includes both >> this case's deliverables as well as the changes >> expected imminently from its external consumers, I am unclear on how >> the system will behave when >> we use both pcitool and those consumers' interrupt settings. >> >> I'll use the interaction with Crossbow as an example. The point is >> similar for the interaction with other tools >> (intd(1m), etc). Say the system has a physical NIC nxge0, whose >> interrupts are bound the cpu's 1,2,3,4 >> using pcitool modified by this case. Later one creates vnic1 over nxge0 >> which >> used a couple of hardware rings out of nxge0's, and uses dladm >> set-linkprop cpus=5,6 vnic1. >> With the changes imported from this case, the implementation of that >> call of dladm will attempt >> to have the MSI/X interrupts assigned to the rings (thus the vnic1) >> bound to CPUs 5 and 6. >> Will such setting of vnic1's interrupts, fail because of a conflict >> with a previous binding by pcitool? >> will it succeed silently? what will the call to pcitool querying about >> the interrupt binding for >> nxge0 return then? CPUs 1,2,3,4 only, as set ? or will it surprisingly >> show 1,2,3,4,5,6? >> how about the other way around? will dladm get-linkprop vnic1 see the >> settings that were previously done >> by pcitool? >> >> >> Kais. >> >> > >