Re: [RFC][PATCH 0/2] SN platform needs platform_irq_to_vector?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi John,

John Keller wrote:
Hi,

This is FYI.

If VECTOR_DOMAIN_PERCPU is NOT enabled:

The "irq == vector" is always true in the following cases:
    - reserve_irq_vector(), which is used only by SN
    - create_irq() used on the system that has NO I/O SAPIC

Could you say a bit more about this case. I see create_irq()
calling find_unassigned_vector() and find_unassigned_irq().
How is "irq == vector" guaranteed to be always true in this case?

It's guaranteed as follows:

- When find_unassigned_vector()/find_unassigned_irq() search
  available vector and irq, it always start to search from
  IA64_FIRST_DEVICE_VECTOR.

- clear_irq_vector() releases both vector and irq.

Thanks,
Yasuaki

John



    - assign_irq_vector() with AUTO_ASSIGN specified
    - Vectors outside FIRST_DEVICE_VECTOR to LAST_DEVICE_VECTOR

The "irq == vector" is not always true in the folliwng cases:
    - create_irq() used on the system that has I/O SAPICs.
    - assign_irq_vector() with the value other than AUTO_ASSIGN
      specified on the system has I/O SAPICs.

And it is not ensured that those are true even in the future.

Yasuaki, could you check if it is correct?

Thanks,
Kenji Kaneshige



2007-08-02 (木) の 08:26 -0500 に John Keller さんは書きました:
Yes, we'll take a look at it.

John


Hi Kenji-san

I believe we need this property, but I am not 100% sure, so I am
going to forward your patch to our team who maintain the IRQ code
for Altix.

Mike, Aaron or John, would one of you have time to take a look at
this?

Thanks,
Jes


Kenji Kaneshige wrote:
Hi Jes-san, Russ-san, Christoph-san and SN platform developers,

I glanced over the SN code, and I found SN platform doesn't have SN
specific irq_to_vector() function, though it has SN specific
local_vector_to_irq() function. I guess it was OK because maybe SN
platform depends on irq == vector and old generic irq_to_vector() was
just returning the same value as irq.

The irq_to_vector() function, however, has been changed by vector
domain support, and currently it can return the different value from
irq, even when VECTOR_DOMAIN_PERCPU is not enabled. This can happen
when an interrupt thorough I/O SAPIC is unregistered and another
interupt is registered. So if my guess (SN platform depends on irq ==
vector) is true, something problem might happen on SN platform when
PCI hotplugging or driver reloading.

If it is true that SN platform depends on irq == vector, we need to
implement SN specific irq_to_vector() that returns the same value as
irq, I think. I made sample patches to implement platform specific
irq_to_vector() as follows. Note that [PATCH 2/2] is not tested yet
because I don't have any SN platform unfortunately.

    [PATCH 1/2] Add base support for platform_irq_to_vector()
    [PATCH 2/2] Implement platform_irq_to_vector() for SN

Could you give me comments?

Thanks,
Kenji Kaneshige


-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Sparc Linux]     [DCCP]     [Linux ARM]     [Yosemite News]     [Linux SCSI]     [Linux x86_64]     [Linux for Ham Radio]

  Powered by Linux