> -----Original Message----- > From: Thomas Gleixner [mailto:tglx@xxxxxxxxxxxxx] > Sent: Sunday, February 20, 2011 11:16 AM > To: KY Srinivasan > Cc: gregkh@xxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > devel@xxxxxxxxxxxxxxxxxxxxxx; virtualization@xxxxxxxxxxxxxx; Haiyang Zhang; Hank > Janssen > Subject: RE: [PATCH]: Staging: hv: Allocate the vmbus irq dynamically > > On Sat, 19 Feb 2011, KY Srinivasan wrote: > > > When grabbing some random irq from the PIC is not an issue, then > > > what's the point of this probing, retry loop and the comments about > > > racing ? What races here? That does not make sense at all. > > > > Like most virtualization platforms, Hyper-V also emulates the full PC > > platform. So, it is possible that the driver of some other emulated > > devices might register for the IRQ line we might have selected. That > > is the race this code addresses. For performance reasons, we want > > both storage and network traffic to go over the PV drivers. > > So in case your driver gets the interrupt line first, which the other > driver wants to acquire as well, then what? Do you want to do that > probe magic in the other driver as well? What if this is a regular > device driver which gets its irq number from ACPI/PCI or > whatever. Then that driver simply wont work as it's interrupt line is > busy. > > > > > > > I don't know why the previous reviewer wanted to have that > > > dynamic. That just does not make sense to me. > > > > Prior to this patch, we had a hard coded interrupt line for use by > > this driver. If that line was already in use, the load of this driver > > would fail. This would be a fatal issue especially for distributions > > that have embedded these PV drivers as part of their installation > > media. This patch deals with such collisions in a more graceful way - > > we would not bail until we have scanned all low interrupt lines. > > So you trade breaking the PV stuff against breaking random other > drivers? That doesn't sound like a brilliant idea. > > There are various ways to solve that proper. > > - You can provide the interrupt number from ACPI/PCI or whatever your HV > provides as enumeration. > > - Use a fixed vector like XEN does for the event channel > > - Use dynamic allocation in the IOAPIC space like the kernel does for > MSI(-X) > > Thanks, > > tglx I am not claiming that what I have done here is the best possible solution. However, I will submit to you that it is better than what we had here prior to this patch. I will address this and a whole lot of other issues in future patches. Regards, K. Y _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel