Re: sharing interrupt between PCI device - Kernel

This is a discussion on Re: sharing interrupt between PCI device - Kernel ; Yes USB Virtual Controller has input devices like keyboard and mouse (routed through hpilo card (remote console)), so those things stops working when we remove hpilo driver. Thanks Nobin Mathew On Mon, Nov 10, 2008 at 1:28 PM, Ingo Molnar ...

+ Reply to Thread
Page 2 of 2 FirstFirst 1 2
Results 21 to 27 of 27

Thread: Re: sharing interrupt between PCI device

  1. Re: sharing interrupt between PCI device

    Yes USB Virtual Controller has input devices like keyboard and mouse
    (routed through hpilo card (remote console)), so those things stops
    working when we remove hpilo driver.

    Thanks
    Nobin Mathew

    On Mon, Nov 10, 2008 at 1:28 PM, Ingo Molnar wrote:
    >
    > * Grant Grundler wrote:
    >
    >> [+ingo - question for you about disable_irq() below]

    >
    >> The same problem exists with disable_irq() : only takes a global
    >> IRQ# and no additional identifying information to prevent disabling
    >> a shared IRQ. So I'm not sure if this is a bug with ACPI or design
    >> flaw in generic IRQ APIs. Ingo?

    >
    > that's how disable_irq() always worked: it disables all handlers on
    > that IRQ#. If the IRQ# is shared, it disables all handlers.
    >
    > Ingo
    >

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

  2. Re: sharing interrupt between PCI device

    I could not find the definition of acpi_unregister_gsi in i386/x86_64
    code, it is defined only for ia64.

    Since it is defined as a weak symbol, I feel it is not getting called
    (correct if I am wrong, I searched in google for this).

    /* FIXME: implement x86/x86_64 version */
    void __attribute__ ((weak)) acpi_unregister_gsi(u32 i)
    {
    }

    How this weak symbols work, is it something like
    acpi_pci_irq_disable() will not call acpi_unregister_gsi() in some
    platforms.

    Thanks
    Nobin Mathew.

    On Mon, Nov 10, 2008 at 4:01 PM, Nobin Mathew wrote:
    > Yes USB Virtual Controller has input devices like keyboard and mouse
    > (routed through hpilo card (remote console)), so those things stops
    > working when we remove hpilo driver.
    >
    > Thanks
    > Nobin Mathew
    >
    > On Mon, Nov 10, 2008 at 1:28 PM, Ingo Molnar wrote:
    >>
    >> * Grant Grundler wrote:
    >>
    >>> [+ingo - question for you about disable_irq() below]

    >>
    >>> The same problem exists with disable_irq() : only takes a global
    >>> IRQ# and no additional identifying information to prevent disabling
    >>> a shared IRQ. So I'm not sure if this is a bug with ACPI or design
    >>> flaw in generic IRQ APIs. Ingo?

    >>
    >> that's how disable_irq() always worked: it disables all handlers on
    >> that IRQ#. If the IRQ# is shared, it disables all handlers.
    >>
    >> Ingo
    >>

    >

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

  3. Re: sharing interrupt between PCI device

    On Mon, Nov 10, 2008 at 09:12:05PM +0530, Nobin Mathew wrote:
    > I could not find the definition of acpi_unregister_gsi in i386/x86_64
    > code, it is defined only for ia64.


    Sorry - I was looking at the ia64 branch by mistake.

    >
    > Since it is defined as a weak symbol, I feel it is not getting called
    > (correct if I am wrong, I searched in google for this).


    You are right.

    sorry,
    grant

    > /* FIXME: implement x86/x86_64 version */
    > void __attribute__ ((weak)) acpi_unregister_gsi(u32 i)
    > {
    > }
    >
    > How this weak symbols work, is it something like
    > acpi_pci_irq_disable() will not call acpi_unregister_gsi() in some
    > platforms.
    >
    > Thanks
    > Nobin Mathew.
    >
    > On Mon, Nov 10, 2008 at 4:01 PM, Nobin Mathew wrote:
    > > Yes USB Virtual Controller has input devices like keyboard and mouse
    > > (routed through hpilo card (remote console)), so those things stops
    > > working when we remove hpilo driver.
    > >
    > > Thanks
    > > Nobin Mathew
    > >
    > > On Mon, Nov 10, 2008 at 1:28 PM, Ingo Molnar wrote:
    > >>
    > >> * Grant Grundler wrote:
    > >>
    > >>> [+ingo - question for you about disable_irq() below]
    > >>
    > >>> The same problem exists with disable_irq() : only takes a global
    > >>> IRQ# and no additional identifying information to prevent disabling
    > >>> a shared IRQ. So I'm not sure if this is a bug with ACPI or design
    > >>> flaw in generic IRQ APIs. Ingo?
    > >>
    > >> that's how disable_irq() always worked: it disables all handlers on
    > >> that IRQ#. If the IRQ# is shared, it disables all handlers.
    > >>
    > >> Ingo
    > >>

    > >

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

  4. Re: sharing interrupt between PCI device

    On Mon, Nov 10, 2008 at 08:58:27AM +0100, Ingo Molnar wrote:
    >
    > * Grant Grundler wrote:
    >
    > > [+ingo - question for you about disable_irq() below]

    >
    > > The same problem exists with disable_irq() : only takes a global
    > > IRQ# and no additional identifying information to prevent disabling
    > > a shared IRQ. So I'm not sure if this is a bug with ACPI or design
    > > flaw in generic IRQ APIs. Ingo?

    >
    > that's how disable_irq() always worked: it disables all handlers on
    > that IRQ#. If the IRQ# is shared, it disables all handlers.


    Ingo,
    Sorry - my question really was: given the above, should
    pcibios_disable_device() be calling pcibios_disable_irq()?

    Right now, I think not.

    thanks,
    grant

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

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

  5. Re: sharing interrupt between PCI device

    Adding david to CC

    On Tue, Nov 11, 2008 at 2:04 AM, Grant Grundler
    wrote:
    > On Mon, Nov 10, 2008 at 09:12:05PM +0530, Nobin Mathew wrote:
    >> I could not find the definition of acpi_unregister_gsi in i386/x86_64
    >> code, it is defined only for ia64.

    >
    > Sorry - I was looking at the ia64 branch by mistake.
    >
    >>
    >> Since it is defined as a weak symbol, I feel it is not getting called
    >> (correct if I am wrong, I searched in google for this).

    >
    > You are right.
    >
    > sorry,
    > grant
    >
    >> /* FIXME: implement x86/x86_64 version */
    >> void __attribute__ ((weak)) acpi_unregister_gsi(u32 i)
    >> {
    >> }
    >>
    >> How this weak symbols work, is it something like
    >> acpi_pci_irq_disable() will not call acpi_unregister_gsi() in some
    >> platforms.
    >>
    >> Thanks
    >> Nobin Mathew.
    >>
    >> On Mon, Nov 10, 2008 at 4:01 PM, Nobin Mathew wrote:
    >> > Yes USB Virtual Controller has input devices like keyboard and mouse
    >> > (routed through hpilo card (remote console)), so those things stops
    >> > working when we remove hpilo driver.
    >> >
    >> > Thanks
    >> > Nobin Mathew
    >> >
    >> > On Mon, Nov 10, 2008 at 1:28 PM, Ingo Molnar wrote:
    >> >>
    >> >> * Grant Grundler wrote:
    >> >>
    >> >>> [+ingo - question for you about disable_irq() below]
    >> >>
    >> >>> The same problem exists with disable_irq() : only takes a global
    >> >>> IRQ# and no additional identifying information to prevent disabling
    >> >>> a shared IRQ. So I'm not sure if this is a bug with ACPI or design
    >> >>> flaw in generic IRQ APIs. Ingo?
    >> >>
    >> >> that's how disable_irq() always worked: it disables all handlers on
    >> >> that IRQ#. If the IRQ# is shared, it disables all handlers.
    >> >>
    >> >> Ingo
    >> >>
    >> >

    >

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

  6. RE: sharing interrupt between PCI device


    >> On Mon, Nov 10, 2008 at 4:01 PM, Nobin Mathew wrote:
    >> > Yes USB Virtual Controller has input devices like keyboard and mouse
    >> > (routed through hpilo card (remote console)), so those things stops
    >> > working when we remove hpilo driver.
    >> >


    That is not quite correct. Nothing is routed through hpilo.

    The problem is that there is a shared hardware resource in iLO function 2 (hpilo),
    and it is used by iLO function 4 (uhci_hcd kdb/mouse). When hpilo is unloaded,
    the pci_device_disable() call removes the ability for this function to act as a
    busmaster, which stops the uhci_hcd from functioning correctly.

    Reloading hpilo will enable the remote console again.

    Removing the pci_disable_device() "fixes" the problem, but doing that worries me.
    --
    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/

  7. Re: sharing interrupt between PCI device

    Altobelli, David wrote:
    >>> On Mon, Nov 10, 2008 at 4:01 PM, Nobin Mathew wrote:
    >>>> Yes USB Virtual Controller has input devices like keyboard and mouse
    >>>> (routed through hpilo card (remote console)), so those things stops
    >>>> working when we remove hpilo driver.
    >>>>

    >
    > That is not quite correct. Nothing is routed through hpilo.
    >
    > The problem is that there is a shared hardware resource in iLO function 2 (hpilo),
    > and it is used by iLO function 4 (uhci_hcd kdb/mouse). When hpilo is unloaded,
    > the pci_device_disable() call removes the ability for this function to act as a
    > busmaster, which stops the uhci_hcd from functioning correctly.
    >
    > Reloading hpilo will enable the remote console again.
    >
    > Removing the pci_disable_device() "fixes" the problem, but doing that worries me.


    I suspect that removing the pci_disable_device in that driver is
    probably the best solution. It's not really mandatory to disable the
    device in all cases, we have other devices that have similar issues and
    so can't be disabled. As long as it can't generate interrupts or
    otherwise affect the system after the module is unloaded (but it sounds
    like it doesn't use interrupts anyway).

    It's not really a good hardware design (mucking with one PCI function on
    the device shouldn't disable functionality on other functions), but what
    can you do..
    --
    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/

+ Reply to Thread
Page 2 of 2 FirstFirst 1 2